ip | 主机名 | |
---|---|---|
主服务器 | 192.168.142.110 | KVM04 |
节点 | 192.168.142.100 | slave |
下载并上传JDK和Hadoop
- CentOS Linux release 7.3.1611 (Core)
- Hadoop 2.6.5
- java version “1.8.0_241”
注意 : 此过程中的 IP地址 、主机名 、下载路径,或许不同,但可类比;
配置文件中个别value标签的名称、JAVA_HOME的值,需要根据自己的配置填写
JDK安装配置
- 卸载OpenJDK及相关安装包
rpm -qa | grep java # 查看OpenJDK
rpm -e --nodeps ... # 强制卸载上述OpenJDK (nodeps 后写OpenJDK的名称)
- 配置下载的JDK和Hadoop
vim /etc/profile # 配置JDK环境变量
输入
JAVA_HOME=/opt/jdk/jdk1.8.0_241 #jdk下载的路径
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH
#HADOOP
export HADOOP_HOME=/opt/hadoop/hadoop # hadoop 的下载路径
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
source /etc/profile # 执行环境变量
- 验证Jdk
java -version
- 验证Hadoop
hadoop version
修改hosts文件
vim /etc/hosts
- 主服务器和结点都要添加对方的 ip和主机名
192.168.142.100 KVM04
192.168.142.110 slave
ping 对方的主机名,看是否成功
如 : ping slave
配置Hadoop
- 配置core-site.xml
vim /opt/hadoop/hadoop/etc/hadoop/core-site.xml
<configuration> </configuration> 内输入
<!-- 指定HDFS中NameNode的地址 ,注意value中是主服务器名称 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://KVM04:9000</value>
</property>
<!-- 指定Hadoop运行时产生文件的存储目录,自己手动创建一个 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoopdata</value>
</property>
- 修改配置hadoop-env.sh
vim hadoop-env.sh
修改 export JAVA_HOME
export JAVA_HOME=/opt/jdk/jdk1.8.0_241
- 配置hdfs-site.xml
vim /opt/hadoop/hadoop/etc/hadoop/hdfs-site.xml
<configuration> </configuration> 内输入
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 注意value 中节点的主机名 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>slave:50090</value>
</property>
- 配置yarn-env.sh
vim yarn-env.sh
找到注释的export JAVA_HOME,添加
export JAVA_HOME=/opt/jdk/jdk1.8.0_241
- 配置yarn-site.xml
vim /opt/hadoop/hadoop/etc/hadoop/yarn-site.xml
<configuration> </configuration> 内输入
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 ,注意value中为主服器名称-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>KVM04</value>
</property>
- 配置mapred-env.sh
vim mapred-env.sh
找到注释的export JAVA_HOME,添加
export JAVA_HOME=/opt/jdk/jdk1.8.0_241
- 配置mapred-site.xml
cd /opt/hadoop/hadoop/etc/hadoop/
cp mapred-site.xml.template mapred-site.xml
vim /opt/hadoop/hadoop/etc/hadoop/mapred-site.xml
<configuration> </configuration> 内输入
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
- 配置slaves
删除第一行,添加节点名和主服务器名
vim slaves
输入
KVM04
slave
- 将KVM04主服务器的Hadoop配置复制到节点slave服务器中
scp -r /opt/hadoop root@slave:/opt/
scp -r /opt/jdk root@slave:/opt/
免密登录
- 生成公钥和密钥,三次回车(…)
ssh-keygen -t rsa
- 公钥拷贝到节点服务器和主服务器上
ssh-copy-id KVM04
ssh-copy-id slave
- 主服务器上格式化文件系统
hadoop namenode -format
- 启动Hadoop集群
cd /opt/hadoop/hadoop/sbin
start-all.sh
jps
浏览器中输入
主机ip:端口号
192.168.114.100 :8088
192.168.142.100 :50070
遇到问题
(1)live nodes 数目少于预期
可能1:防火墙没有关,关闭每个结点的防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
可能2:多次执行hadoop namenode -format造成的
#先执行stop-all.sh
#分别查看子结点上 /opt/hadoop/hadoopdata/dfs/data/current/VERSION ,两者是否相同
#相同删去其中一个VERSION
#执行start-all.sh
#执行hadoop dfsadmin -report 查看节点信息
(2)Failed to start LSB: Bring up/down networking