快乐大数据第8课 Spark计算引擎概述

(一)本地模式启动在node01上cd ~/apps/spark2.2 bin/spark-shell定义变量val rdd = sc.parallelize(1 to 100, 3) #生成三个分区,每个分区中的数值是1到100rdd.countval rdd2 = rdd.map(_ + 1)rdd2.take(3) #取前三个元素新开一个node01的窗口。先做好预备工作cd ~/appstouch sparkwcvim sparkwchellohadoophello worldhellohello spark再回到node01的原来的窗口val rdd1 = sc.textFile("file:///home/hadoop/apps/sparkwc")val rdd2 = rdd1.flatMap(_.split("\t"))val rdd3 = rdd2.map((_,1))val rdd4 = rdd3.reduceByKey(_ + _)rdd4.collect #action,真正的执行rdd4.saveAsTextFile("file:///home/hadoop/apps/out1")#读取hdfs上的文件,来计算wordcountsc.textFile("hdfs://192.168.183.101:9000/wordcount/input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).saveAsTextFile("hdfs://192.168.183.101:9000/wordcount/out1")在新开一个node01的窗口中hadoop fs -ls /wordcount/out1 发现已经输出了wordcount的结果注意如果此时node01和node02的状态是颠倒的,node01是standby,node02是active,需要进行切换,否则scala会报错先在node02上停掉 hadoop-daemon.sh stop zkfc再在node02上 重启 hadoop-daemon.sh start zkfc倒序排序sc.textFile("hdfs://192.168.183.101:9000/wordcount/input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).sortBy(_._2,false).saveAsTextFile("hdfs://192.168.183.101:9000/wordcount/out2") #sortBy(_._2,false)的意思是对所有元组中第二个元素排序,添加false即倒序排序在新开一个node01的窗口中hadoop fs -cat /wordcount/out2/part-00000 发现已经输出了wordcount的结果(二)on-yarn的模式启动预备工作修改yarn-site.xml添加物理内存与虚拟内存的比率配置项,任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1yarn.nodemanager.vmem-pmem-ratio10注意:保持所有节点的配置文件内容一致,重启YARN• 修改spark安装包conf目录下的spark-env.sh,解压的安装包里没有该文件,需要复制spark-env.sh.template模板添加hadoop配置文件路径:export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop• 启动bin/spark-shell --master yarn --deploy-mode client 注意:spark-shell只能以client的模式运行,Driver要运行在本地在on-yarn的模式下sc.textFile("/wordcount/input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).sortBy(_._2,false).saveAsTextFile("/wordcount/out3") 在新开一个node01的窗口中hadoop fs -cat /wordcount/out3/part-00000

你可能感兴趣的:(快乐大数据第8课 Spark计算引擎概述)