一、Spark安装与部署

1.jdk和scala的安装配置

1.1 spark官方下载路径

  • 链接:https://www.apache.org/dyn/closer.lua/spark/spark-2.3.1/spark-2.3.1-bin-hadoop2.7.tgz

1.2 windows下的spark开发环境配置

  • 注意:windows下开发spark不需要在本地安装hadoop,但是需要winutils.exe、hadoop.dll等文件,所以还需要安装Hadoop。

  • 下载windows下hadoop工具包(分为32位和64位的),在本地新建一个hadoop目录,必须有 bin目录例如:D:\spark\hadoop-2.6.0\bin

  • 然后将winutil等文件放在bin目录下。地址:https://github.com/sdravida/hadoop2.6_Win_x64/tree/master/bin

  • https://github.com/steveloughran/winutils

  • 配置hadoop和spark的环境变量:

HADOOP_HOME 例如:D:\spark\hadoop-2.6.0

SPARK_HOME

SPARK_CLASSPATH

path中加入spark和hadoop

1.3 添加环境变量

  • 解压:
    tar zxvf spark-1.6.2-bin-hadoop2.6.tgz

  • 在/etc/profile中添加spark环境变量,如下:

export JAVA_HOME=/opt/jdk/jdk1.8.0_171
export CLASSPATH=:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export HADOOP_HOME=/opt/hadoop/hadoop-3.0.2
export SCALA_HOME=/opt/scala/scala-2.12.7
export SPARK_HOME=/opt/spark/spark-2.3.1-bin-hadoop2.7
export PATH=$PATH:$JAVA_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/bin:$SPARK_HOME/bin

  • 使得修改立刻生效
    source /etc/profile

1.4 修改配置文件

  • 配置文件在spark-1.6.2-bin-hadoop2.6/conf 文件夹下,因此进入文件配置
    2.3.1 修改spark-env.sh
    conf文件下只有spark-env.sh.template,因此我们copy一份
    cp spark-env.sh.template spark-env.sh

  • 该文件中是一个模板文件里面有没有配置,我们再其中添加java,Scala,hadoop,spark的环境变量,以使其能够正常到运行,具体添加内容为:

    export JAVA_HOME=/opt/jdk/jdk1.8.0_171
    export export SCALA_HOME=/opt/scala/scala-2.12.7
    export SPARK_MASTER=192.168.2.2
    export SPARK_WORKER_MEMORY=1g
    export HADOOP_HOME=/opt/hadoop/hadoop-3.0.2
    
  • 2.3.2 修改slaves
    操作步骤同上,
    cp slaves.template slaves

添加以下内容:
master
slave1
slave2

至此所有安装都已完成,剩下的就是用同样的方法去配置另外的机器,由于其他机器是clone出来的,所以路径都一样,直接将 配置好的spark文件夹和/usr/scala 文件夹和环境变量文件/etc/profile,copy到其他机器即可。

2.部署模式

2.1 local单机模式

  • 加压配置JAVA_HOME即可,不需要配置集群
spark-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_xx

  • 提交任务的命令
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[1] ./lib/spark-examples-1.6.0-hadoop2.4.0.jar 100

master:local[n],local表示本地模式,单机模式 []数字表示模拟线程数量
100:表示SparkPi需要的一个参数

2.2 Standalone集群模式

  • 机器部署
    准备两台以上的Linux服务器,安装好JDK1.8

  • 下载Spark安装包
    http://spark.apache.org/downloads.html

  • 配置spark

  • 进入到Spark安装目录

    cd /usr/local/spark-1.6.1-bin-hadoop2.6
    
  • 进入conf目录并重命名且修改spark-env.sh.template文件

    cd conf/
    mv spark-env.sh.template spark-env.sh
    vi spark-env.sh
    
  • 在该配置文件中添加如下配置

    export JAVA_HOME=/usr/java/jdk1.8.0_xx
    export SPARK_MASTER_IP=node01 //ip地址或主机名(主机名需要做host映射)
    export SPARK_MASTER_PORT=7077
    
    
  • 保存退出

  • 重命名并修改slave.template文件

    mv slaves.template slaves
    vi slaves
    
  • 在该文件中添加子节点所在的位置(Worker节点)

    node02
    node03
    node04
    
  • 保存退出

  • 将配置好的Spark拷贝到其他节点上

    scp -r spark-1.6.1-bin-hadoop2.6/ node02:/usr/local/
    scp -r spark-1.6.1-bin-hadoop2.6/ node03:/usr/local/
    scp -r spark-1.6.1-bin-hadoop2.6/ node04:/usr/local/
    
  • Spark集群配置完毕,目前是1个Master,3个Worker,在node01上启动Spark集群

/usr/local/spark-1.6.1-bin-hadoop2.6/sbin/start-all.sh

  • 启动后执行jps命令,主节点上有Master进程,其他子节点上有Work进行,登录Spark管理界面查看集群状态(主节点):http://node01:8080/

  • 到目前为止,Spark集群安装完毕,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单:

Spark集群规划:node1,node2是Master:node03,node04,node05是Worker

安装配置zk集群,并启动zk集群
停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置:
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoverMode=ZOOKEEPER -Dspark.deploy.zookper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark"

1.在node01节点上修改slaves配置文件内容指定worker节点
2.在node02上执行sbin/start-all.sh脚本,然后在node02上执行sbin/start-master.sh启动第二个Master

扫码关注公众号

  • 后台回复“Spark学习资料”免费获取更多Spark学习教材及实战资料在这里插入图片描述
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值