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,这里需要注意。

  • 相关阅读:
    SAP PI 如何实现消息定义查询
    EWM与ERP交互程序
    ITS Mobile Template interpretation failed. Template does not exist
    SAP Material Flow System (MFS) 物料流系统简介
    SAP EWM Table list
    EWM RF 屏幕增强
    SAP EWM TCODE list
    SAP扩展仓库管理(SAPEWM)在线研讨会笔记
    ERP与EWM集成配置ERP端组织架构(二)
    EWM RF(Radio Frequency)简介
  • 原文地址:https://www.cnblogs.com/huaxiaoyao/p/6234507.html
Copyright © 2011-2022 走看看