大数据-Spark(三)

                                      大数据-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(四)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值