技术积累20170326

来源:互联网 发布:java手游飞机 编辑:程序博客网 时间:2024/06/05 02:38

1.CDH下spark日志目录:/opt/cloudera/parcels/CDH/lib/spark/logs/

2.idea提交spark任务yarn配置文件:

   /etc/hadoop/conf.cloudera.yarn/core-site.xml

   /etc/hadoop/conf.cloudera.yarn/yarn-site.xml

   /etc/hadoop/conf.cloudera.yarn/hdfs-site.xml

3.sparkContext.textFile( )读取文件:

   默认是从hdfs读取文件,也可以指定sc.textFile("路径").在路径前面加上hdfs:// 表示从hdfs文件系统上读
  本地文件读取 sc.textFile("路径").在路径前面加上file:// 表示从本地文件系统读,如file:// /home/user/spark/README.md

   textFile的参数是一个path,这个path可以是:
   一、 一个文件路径,这时候只装载指定的文件
   二、一个目录路径,这时候只装载指定目录下面的所有文件(不包括子目录下面的文件)
   三、 通过通配符的形式加载多个文件或者加载多个目录下面的所有文件
    第三点是一个使用小技巧,现在假设我的数据结构为先按天分区,再按小时分区的,在hdfs上的目录结构类似于:
    /user/hdfs/input/dt=20130728/hr=00/
    /user/hdfs/input/dt=20130728/hr=01/
    ..
    /user/hdfs/input/dt=20130728/hr=23/
    具体的数据都在hr等于某个时间的目录下面,现在我们要分析20130728这一天的数据,我们就必须把这个目录下面的所有hr=*的子目录下面的数据全部装载进RDD,于是我们可以这样写:sc.textFile("hdfs://n1:8020/user/hdfs/input/dt=20130728/hr=*/"),注意到hr=*,是一个模糊匹配的方式。

4.hiveContext.sql("select * from hiveTable").collect().foreach(println)

5.移除/etc/spark/cnof/hbase-site.xml后,运行作业后提示的info信息,quorum从localhost变为yyptbd1,yyptbd2,yyptbd3(感觉尽量保留这个文件)

6.spark-submit 提交任务

  一、--master local  运行时为单机,并没有并行处理

  二、--driver-class-path参数中添加jar包,但此时的jar包只是本节点使用,在classpath.txt中添加三个jar包文件,和参数中的三个jar包添加效果一样。需要在所有的节点中都添加包地址。

     class.txt地址:/etc/spark/conf
     /opt/cloudera/parcels/CDH/jars/guava-12.0.1.jar
     /opt/cloudera/parcels/CDH/jars/htrace-core-3.1.0-incubating.jar
    /opt/cloudera/parcels/CDH/jars/protobuf-java-2.5.0.jar

 三、--master yarn 集群方式运行
    spark-submit --class sparkTest --master yarn /tempDxy/TestScalaSpark-1.0-SNAPSHOT.jar 

 7.spark读取hbase,就是将hbase表记录以RDD的形式加载到内存中。

 8.对RDD 先collect,然后才能println输出至本地。cache和persist后,都不能println至本地。

 9.idea打jar包并提交jar包(包含外部依赖的包)到cdh(spark)
   如果依赖外部的包,则需要将工程中依赖的jar包,全部打包
    这样得到的jar包可能会很大如200M,而普通的打包方式只有15kb
    打包方法:
    file -> project-Structure->Artifacts->"+"->jar->from Modules with dependces->添加包含入口函数的类-》目录为工程的根目录-》ok-》勾选Build on make->ok
然后主界面 Build-》Build Artifacts
    提交jar包至spark时,需要删除jar包中(用WinRAR打开)/META-INF/ECLIPSEF.SF文件

  10.idea下Scala和Java的混合编程

   11.spark-shell 和spark-submit的关系区别
        对于spark提交程序,最终都是通过spark-submit来实现的,不同的是spark-shell 在运行时,会先进行一些初始参数的设置,然后调用spark-submit
   12.新建hg版本管理库

         一、文件-》新建仓库

         二、刷新后,添加备注,提交

 





0 0
原创粉丝点击