Spark集群安装

博主已经安装好了三台CentOS机器,且做好了静态IP,也搭建好了Hadoop集群及jdk环境,以此为背景。
如果对以上不懂的,请查看博主之前的博客。

1. 创建目录,下载安装包

博主的hadoop,jdk环境都是安装在/opt/目录下

1. 创建spark目录

mkdir spark

2. 下载spark安装包到spark目录下

spark下载地址:
http://spark.apache.org/downloads.html
在这里插入图片描述
解压安装包

tar -xvf spark-2.4.0-bin-hadoop2.7.tgz spark2.4

2. 配置Spark

1. 配置spark-env.sh文件
# 进入conf目录
cd /opt/spark/spark2.4/conf
# 重命名并修改spark-env.sh.template文件
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
# 在配置文件末尾添加以下内容:
export JAVA_HOME=/opt/java/jdk1.8
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077

退出,保存

2. 配置slaves文件

在conf目录下
重命名并修改slaves.template文件

mv slaves.template slaves
vi slaves
# 在该文件中添加子节点
slave1
slave2

退出,保存

3. 拷贝配置好的Spark到其他节点上

scp -r spark2.4 slave1:/opt/spark/
scp -r spark2.4 slave2:/opt/spark/

目前是一个master,两个worker

4. 启动spark

在master机器上

cd /opt/spark/spark2.4/sbin
./start-all.sh

在master的浏览器输入
http://master:8080
会看到两个alive的worker
在这里插入图片描述

5. 启动spark shell

在spark2.4/bin目录下

spark-shell -- master spark://master:7077 --executor-memory 2g --total-executor-core 2

参数说明:
–master spark://master:7077 # 指定master地址
–executor-memory 2g # 指定每个worker可用内存为2G
–total-executor-cores 2 # 指定整个集群使用的cup核数为2个

如果启动spark shell时没有指定master地址,也可以正常启动spark shell和执行shell中的程序,但是是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。
Spark Shell中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用sc即可。

6. 在spart shell中编写wordcount程序

1. 编写一个word.txt
touch word.txt
echo "hello hadoop" >> word.txt
echo "hello spark" >> word.txt
echo "hello java" >> word.txt
echo "hello python" >> word.txt
echo "hello world" >> word.txt
2. 上传到hdfs
# 先新建一个hdfs目录
hdfs dfs -mkdir -p /work/data1/input
# 上传
hdfs dfs -get word.txt /work/data1/input/word.txt
3. 使用scala编程
sc.textFile("hdfs://master:9000/work/data1/word.txt").flatMap(_." ").map((_,1)).reduceByKey(_+_).saveAsTextFile("hdfs://master:9000/work/data1/output")

说明:
sc是SparkContext # 对象,该对象是提交spark程序的入口
textFile(hdfs://master:9000/work/data1/word.txt) # hdfs中读取数据
flatMap(.split(" ")) # 按照空格分割,扁平化
map((
,1)) # 将单词和1组成元祖
reduceByKey(+) # 按照key进行reduce,并将value累加
savaAsTextFile(“hdfs://master:9000/work/data1/output”) # 将结果写入到hdfs中

4. 查看结果
[root@master Documents]# hdfs dfs -ls /work/data1/output
Found 2 items
-rw-r--r--   3 root supergroup          0 2019-03-02 17:50 /work/data1/output/_SUCCESS
-rw-r--r--   3 root supergroup         61 2019-03-02 17:50 /work/data1/output/part-00000

[root@master Documents]# hdfs dfs -text /work/data1/output/p*
(spark,1)
(hadoop,1)
(python,1)
(hello,5)
(hdfs,1)
(world,1)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值