大数据-Spark(三)
初识spark程序
普通模式提交 (指定活着的master地址)
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
examples/jars/spark-examples_2.11-2.3.3.jar \
10
####参数说明
--class:指定包含main方法的主类
--master:指定spark集群master地址
--executor-memory:指定任务在运行的时候需要的每一个executor内存大小
--total-executor-cores: 指定任务在运行的时候需要总的cpu核数
高可用模式提交 (集群有很多个master)
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node01:7077,node02:7077,node03:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
examples/jars/spark-examples_2.11-2.3.3.jar \
10
spark集群中有很多个master,并不知道哪一个master是活着的master,即使你知道哪一个master是活着的master,它也有可能下一秒就挂掉,这里就可以把所有master都罗列出来
--master spark://node01:7077,node02:7077,node03:7077
后期程序会轮训整个master列表,最终找到活着的master,然后向它申请计算资源,最后运行程序。
spark-shell使用
运行spark-shell --master local[N] 读取本地文件进行单词统计
--master local[N]
- local 表示程序在本地进行计算,跟spark集群目前没有任何关系
- N 它是一个正整数,表示使用N个线程参与任务计算
- local[N] 表示本地采用N个线程计算任务
spark-shell --master local[2]
- 默认会产生一个SparkSubmit进程
sc.textFile("file:///home/hadoop/words.txt").flatMap(x=>x.split(" ")).map(x=>(x,1)).reduceByKey((x,y)=>x+y).collect
sc.textFile("file:///home/hadoop/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
运行spark-shell --master local[N] 读取HDFS上文件进行单词统计
Spark整合HDFS
在node01上修改配置文件spark-env.sh
vim spark-env.sh
export HADOOP_CONF_DIR=/kkb/install/hadoop-2.6.0-cdh5.14.2/etc/hadoop
分发到其他节点
sudo scp spark-env.sh node02:/kkb/install/spark-2.3.3-bin-hadoop2.7/conf
sudo scp spark-env.sh node03:/kkb/install/spark-2.3.3-bin-hadoop2.7/conf
spark-shell --master local[2]
sc.textFile("/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
sc.textFile("hdfs://node01:8020/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
运行spark-shell 指定集群中活着master 读取HDFS上文件进行单词统计
spark-shell --master spark://node01:7077 --executor-memory 1g --total-executor-cores 4
--master spark://node01:7077 #指定活着的master地址
--executor-memory 1g #指定每一个executor进程的内存大小
--total-executor-cores 4 #指定总的executor进程cpu核数
sc.textFile("hdfs://node01:8020/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
//实现读取hdfs上文件之后,需要把计算的结果保存到hdfs上
sc.textFile("/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).saveAsTextFile("/out")
此博文仅供学习参考,如有错误欢迎指正。
上一篇《大数据-Spark(二)》
下一篇《大数据-Spark(四)》
2015

被折叠的 条评论
为什么被折叠?



