Spark模式及运行

spark shell本地模式:

(1)使用spark shell需要开启Hadoop集群,在/home/hadoop/apps/spark-2.2.0-bin-hadoop2.7目录下执行命令:bin/spark-shell

(2)val rdd = sc.parallelize(1 to 100,3):定义一个不可变的变量为数字1-100,3个分区;

rdd.count:计算rdd中有多少个元素

val rdd2 = rdd.map(_+1):针对rdd每个元素进行加1

rdd2.take(3):取rdd2里面前3个元素

(3)val rdd1 = sc.textFile("file:///home/hadoop/apps/sparkwc",1):定义rdd1为从/home/hadoop/apps目录下sparkwc文件读取且指定为1个分区;rdd1.partitions.length:查看rdd1的分区数

val rdd2 = rdd1.flatMap(_.split("\t")):rdd2为对rdd1读取的文件按Tab键分隔

val rdd3 = rdd2.map((_,1)):rdd3将rdd2得到的字符串转换为(key,1)的形式

val rdd4 = rdd3.reduceByKey(_+_):rdd4将rdd3中key相同的1进行累加

rdd4.collect():查看rdd4中的内容

(4)sc.textFile("hdfs://192.168.137.100:9000/wordcount/input",1).flatMap(_.split("\t")).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).saveAsTextFile("hdfs://192.168.137.100:9000/wordcount/out2"):从hdfs上读取文件进行wordcount统计,然后按照value值降序排列输出指定hdfs目录下

spark ON YARN(client)模式:

(1)修改/home/hadoop/apps/hadoop-2.7.4/etc/hadoop目录下的yarn-site.xml文件,增加内容

<property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>10</value>
</property>保持所有节点的配置文件内容一致,重启YARN

(2)修改spark安装包conf目录下的spark-env.sh,解压的安装包里没有该文件,用命令:cp spark-env.sh.template spark-enc.sh拷贝该文件,在最后增加内容:export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop;可选修改spark安装包conf目录下的spark-defaults.conf内容,利用命令:cp spark-defaults.conf.template spark-defaults.conf拷贝该文件,在最后增加内容:spark.default.parallelism = 1设置默认分区数为1

启动:

bin/spark-shell --master yarn --deploy-mode client

注意:spark-shell只能以client的模式运行,Driver要运行在本地

(3)sc.textFile("/wordcount/input").flatmap(_.split("\t")).map((_,1)).reduceByKey(_+_).sortBy(_._2,false).saveAsTextFile("/wordcount/out4"):从hdfs上读取文件,然后将读取的文件按照value将序排列输出到指定的hdfs目录下

spark ON YARN(cluster)模式:

Spark History Server配置

(1)spark history server查看运行完成的作业信息和日志

(2)配置Hadoop的yarn-site.xml文件,所有节点配置文件同步,重启yarn

<property>

    <name>yarn.log.server.url</name>

    <value>http://node02:19888/jobhistory/logs</value>

    <description>Yarn JobHistoryServer访问地址</description>

</property>

(3)修改spark安装包conf目录下的spark-defaults.conf(如果没有该文件,通过spark-defaults.conf.template模板复制一个),spark history server在192.168.137.100节点启动,spark_logs这个目录需要在HDFS上提前创建

spark.yarn.historyServer.address=192.168.137.100:18080

spark.history.ui.port=18080

spark.eventLog.enabled=true

spark.eventLog.dir=hdfs://spark_logs

spark.history.fs.logDirectory=hdfs:///spark_logs

Spark History Server启动

(1)启动Spark History Server

sbin/start-history-server.sh

(2)Spark History Server访问地址

http://192.168.137.100:18080

(3)Spark History Server使用

Spark运行环境优化

将spark系统jar包上传到HDFS上,直接使用HDFS上的文件

(1)在spark安装目录下运行:jar cv0f spark-libs.jar -C jars/ .

(2)将spark安装目录下生成的spark-libs.jar上传到HDFS上的/system/spark(需要手动创建)目录下

hadoop fs -put spark-libs.jar /system/spark

(3)修改spark安装包conf目录下spark-defaults.conf配置文件添加spark-libs.jar在HDFS上的路径

spark.yarn.archive=hdfs:///system/spark/spark-libs.jar

 

启动spark ON YARN(cluster)模式:

进入/home/hadoop/apps/spark-2.2.0-bin-hadoop2.7目录下,运行如下命令:

bin/spark-submit \
--class bigdata.spark.WordCount \
--master yarn \
--deploy-mode cluster \
--driver-cores 1 \
--num-executors 1 \
--executor-cores 1 \
--executor-memory 3g \
./bigdatasparkpro-1.0-SNAPSHOT.jar /data/wc/in /data/wc/out1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值