安装配置Hadoop集群的主要步骤
1、安装配置Hadoop
2、配置用户环境变量
3、配置Hadoop
- 配置core-site.xml文件
- 配置hdfs-site.xml文件
- 配置mapred-site.xml文件
- 配置yarn-site.xml文件
- 配置slaves文件
- 配置hadoop-env.sh文件
更多配置文件的配置信息请参见官方网站的解释。
4、启动集群并测试
在node1服务器解压并配置完成
安装配置Hadoop
- 在node1节点上,进入/opt/software目录,如果没有请自行到官方网站下载
[root@node1 ~]# cd /opt/software
- 将hadoop解压到/opt/module目录
[root@node1 software]# tar -xzf hadoop.tar.gz -C /opt/module/
配置Hadoop环境变量
- 输入【vi /etc/profile】命令编辑文件,添加如下内容:
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 使用【source /etc/profile】使配置文件生效。
[root@node1 software]# source /etc/profile
- 将/etc/profile拷贝到其它所有机器上
[root@node1 software]# scp /etc/profile node2:/etc/
[root@node1 software]# scp /etc/profile node3:/etc/
修改Hadoop配置文件
进入hadoop 配置文件夹。
[root@node1 software]# cd $HADOOP_HOME/etc/hadoop
配置core-site.xml文件:
- 使用【vi】命令,编辑core-site.xml文件
[root@node1 hadoop]# vi core-site.xml
- 修改<configuration>标签及其内容如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
</property>
</configuration>
配置 hdfs-site.xml 文件
- 使用【vi】命令,编辑 hdfs-site.xml文件
[root@node1 hadoop]# vi hdfs-site.xml
- 修改<configuration>标签及其内容如下:
<configuration>
<!-- 设置namenode的http通讯地址 -->
<property>
<name>dfs.namenode.http-address</name>
<value>node1:50070</value>
</property>
<!-- 设置secondarynamenode的http通讯地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node2:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/hdfs/nn</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/data/hadoop/hdfs/snn</value>
</property>
<property>
<name>dfs.namenode.checkpoint.edits.dir</name>
<value>/data/hadoop/hdfs/snn</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/hdfs/dn</value>
</property>
</configuration>
配置 mapred-site.xml 文件
- 首先,输入【cp mapred-site.xml.template mapred-site.xml】命令,从mapred-site.xml.template模板文件复制一个新的文件,命名为mapred-site.xml。
- 使用【vi】命令,编辑 mapred-site.xml文件
[root@node1 hadoop]# vi mapred-site.xml
- 修改<configuration>标签及其内容如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>node1:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>node1:19888</value>
</property>
</configuration>
配置yarn-site.xml文件:
- 使用【vi】命令,编辑 yarn-site.xml文件
[root@node1 hadoop]# vi yarn-site.xml
- 修改<configuration>标签及其内容如下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>node1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>node1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>node1:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>node1:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>node1:8088</value>
</property>
</configuration>
配置hadoop-env.sh、yarn-env.sh、mapred-env.sh文件的JAVA_HOME变量
如果不设置,可能会无法正常启动集群。
- 输入【vi hadoop-env.sh】打开配置文件,加入JAVA_HOME环境变量。
……
# The java implementation to use.
export JAVA_HOME=/opt/module/jdk1.8.0_301
# The jsvc implementation to use. Jsvc is required to run secure datanodes
# that bind to privileged ports to provide authentication of data transfer
- 输入【vi yarn-env.sh】打开配置文件,加入JAVA_HOME环境变量。
- 输入【vi mapred-env.sh】打开配置文件,加入JAVA_HOME环境变量。
输入【vi slaves】配置slaves文件,删除默认的localhost,增加2个从节点的IP地址或host主机名。
node2
node3
将配置好的Hadoop复制到其他节点对应位置上,通过scp命令发送。
[root@node1 hadoop]# scp -rq /opt/module/hadoop node2:/opt/module/
[root@node1 hadoop]# scp -rq /opt/module/hadoop node3:/opt/module/
启动Hadoop集群并测试
- 在node1上,格式化Hadoop的namenode
[root@node1 hadoop]# hdfs namenode -format
显示“successfully formatted.”,则格式化完成。
- 在node1节点上,启动Hadoop
[root@node1 hadoop]# start-all.sh
启动后可以看到控制台打印信息显示在node1节点上启动了 namenode、resourcemanager两个进程,在node2节点上启动了 datanode、nodemanager、secondarynamenode三个进程,在node3节点上启动了 datanode、nodemanager两个进程。
- 使用【jps】命令,在node1节点上可以看到namenode、ResourceManager进程
- 使用【jps】命令,在node2节点上可以看到DataNode、NodeManager、SecondaryNameNode进程
- 使用【jps】命令,在node3节点上可以看到DataNode、NodeManager进程
- 在client节点上,可以通过浏览器访问HDFS和YARN的Web监控页面,如已配置了hosts映射可直接通过机器名访问,未配置本机hosts映射需要通过IP地址访问,HDFS和YARN的Web监控页面端口如下:
HDFS:http://node1:50070
YARN:http://node1:8088