spark 部署文档--生产环境

一 下载spark安装包

安装的第一步就是下载spark安装包,从官网进行下载
spark的官网是:http://spark.apache.org/downloads.html
下载的时候要按照自己hadoop的版本进行衡量,这里下载的是spark-2.0.0-bin-hadoop2.7 版本。

下载成功后使用解压命令解压在opt目录下即可

解压命令为:

    tar   -xzvf   压缩包名称  

二 安装基础

1、Java8安装成功

2、zookeeper安装成功

3、hadoopHA安装成功

4、Scala安装成功

三 spark环境变量配置

  • 配置环境变量 /etc/profile
    进入profile文件后,进行spark所在路径的环境变量配置
    在文件中添加如下内容:
export SPARK_HOME=/opt/spark-2.0.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH

编辑文件保存退出后,记得source使配置文件生效
在这里插入图片描述

四 spark环境配置过程

  • 进入spark/conf文件夹
    spark的配置文件都在这个文件夹里面
    在这里插入图片描述
    在修改配置之前,要先进行用户权限的修改
chmod 775 -R  文件名
  • 修改配置文件
    进入到conf文件夹中,复制 spark-env.sh.template 文件夹并改名为 spark-env.sh
    所用命令为:
cp spark-env.sh.template spark-env.sh 

编辑spark-env.sh文件,添加如下内容:

export SCALA_HOME=/opt/scala-2.11.8
export SPARK_MASTER_IP=10.245.142.253
export SPARK_WORKER_MEMORY=120g
export JAVA_HOME=/opt/jdk1.8.0_171
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_HOME=/opt/hadoop-2.7.3
export PATH=$PATH:$HADOOP_HOME/bin
export  LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
export SPARK_PID_DIR=/var/hadoop/tmp

完成配置即可

复制slaves.template成slaves
使用的命令如下:

cp slaves.template slaves

编辑文件添加如下内容

master
slave1
slave2
slave3   
  • 将安装包分发给其他节点

把master上的spark安装包内容分发给其他三个节点,slave1, slave2, slave3
命令如下:

#使用scp,命令传输到其他节点
#scp用法:scp -r 本地目录 用户@#ip:/目录
scp -r /opt/spark-2.0.0-bin-hadoop2.7  root @slave1:/opt
scp -r /opt/spark-2.0.0-bin-hadoop2.7  root @slave2:/opt
scp -r /opt/spark-2.0.0-bin-hadoop2.7  root @slave3:/opt

五 spark启动过程

  • 先启动zookeeper集群
    -所有节点均要启动Zookeper集群服务,具体实现命令如下:
zkServer.sh start

之后,通过zkServer.sh status来查看集群启动状态

共有三个DataNode节点,所以在启动完毕之后,会呈现一个leader和两个follower。

-再启动HDFS集群
任意一个节点执行即可,执行命令如下:

start-dfs.sh

-再 启动spark进程

进入sbin目录下,输入./start-all.sh启动spark进程
输入命令是:

./start-all.sh

这里一定一定要注意,输入的命令前面有./
如果没有./的话,会报没有该命令的错误。
之后输入jps查看进程,
Master和worker是spark的进程 剩下的几个是hadoop的进程

查看进程发现spark集群只有dn1成功启动了Master进程,其他三个节点均没有启动成功,需要手动启动
进入到spsrk/sbin目录下,执行下面的命令,其他两个节点都要执行

start-master.sh 

(这个start-master.sh文件和hadooop的是一样的,要想开关spark集群都要来spark的sbin目录下进行操作)

  • jps查看进程
    执行成功,jps查看进程,Master进程和Worker进程都以启动成功

六 验证

1 查看web界面master状态

通过浏览器进行查看,输入
http://masterip:8080

在这里插入图片描述

2 启动spark shell

先进入到spark的bin目录下,在终端输入下面的命令:

>. spark-shell \
> --master spark://slave1:7077 \
> --executor-memory 500m \
> --total-executor-cores 1 

参数说明:
–master spark://slave1:7077 指定Master的地址
–executor-memory 500m:指定每个worker可用内存为500m
–total-executor-cores 1: 指定整个集群使用的cup核数为1个
这个地方的master只能是nna nns 而其他的不可以
成功之后会出现下方的界面:
在这里插入图片描述
注意:如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。

3 在spark shell中编写WordCount程序

(1)编写一个testabc.txt文件并上传到HDFS上的spark目录下

在终端执行的命令如下:

vi testabc.txt
hadoop fs -mkdir -p /spark
hadoop fs -put test123.txt /spark

执行效果如下:
在这里插入图片描述
test123.txt 文件的内容如下:

you,jump
i,jump
you,jump
i,jump
jump

(2)在spark shell中用scala语言编写spark程序
先进入scala,然后执行scala命令,执行命令如下:

sc.textFile("/spark/test23.txt").flatMap(_.split(",")).map((_,1)).reduceByKey(_+_).saveAsTextFile("/spark/out1")

代码说明:
sc是SparkContext对象,该对象是提交spark程序的入口
textFile("/spark/hello.txt")是hdfs中读取数据
flatMap(.split(" "))先map再压平
map((
,1))将单词和1构成元组
reduceByKey(+)按照key进行reduce,并将value累加
saveAsTextFile("/spark/out")将结果写入到hdfs中

(3)使用hdfs命令查看结果
在datanode上查看结果,输入命令如下:

 hadoop fs -cat /spark/out1/p*

输出结果如下图:
在这里插入图片描述

4 执行spark on yarn

在hadoop的bin目录下,执行下面的命令:

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

报错:在这里插入图片描述

报错原因:内存资源给的过小,yarn直接kill掉进程,则报rpc连接失败、ClosedChannelException等错误。

解决方法:

先停止YARN服务,然后修改yarn-site.xml,增加如下内容

<property>
                <name>yarn.nodemanager.vmem-check-enabled</name>
                <value>false</value>
                <description>Whether virtual memory limits will be enforced for containers</description>
        </property>
        <property>
                <name>yarn.nodemanager.vmem-pmem-ratio</name>
                <value>4</value>
                <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
        </property>

然后把yarn-site,xml 的内存分配从1024,改成2048.

重新执行命令启动spark on yarn
重启成功出现下面的界面,这个时候的master是yarn
在这里插入图片描述
ok 测试完成

文章参考。 https://www.cnblogs.com/qingyunzong/p/8888080.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值