赞
踩
所使用安装包及对应版本:
- JDK 8
- Hadoop 2.7.1
- Spark 3.2.0
在华为云平台购买3台centos弹性云服务器,一台作为master,另外两台作为slave。它们在同一内网中,相互之间是能ping通的。
1. CloudShell远程登录master主机,使用如下命令修改主机名为master:
# hostname master
再进入/etc/hostname文件,修改文件内容为master,重新建立会话连接,就能看到主机名已经被修改为master。
同理,修改另外两台服务器主机名分别为slave01,slave02。
2. 分别进入三台主机的/etc/hosts文件,修改配置为
127.0.0.1 localhost
192.168.0.90 master
192.168.0.137 slave01
192.168.0.48 slave02
这样,不需要输入IP地址,只需输入相应主机名就能ping通对应主机。
在master主机上输入如下命令并输入对应密码即可登录slave01主机:
# ssh slave01
但在Hadoop集群环境中不可能每次都要master输入slave的密码,所以需要配置ssh免密登录。华为云弹性云服务器默认配置了ssh服务,可通过如下命令查看ssh服务状态,出现sshd进程则表示服务已经启动。
# ps -e | grep ssh
在master主机上输入如下命令,遇到选项全部回车或者yes即可。注:这里需要输入一次slave01和slave02的密码。
# cd /root/.ssh
# ssh-keygen -t rsa
# ssh-copy-id -i /root/.ssh/id_rsa.pub master
# ssh-copy-id -i /root/.ssh/id_rsa.pub slave01
# ssh-copy-id -i /root/.ssh/id_rsa.pub slave01
配置完成后,若通过命令ssh slave01和ssh slave02能直接登录slave01和slave02主机,则免密登录配置完成。
在Hadoop官网上看到不同版本的Hadoop支持的jdk版本: Hadoop对应jdk版本
可以看到Hadoop 2.0支持Java 7和Java 8(更高的版本会报错),这里提供本文使用的JDK8网盘链接。
链接:https://pan.baidu.com/s/1vZzs0E_3aSxRuUqoPW8C6g
提取码:vwk5
在master主机的/usr/local目录下新建java文件夹,将下载好的JDK8安装包上传到java文件夹中。并使用如下命令进行压缩包的解压:
# cd /usr/local/java
# tar -zxvf jdk-8u202-linux-x64.tar.gz
效果如图:
使用如下命令打开/etc/profile配置文件:
# vim /etc/profile
在文件末行添加如下java环境变量:
export JAVA_HOME=/usr/local/java/jdk1.8.0_202
export CLASSPATH=:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
输入如下命令使配置文件生效:
# source /etc/profile
可输入命令java或javac来查看JDK是否安装成功。
在主机slave01和slave02上使用同样的方法进行JDK的安装,或者使用如下文件拷贝命令将master整个java目录拷贝给slave01和slave02:
# scp -r /usr/local/java/ root@slave01:/usr/local/java/
# scp -r /usr/local/java/ root@slave02:/usr/local/java/
注:slave01与slave02的java环境变量也要记得配。
1、环境配置
本文搭建的Hadoop平台版本为2.7.1,这里附上百度网盘链接。
链接:https://pan.baidu.com/s/1HwmgNu502HmYBcZRhbUjgg
提取码:9t4d
在master主机的/usr/local目录下新建hadoop文件夹,将下载好的hadoop压缩包上传到该文件夹中,使用如下命令进行解压:
# cd /usr/local/hadoop
# tar -zxvf hadoop-2.7.1.tar.gz
修改配置文件/etc/profile,添加如下配置:
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
输入命令使配置文件生效:
# source /etc/profile
2、修改相关文件
修改master主机中Hadoop的如下配置文件,这些配置文件都位于/usr/local/hadoop/hadoop-2.7.1/etc/hadoop目录下。
slave01
slave02
export JAVA_HOME=/usr/local/java/jdk1.8.0_202
注:这里需要显示申明JAVA_HOME,不然会在运行的时候出现找不到java路径的错误。
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/hadoop-2.7.1/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
<configuration> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.namenode.http-address</name> <value>master:50070</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:50090</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop/hadoop-2.7.1/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop/hadoop-2.7.1/hdfs/data</value> </property> </configuration>
# cd /usr/local/hadoop/hadoop-2.7.1/etc/hadoop
# cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
3、slave节点配置Hadoop
通过如下命令将master主机的hadoop目录拷贝给slave01和slave02。
# scp -r /usr/local/hadoop/ root@slave01:/usr/local/hadoop/
# scp -r /usr/local/hadoop/ root@slave02:/usr/local/hadoop/
再配置/etc/profile文件中Hadoop相关环境变量即可。
4、启动Hadoop集群
在master主机中输入如下命令即可启动Hadoop集群:
# cd /usr/local/hadoop/hadoop-2.7.1
# bin/hdfs namenode -format
# sbin/start-all.sh
在master主机中输入命令jps即可看到如下进程信息。
在slave01中输入命令jps即可看到如下进程信息。
注:关闭Hadoop集群命令如下,尽量保证服务有开就有停,可以避免很多问题出现。
# sbin/stop-all.sh
5、查看Hadoop管理页面
浏览器输入http://master公网IP:50070即可访问到如下Hadoop管理页面。
注:若打不开Hadoop管理页面,可能是HDFS中NameNode的默认端口50070没有开放。在华为云服务器安全组中添加如下规则即可。
Spark分布式集群的安装环境,需要事先配置好Hadoop的分布式集群环境。可以去Apache官网下载与Hadoop匹配的Spark版本。
这里附上本文使用的Spark 3.2.0网盘链接。
链接:https://pan.baidu.com/s/1R40ZXixzRyPT04uGhBgKfw
提取码:35fl
这里同样先搭建master主机的Spark环境,再通过文件拷贝搭建slave01与slave02环境。在master主机的/usr/local目录下新建spark文件夹,将下载好的Spark压缩包上传到该文件夹中,使用如下命令进行解压,并修改文件夹名称为spark-3.2.0:
# cd /usr/local/spark
# tar -zxvf spark-3.2.0-bin-hadoop2.7.tgz
# mv spark-3.2.0-bin-hadoop2.7 spark-3.2.0
打开/etc/profile文件,添加如下配置:
export SPARK_HOME=/usr/local/spark/spark-3.2.0
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
并使用如下命令使配置生效:
# source /etc/profile
在master主机上进行如下操作:
# cd /usr/local/spark/spark-3.2.0/conf
# cp workers.template workers
workers文件设置Worker节点,把默认内容localhost替换成如下内容:
slave01
slave02
#cp spark-env.sh.template spark-env.sh
编辑spark-env.sh,添加如下内容:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/hadoop-2.7.1/bin/hadoop classpath)
export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.1/etc/hadoop
export SPARK_MASTER_IP=192.168.0.90
export JAVA_HOME=/usr/local/java/jdk1.8.0_202
注:
① SPARK_MASTER_IP 指定 Spark 集群 Master 节点的 IP 地址。
② 最后一行的JAVA_HOME一定要申明,不然会出现slave节点找不到JAVA_HOME的错误。
配置好后,将Master主机上的/usr/local/spark文件夹复制到各个节点上。在Master主机上执行如下命令:
# scp -r /usr/local/spark/ root@slave01:/usr/local/spark/
# scp -r /usr/local/spark/ root@slave02:/usr/local/spark/
注:别忘了配置slave01与slave02的/etc/profile文件。
1、启动Hadoop集群
启动Spark集群前,要先启动Hadoop集群。在Master节点主机上运行如下命令:
# cd /usr/local/hadoop/hadoop-2.7.1
# sbin/start-all.sh
2、启动Spark集群
# cd /usr/local/spark/spark-3.2.0
# sbin/start-master.sh
在Master节点上运行jps命令,可以看到多了个Master进程:
# sbin/start-slaves.sh
分别在slave01、slave02节点上运行jps命令,可以看到多了个Worker进程
3、在浏览器上查看Spark独立集群管理器的集群信息
打开浏览器,访问http://master公网IP:8080,如下图:
注:若无法访问,可能是安全组8080端口未开放,安全组中开放8080端口即可。
1、关闭master节点
# sbin/stop-master.sh
2、关闭Worker节点
# sbin/stop-slaves.sh
3、关闭Hadoop集群
# cd /usr/local/hadoop/hadoop-2.7.1
# sbin/stop-all.sh
参考文档:
http://dblab.xmu.edu.cn/blog/1177-2/
http://dblab.xmu.edu.cn/blog/1187-2/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。