思路:

①先在主机s0上安装Scala和Spark,然后复制到其它两台主机s1、s2

②分别配置三台主机环境变量,并使用source命令使之立即生效

主机映射信息如下:

192.168.32.100 s0
192.168.32.101 s1
192.168.32.102 s2

搭建目标:

s0 :  Master

s1 :  Worker

s2 :  Worker

1、准备

Hadoop 版本:2.7.7

Scala版本:2.12.8

Spark版本:2.4.3

2、安装Hadoop

下载地址:

http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.7/hadoop-2.7.7.tar.gz

Hadoop 安装步骤参考(示例版本与HDFS端口配置略有差异,根据实际情况调整):

https://www.cnblogs.com/jonban/p/hadoop.html

3、安装Scala

下载地址:

https://downloads.lightbend.com/scala/2.12.8/scala-2.12.8.tgz

解压到 /opt 下

tar -zxvf scala-2.12.8.tgz -C /opt/

环境变量可暂时不配置,等到全部配置完成后统一配置环境变量,并使之生效。

配置环境变量,追加如下内容:

export SCALA_HOME=/opt/scala-2.12.8
export PATH=$PATH:$SCALA_HOME/bin

可用追加命令,如下所示:

echo -e '\nexport SCALA_HOME=/opt/scala-2.12.8\nexport PATH=$PATH:$SCALA_HOME/bin\n' >> /etc/profile

使用source命令使配置立即生效

source /etc/profile

4、安装Spark

Spark下载地址:

https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-2.4.3/spark-2.4.3-bin-hadoop2.7.tgz

也可到官网下载其它版本,下载页面地址如下:

http://spark.apache.org/downloads.html

解压到 /opt 下

tar -zxvf spark-2.4.3-bin-hadoop2.7.tgz -C /opt/

5、修改配置文件

进入配置文件目录

cd /opt/spark-2.4.3-bin-hadoop2.7/conf

配置 log4j.properties

mv log4j.properties.template log4j.properties

配置 slaves

mv slaves.template slaves

内容如下:

s1
s2

配置 spark-env.sh

cp spark-env.sh.template spark-env.sh

在 spark-env.sh 中添加如下内容(以下为本机示例,配置路径根据实际情况调整):

export JAVA_HOME=/opt/jdk1.8.0_192
export SCALA_HOME=/opt/scala-2.12.8
export HADOOP_HOME=/opt/hadoop-2.7.7
export HADOOP_CONF_DIR=/opt/hadoop-2.7.7/etc/hadoop
export SPARK_MASTER_IP=s0
export SPARK_MASTER_HOST=s0
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_HOME=/opt/spark-2.4.3-bin-hadoop2.7
export SPARK_DIST_CLASSPATH=$(/opt/hadoop-2.7.7/bin/hadoop classpath)

6、远程复制Scala 安装目录到其它两台主机s1、s2

scp -r /opt/scala-2.12.8 root@s1:/opt/
scp -r /opt/scala-2.12.8 root@s2:/opt/

7、远程复制Spark 安装目录到其它两台主机s1、s2

scp -r /opt/spark-2.4.3-bin-hadoop2.7 root@s1:/opt/
scp -r /opt/spark-2.4.3-bin-hadoop2.7 root@s2:/opt/

8、配置三台主机环境变量

在 /etc/profile 中追加如下内容:

export SCALA_HOME=/opt/scala-2.12.8
export PATH=$PATH:$SCALA_HOME/bin export SPARK_HOME=/opt/spark-2.4.3-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

追加命令如下:

echo -e '\nexport SCALA_HOME=/opt/scala-2.12.8\nexport PATH=$PATH:$SCALA_HOME/bin\n' >> /etc/profile
echo -e '\nexport SPARK_HOME=/opt/spark-2.4.3-bin-hadoop2.7\nexport PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin\n' >> /etc/profile

使用source命令使配置立即生效

source /etc/profile

9、启动

启动Hadoop集群

start-dfs.sh
start-yarn.sh

启动Spark

start-master.sh
start-slaves.sh

10、查看状态

在三台主机上分别输入jps命令查看状态,结果如下:

[root@s0 conf]# jps
2097 ResourceManager
1803 NameNode
2675 Master
[root@s1 ~]# jps
1643 NodeManager
1518 DataNode
1847 Worker
[root@s2 ~]# jps
1600 NodeManager
1475 DataNode
1804 Worker

符合预期结果!

11、验证

浏览器输入地址:

http://s0:8080/

截图如下:

集群状态完美!

12、测试

输入spark-shell 命令,如下所示:

创建 wordcount.txt 文件,内容如下:

Hello Hadoop
Hello Hbase
Hello Spark

上传 wordcount.txt 到 HDFS文件系统上

hdfs dfs -mkdir -p /spark/input
hdfs dfs -put wordcount.txt /spark/input

输入scala 统计单词个数程序,如下:

sc.textFile("hdfs://s0:8020/spark/input/wordcount.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_ + _).collect

输出结果:

res0: Array[(String, Int)] = Array((Spark,1), (Hello,3), (Hbase,1), (Hadoop,1)) 

程序正常运行!

13、停止集群

stop-slaves.sh
stop-master.sh

停止Hadoop集群

stop-yarn.sh
stop-dfs.sh

Spark 集群环境搭建

.

最新文章

  1. C# Socket编程笔记
  2. Android中NDK的搭建及简单使用 Android.mk相关介绍 JNI的使用
  3. Mysql 调用存储过程的两种方式
  4. Android 生成和Pull解析xml
  5. 实践1-qq邮箱主页
  6. 前端不为人知的一面--前端冷知识集锦 前端已经被玩儿坏了!像console.log()可以向控制台输出图片
  7. html5 canvas 旋转扩大
  8. c++异常安全和copy and swap策略
  9. [每日一题] 11gOCP 1z0-053 :2013-09-30 ASMCMD.......................................................8
  10. [转载]Vertica “ERROR: Too many ROS containers exist”
  11. apache的配置参数
  12. mongodb查询语句
  13. ddt源码修改:HtmlTestRunner报告依据接口名显示用例名字
  14. 《JAVA程序设计》_第五周学习总结
  15. [PDOException] PDO::__construct(): php_network_getaddresses: getaddrinfo failed:
  16. Python mysql 创建连接
  17. springboot 双数据源+aop动态切换
  18. php 写斐波那契数列
  19. Could not load file or assembly 'System.Web.Mvc, Version=5.2.3.0...
  20. js中获取时间new date()的用法和获取时间戳

热门文章

  1. Json文件转Excel
  2. 当我们聊kubernetes operator时,我们在聊些什么
  3. Swoole HTTP 的应用
  4. OpenStack日志分析
  5. GoWeb开发_Iris框架讲解(一)
  6. LibreOJ #2036. 「SHOI2015」自动刷题机
  7. uoj#352. 新年的五维几何(概率期望+爆搜)
  8. openinstall渠道统计工具介绍
  9. P1101 单词方阵(DFS)
  10. 管道是如何随着WebHost的开启被构建出来的?