Spark

          spark 

1.  概念

 

2. spark  安装

       2.  1)   安装依赖于scala     , 需要 把Scala  tar  分别解压安装在所有节点设备(主从机)上  的 /usr/local

cd  scala -2.12.8 

ls

    

      2.  2)   解压 spark  tar 包, 并完成配置

                         1.)  将  cdh   的 spark 包 解压到、 home/hduser/下

 

 

                     2.)   把 修改spark 主目录下、conf/slaves 配置如下
 

 

              cd  .. /conf

             cp   slaves.template  salves    

             gedit  salves

   

           

 

node2

node3

 

                      3)    修改   spark 主目录下    /conf/spark-env.sh 

打开 spark-env.sh  并配置

           export   JAVA_HOME=

           export   HADOOP_HOME=

           export   SCALA_HOME=

           export   HADOOP_CONF_DIR=/home/hduser/hadoop/etc/hadoop         // hadoop 配置文件目录

           export    SPARK_LOCAL_DIRS=/home/hduser/spark-1.6.0*

           export    SPARK_CLASSPATH=/home/hduser/spark-1.6.0*/lib/*              //  配置 spark classpath 指向lib 包

           export   SPARK_MASTER_IP=node1                // 主机 IP

          export    SPARK_MASTER_PORT=8088             

          export    SPARK_WORKER_MEMORY=512m    、/  从机运行 spark job 最大内存

          export    SPARK_DIST_CLASSPATH=$($HADOOP_HOME/bin/hadoop  classpath)

 

              4.  )    把下包 拷贝到 spark/lib 文件夹下

                 cd  spark -1.6.0 * 

                 cd lib

                scp   -r  

             5 )    将配置好的spark 主目录 ,   拷贝的从机 node2 , node3 上

 

 

      2.3 )     常用命令

              启动和关闭命令都在 spark 主目录 /sbin/ 下,  其他执行命令都在spark  主目录/bin 下

a)  启动

         $>      spark 主目录/sbin/start-all.sh

b)  关闭

         $>    spark 主目录/sbin/stop-all.sh

c)   spark-shell

           $>    spark   主目录、/bin/spark-shell

    执行完改名了后会切换到 Scala  命令窗口

2.4)  测试是否安装成功

          1)   启动后 看进程,  主机 master,  从机 , worker

          2)   浏览器访问 spark 集群  (http: //node1 : 8088)

          3)     运行  $>     spark 主目录 /bin/spark-shell             命令 切换spark 开发窗口

 

            cd    ~/spark-1.6.0 

            cd  bin 

          ./spark-shell

启动 Hadoop  下的   dfs 运算框架

 

3. 术语

      3. 1.     SparkConf  

        SparkConf   : 主要 是配置  spark  的环境配置,  主机地址, 作业名称

              val  conf = new  SparkConf().setMaster("主机地址”) . setAppName("作业名称”);

类似于: 

             Configuration     conf = new    Configuration();

             core - site :  主机地址  ---> hdfs : //node1:9000

             Job    job = Job.getInstance(conf , "job名称")

      3.  2.  SparkContext

SparkContext 是 spark 环境 的上下文

val   sc  =  new  SparkContext (conf) ;     // 其中 conf 是SparkConf , 所有spark 操作都是在 SparkContext 里完成的

 

        3.3. RDD

RDD  :  弹性分布式数据,   主要是一个RDD 一批(个) 文件, 但是RDD  没有真实存储对应的物理数据, 而可以通过RDD 完成对物理数据的操作, rdd 是只读的

 

             a .)    根据 hdfs 上的文件创建对应的RDD 对象

                         val      rdd1  = sc.textFile("hdfs://node1:9000/input/word.txt");             // 取数据

             b .)       对 rdd 数据 ,  做map  操作

                        hadoop  is  a application   :  valueIn.split("  ")

 

                   //    rdd1 . map (x=> x.split("  ")) .map (x=>(x, 1));

                val    rdd2 =     rdd1 . flatMap (x=> x.split("  ")) .map ((_, 1))               //  flatMap  扁平化

                             rdd2.foreach(println)

rdd1 . flatMap() 与    rdd1 . map() 区别如下

    如 有一个 rdd  的内容为 :  

          Hadoop is  a  java 

           mysql

 rdd.map  处理后新的rdd  只有两条数据 每一条都是Array [String ]  类型

rdd1 . flatMap  扁平化处理后得到新的 rdd 有5 条数据 , 每一条都是 String  类型

              c。),   rdd [(key, value)].reduceByKey  :  处理的是键值对, 将相同的数据一起处理,

如 : rdd 对象 r1 数据内容为  (Hadoop  1) (Java  1)(is  1)(java  1)

 val  r2  =  r1.reduceByKey(_ +_ ):   // 第一个  _  代表本数据之前的运算结果值 , 第二个代表当前值

     r2 的经过reduceByKey处理后变为 (Hadoop  1) (Java  2)(is  1)

 

                   val  rdd3 = rdd2 .reduceByKey((_ + _))

                           rdd3.foreach(println)

        

     

4.  Spark   Shell

将  词频  words .txt  上传到 hdfs : //node1:9000/input/ 下

                             val   rd1 =  sc . textFile("hdfs   上 music 素材 ”)

                             val   rd2 = rd1.map(x=>{(x.split("\t")(1), 1)});

                             val rd3 = rd2.reduceByKey(_ + _);

                    $>    hadoop  dfs  -ls  /input/

 

 

5。  ecplise 开发 Spark

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值