一、集群环境准备
1、克隆四台linux虚拟机
2、修改每一台虚拟机主机名
[root@bigdata01 ~]# vi /etc/sysconfig/network
3、修改每一台虚拟机ip地址
[root@bigdata01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
4、修改每一台虚拟机的网卡物理地址,把eth0的那一行删掉,把下一行eth1改为eth0
[root@bigdata01 ~]# vi /etc/udev/rules.d/70-persistent-net.rules
5、重启服务器
[root@bigdata01 ~]# reboot
6、在window上配置这几台linux服务器域名映射,位置C:\windows\system32\drivers\etc\host
7、对每一台linux服务器关闭防火墙
1)临时关闭
[root@bigdata01 ~]# service iptables stop
2)开机自动关闭
[root@bigdata01 ~]# chkconfig iptalbes off
二、安装jdk、hadoop
1、在第一台服务器上安装jdk
1)上传jdk安装包,这里我用的是SecureCRT连接工具外部连接linux,用ALT+P拖拽上传jdk的压缩包
2)解压
[root@bigdata01 ~]# tar -zxvf jdk-8u102-linux-x64.tar.gz -C /usr/local/
2、在第一台服务器安装hadoop
1)上传、解压安装包
[root@bigdata01 ~]# tar -zxvf hadoop-2.7.3.tar.gz -C /usr/local/
2)修改配置文件
[root@bigdata01 hadoop]# cd /usr/local/hadoop-2.7.3/etc/hadoop/
[root@bigdata01 hadoop]# vi hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/local/jdk1.8.0_102
[root@bigdata01 hadoop]# vi core-site.xml
# Namenode在哪里 ,临时文件存储在哪里
<configuration>
<property>
<name>fs.defaultFS</name>
#hadoop的namenode位置
<value>hdfs://hadoop3801:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
#临时文件存储
<value>/usr/local/hadoop-2.7.3/tmp</value>
</property>
</configuration>
[root@bigdata01 hadoop]# vi hdfs-site.xml
<configuration>
#namenode存储路径
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop-2.7.3/data/name</value>
</property>
#datanode存储路径
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop-2.7.3/data/data</value>
</property>
#默认副本数量设置为3,该参数其实用于和客户端软件
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop3801:50090</value>
</property>
</configuration>
#这里的mapred-site.xml.template是临时文件,将其转为永久文件
[root@bigdata01 hadoop]# cp mapred-site.xml.tmp* mapred-site.xml
[root@bigdata01 hadoop]# vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
[root@bigdata01 hadoop]#vi yarn-site.xml
#计算处理框架位置
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop3801</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
[root@bigdata01 hadoop]#vi slaves
#小弟的位置
Hadoop02
Hadoop03
3、配置环境变量
[root@bigdata01 hadoop]# vi /etc/profile
export JAVA_HOME=/usr/local/jdk1.8.0_102
export HADOOP_HOME=/usr/local/hadoop-2.7.3
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
[root@bigdata01 hadoop]# source /etc/profile
三、设置免密登录,并将jdk、hdoop发送至其他服务器
1、发送jdk
[root@bigdata01 ~]# scp -r /usr/local/jdk1.8.0_102 bigdata02:/usr/local
2、发送hadoop
[root@bigdata01 ~]# scp -r /usr/local/hadoop-2.7.3 bigdata02:/usr/local
3、发送配置文件
[root@bigdata01 ~]# scp /etc/profile bigdata02:/etc/
四、启动
1、使用格式化命令建立存储路径,初始化namenode的元数据存储目录
[root@bigdata01 ~]# hdoop namenode -format
2、用hadoop安装目录中sbin目录中的start-dfs.sh自动启动集群
[root@bigdata01 ~]# start-dfs.sh
#停止
[root@bigdata01 ~]# stop-dfs.sh
3、启动yarn集群
[root@bigdata01 ~]# start-yarn.sh
#停止
[root@bigdata01 ~]# stop-yarn.sh
4、使用jps查看进程
[root@bigdata01 ~]# jps
3242 NameNode
3499 SecondaryNameNode
3339 DataNode
3677 ResourceManager
3775 NodeManager
3807 Jps
五、常见故障及解决
1、namenode启动正常,但datanode启动失败
原因:datanode存储目录的VERSION文件中存储的集群id:clusterld保存的四上一次namenode所生成的集群id
解决:删除datanode存储目录,再重启,会生成新的目录,存储新的集群id
2、datanode进程启动成功,但不被namenode所接纳
原因:该datanode的存储目录跟另一台datanode的存储目录重复,导致两个datanode的uuid相同,name只认可其中一台
解决:删除问题datanode三的存储目录,生成新的uuid
查看datanode的uuid:
cd hdp-data/data/current/
cat VERSION