zoukankan      html  css  js  c++  java
  • 项目笔记

    1.SPARK-SQL 执行几个集市表的ETL报错,出错为空指针异常,推断的表中数据内容有问题,同事重新生成一HIVE表后导入数据,问题消除,未找到根本原因

    2.SQOOP提交时按队列

    sqoop -D mapred.job.queue.name=queuename

    SQOOP通过METASTORE是支持直接把ORC表导出到ORACLE的,但太大会有问题,是一个BUG

    3.通过队列进行资源管理,可以默认让HIVE作业指向一个队列,让SPARK指向一个队列

    4.HIVE的DATE不包含时分秒,而RDBMS中是包含时分秒的,这点需要特别注意,如果HIVE表中DATE类型的使用

    SELECT * FROM TABLENAME WHERE DATE_SUB(CURRENT_DATE,30)<DT

    查找最近一个月的数据,如果这里的DT类型是TIMESTAMP,那么一定要转成TO_DATE(DT),否则比较的结果就是NULL

    而且现在的HIVE早已经支持CURRENT_DATE,current_timestamp来获取当前时间了,不需要使用FROMUNIXTIMESTAMP函数那么麻烦。

    5HIVE暂时不支持CTE(1.2.1)

    6.分区表的ETL时,注意加set hive.exec.dynamic.partition.mode=nonstrict,否则ETL时会出错。

    7.spark-submt --class xxxxName

    --master yarn-client | yarn | local

    --driver-memory 10g

    --driver-cores 10

    --executor-memory 10g

    --executor-cores 10

    --num-executors 10

    ./xxxx.jar

    注意 根据自己作业的特点去分配这些值,尤其是EXECUTOR 的数量与内存分配,如果内存需求量大,就分多一些内存,还有CORES分配得多,这样同一个STAGE中的任务可以并行得就多。

    spark-sql --master yarn-client spark sql只能以YARN-CLIENT OR LOCAL MODE RUN

    8.SPARK项目中任务不可以序列化的错误,在EXECUTORS中执行的代码闭包了在DRIVER中声明的变量,而这个变量不能或没有序列化。

    9. val x="abc$" if you want to get "abc" println(x.dropRight(1))

    10.使用SQOOP把ORALCE数据导到HIVE外部表时,如果HIVE表中的数据类型与ORACLE中的某些字段类型差异较大时,HIVE表查询出来的数据是NULL,或精度丢失,真实的数据并没有丢失,修改HIVE表的结构即可。

    11.random.shuffle(Array)使用来取ARRAY中随机的一个值,MAP,FORACH的区别是前者有返回值,后者没有。

    12.根据数据量进行滑动,

    val x4=Range(1,20).toBuffer

    val wb=x4.sliding(10,5)

    window size is 10 and step is 5.

    13.hive中DOUBLE转DECIMAL,可能会因为DECIMAL的精度设置出现转换失败。

    14.spark-sql中获取ORC表的元数据信息,有时候会出现_COL1..还有如果表的内容为空,则会出现目录下没有相应的ORC文件的错误,临时的解决方案是

    set spark.sql.hive.convertMetaStoreOrc=false

    15.spark连接HBASE,可以直接把HBASE-SITE。XML添加到环境变量,也可以直接把需要的几个项通过属性文件进行获取,然后对CONF对象进行赋值,

    主要是hbase.zookeeper.quorum and zookeeper.znode.parent

    16.rdd操作不能嵌套调用。

    17.HIVE JOIN SRATEGY: SHUFFLE JOIN, BROADCSAT JOIN ,MERGE JOIN

    create table xxx clustered by (xxx) sorted by (xxx) into 32 buckets.这种情况下的大表在MERGE JOIN时比较有优势,XXX指JOINKEY。

    使用排序和分散来代替传统的索引,减少SHUFFLE。

    18.jdbc:oracle:thin@hostname:port/serviceName|serviceid

    旧的DRIVER只支持SERVICEID,现在新的支持SERVICENAME,这里需要注意。

  • 相关阅读:
    转 Scott Mitchell的ASP.NET2.0数据指南中文版索引
    ASP.NET2.0中Gridview中数据操作技巧
    SQL语句导入导出大全
    SQL2000存储过程的基础教程
    如何取出Gridview选中行的数值
    asp.net2.0将EXCEL导入到MS Sql server2000
    C#泛型秘诀(5)
    C#泛型秘诀(4)
    C#泛型秘诀(1)
    C#泛型秘诀(2)
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/6234507.html
Copyright © 2011-2022 走看看