如何在hadoop完全分布式中安装spark和scala

1.1 机器准备

准备两台以上Linux服务器,安装好JDK1.8

1.2 下载Spark安装包

如何在hadoop完全分布式中安装spark和scala_第1张图片
上传解压安装包
上传spark-2.1.1-bin-hadoop2.7.tgz安装包到Linux上
解压安装包到指定位置

tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz 

1.3 配置Spark

Spark的部署模式有Local、Local-Cluster、Standalone、Yarn、Mesos,我们选择最具代表性的Standalone集群部署模式。
进入到Spark安装目录

cd /home/hduser/software/spark/conf

如何在hadoop完全分布式中安装spark和scala_第2张图片
将slaves.template复制为slaves
将spark-env.sh.template复制为spark-env.sh
修改slave文件,将work的hostname输入:
如何在hadoop完全分布式中安装spark和scala_第3张图片
修改spark-env.sh文件,添加如下配置:
如何在hadoop完全分布式中安装spark和scala_第4张图片
将配置好的Spark文件拷贝到其他节点上

   scp -r spark hduser@cloud11:~/software
   scp -r spark hduser@cloud12:~/software 

Spark集群配置完毕,目前是1个Master,2个Work,master01上启动Spark集群

/home/hduser/software/spark/sbin/start-all.sh

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

如何在hadoop完全分布式中安装spark和scala_第5张图片
到此为止,Spark集群安装完毕.
注意:如果遇到 “JAVA_HOME not set” 异常,可以在sbin目录下的spark-config.sh 文件中加入如下配置:

export JAVA_HOME=XXXX

如果遇到Hadoop HDFS的写入权限问题:
org.apache.hadoop.security.AccessControlException
解决方案: 在hdfs-site.xml中添加如下配置,关闭权限验证

  
    dfs.permissions
    false
  

1.4 配置Job History Server

进入到Spark安装目录
cd /home/hduser/software/spark/conf
如何在hadoop完全分布式中安装spark和scala_第6张图片
将spark-default.conf.template复制为spark-default.conf
修改spark-default.conf文件,开启Log:
如何在hadoop完全分布式中安装spark和scala_第7张图片
在HDFS上创建好你所指定的eventLog日志目录:/spark/test
参数描述:
spark.eventLog.dir:Application在运行过程中所有的信息均记录在该属性指定的路径下;
spark.history.fs.logDirectory=hdfs://cloud10:9000/spark/test 配置了该属性后,在start-history-server.sh时就无需再显式的指定路径,Spark History Server页面只展示该指定路径下的信息。
将配置好的Spark文件拷贝到其他节点上
重新启动spark集群。
/home/hduser/software/spark/sbin/start-all.sh
启动后执行
/home/hduser/software/spark/sbin/start-history-server.sh

如何在hadoop完全分布式中安装spark和scala_第8张图片
到此为止,Spark History Server安装完毕.

1.5 配置Spark HA(high avialable)

集群部署完了,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单:
如何在hadoop完全分布式中安装spark和scala_第9张图片
Spark集群规划:cloud10,cloud11是Master;cloud11,cloud12,是Worker
安装配置Zookeeper集群,并启动Zookeeper集群
停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置

如何在hadoop完全分布式中安装spark和scala_第10张图片
如何在hadoop完全分布式中安装spark和scala_第11张图片
Export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=cloud10:2181,cloud11:2181,cloud12:2181 -Dspark.deploy.zookeeper.dir=/sparkmaster0821"
1.在 cloud10节点上修改slaves配置文件内容指定worker节点
2.将配置文件同步到所有节点。
3.在cloud10上执行sbin/start-all.sh脚本,启动集群并启动第一个master节点,然后在cloud11上执行sbin/start-master.sh启动第二个master节点。
4.程序中spark集群的访问地址需要改成:
http://192.168.137.139:8080
http://192.168.137.142:8080

如何在hadoop完全分布式中安装spark和scala_第12张图片

2 Scala环境构建

从http://www.scala-lang.org/download/2.10.4.html上下载Scala正确版本进行安装
上传解压安装包
上传scala-2.13.0.tgz安装包到Linux上
解压安装包到指定位置

tar -zxvf scala-2.13.0.tgz

将Scala文件拷贝到其他节点上

   scp -r scala hduser@cloud11:~/software
   scp -r scala hduser@cloud12:~/software 

分别在每台机器上配置环境

SCALA_HOME=/data/spark/scala-2.13.0
PATH=$SCALA_HOME/bin:$PATH

输入source /etc/profile 保存环境变量的配置

输入scala -version查看安装成功与否

你可能感兴趣的:(Scala,大数据)