云平台配置3:配置完全分布式的 Hadoop
前面说了伪分布式的配置,也说了如何配置ssh,到现在是时候配置具有完全分布式的hadoop了
一、配置 Hadoop
- 下载 Hadoop 。例如
hadoop-2.6.5.tar.gz
。 - 解压到
/opt
目录下并设置目录权限。 - 配置环境变量。
sudo vim /etc/profile
- 在文件中添加:
export HADOOP_HOME=/opt/hadoop-2.6.5 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 更改配置文件(位于
/opt/hadoop-2.6.5/etc/hadoop
目录)。- hadoop-env.sh
找到并修改:export JAVA_HOME=/opt/jdk1.8.0_121
。 - core-site.xml
找到并修改:<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://spark1:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/spark/hadoop-2.6.5/tmp</value> <description>Abase for ohr temporary directories.</description> </property> </configuration>
- 请注意记录,此处的HDFS端口号为
9000
。
- 请注意记录,此处的HDFS端口号为
- hdfs-site.xml
找到并修改:<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>spark1:50090</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/spark/hadoop-2.6.5/tmp/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/spark/hadoop-2.6.5/data</value> </property> </configuration>
- 请根据实际情况修改
dfs.replication
的值(默认为 3 )。
- 请根据实际情况修改
- mapred-site.xml
找到并修改:<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <property> <name>mapreduce.jobhistory.address</name> <value>spark1:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>spark1:19888</value> </property> </configuration>
- yarn-site.xml
找到并修改:<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>spark1</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
- 复制 slaves.template 为 slaves,并编辑 slaves 文件。
添加:spark2 spark3
- hadoop-env.sh
- 将 Hadoop 整个目录复制到 spark2 和 spark3 节点(scp 命令)。
二、 启动和关闭 Hadoop 服务
2.1 启动 Hadoop 的步骤
-
(仅首次启动前执行)格式化 NameNode :
hadoop namenode -format
。 - 启动 HDFS 文件系统服务:
start-dfs.sh
。 - 启动 YARN:
start-yarn.sh
。 - 使用
jps
命令查看相关进程是否启动。
spark1:- NameNode
- SecondaryNameNode
- ResourceManager
spark2 和 spark3: - DataNode
- NodeManager
如果上述进程未能全部启动,可以按照以下步骤排查:
- 使用
stop-yarn.sh
和stop-dfs.sh
关闭所有服务。- 检查 spark 用户是否拥有相关目录的权限。
- 尝试清空 core-site.xml 配置文件中的
hadoop.tmp.dir
配置项所指向的目录。
2.2 关闭 Hadoop 的步骤
依次输入 stop-yarn.sh
和 stop-dfs.sh
即可。
❗❗❗注意:每次关闭系统之前必须执行该步骤。