三种安装方式:本地、伪分布、全分布
- 修改ip地址、网关
vim /etc/sysconfig/network-scripts/ifcfg-eth0
如果没有eth0
vim /etc/sysconfig/grub
在GRUB_CMDLINE_LINUX最后增加 net.ifnames=0 biosdevname=0
执行命令 grub2-mkconfig -o /boot/grub2/grub.cfg
重启后即可看到eth0
修改:eth0配置文件
BOOTPROTO=static
ONBOOT=yes
新增:
IPADDR=192.168.137.150
NETMASK=255.255.255.0
GATEWAY=192.168.137.1
DNS1=192.168.137.1
- 修改主机名
vim /etc/sysconfig/network
修改:
hostname=hadoop01
-
输入hostname检查是否修改成功
-
如果没成功需要修改内核主机名
hostnamectl set-hostname hadoop01
-
使用
sysctl kernel.hostname
查看是否修改成功 -
重启服务
service network restart
# 如果重启失败,尝试执行下面命令 systemctl stop NetworkManager systemctl disable NetworkManager systemctl disable NetworkManager systemctl start network.service
-
修改ip和主机名映射关系
vim /etc/hosts
新增: 192.168.137.150 hadoop01
修改: 127.0.0.1 后的losthost.localdomain
注意CentOs7之后直接更改/etc/hostname 即可
- 关闭防火墙
service iptables status
service iptables stop
chkconfig iptables --list
chkconfig iptables off
-
检查网络是否正常
-
注意wifi需要在网络共享中心设置为可共享给Vmnet8
-
下载(非必选)也可以使用Xshell和Xftp
yum install -y lrzsz
可以使用rz,sz上传和下载文件到桌面
-
安装JDK
-
克隆虚拟机
-
修改主机名,ip
-
关闭图形化界面启动
systemctl set-default multi-user.target
-
启动图形化界面启动
systemctl set-default graphical.target
安装Hadoop
- /home/hadoop/apps解压安装文件
tar -zxvf hadoop-2.7.5.tar.gz
- 使用root用户创建软链接
ln -s /home/hadoop/apps/hadoop-2.7.5 /usr/local/hadoop
- 修改配置文件
vi /etc/profile
export HADOOP_HOME=/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_HOME=$HADOOP_HOME
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
配置HDFS
- 使用hadoop用户进入到Hadoop配置文件路径
cd /hadoop/etc/hadoop
- 修改 hadoop-env.sh
- 修改JDK路径export JAVA_HOME=/usr/local/jdk
- 配置core-site.xml
- 配置hdfs-site.xml
配置YARN
- 修改yarn-site.xml
- 修改mapred-site.xml
- 在/hadoop路径下创建hdpdata文件夹
cd /hadoop
mkdir hdpdata
- 编辑
vi /hadoop/etc/hadoop/slaves
hadoop03
hadoop04
hadoop05
配置hadoop用户免密码登陆
配置hadoop01到hadoop01、hadoop02、hadoop03、hadoop04、hadoop05的免密码登陆
在hadoop01上生产一对钥匙
ssh-keygen -t rsa
将公钥拷贝到其他节点,包括自己本机
ssh-copy-id -i hadoop01
ssh-copy-id -i hadoop02
ssh-copy-id -i hadoop03
ssh-copy-id -i hadoop04
ssh-copy-id -i hadoop05
注意:两个namenode之间要配置ssh免密码登陆
将配置好的hadoop拷贝到其他节点
scp -r hadoop-2.7.5 hadoop@hadoop02:/home/hadoop/apps/hadoop-2.7.5
scp -r hadoop-2.7.5 hadoop@hadoop03:/home/hadoop/apps/hadoop-2.7.5
scp -r hadoop-2.7.5 hadoop@hadoop04:/home/hadoop/apps/hadoop-2.7.5
scp -r hadoop-2.7.5 hadoop@hadoop05:/home/hadoop/apps/hadoop-2.7.5
- 在每个节点分别执行如下四步操作
- 第一步:使用root用户创建软链接
ln -s /home/hadoop/apps/hadoop-2.7.5 /hadoop
- 第二步:使用root用户修改软链接属主
chown -R hadoop:hadoop /hadoop
- 第三步:使用root用户添加环境变量
vim /etc/profile
添加内容:
export HADOOP_HOME=/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_HOME=$HADOOP_HOME
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
- 第四步:使用root用户重新编译环境变量使配置生效
source /etc/profile
集群启动(注意使用hadoop用户启动,严格按照顺序启动)
-
su hadoop
-
启动journalnode(分别在node03、node04、node05上执行启动)
/hadoop/sbin/hadoop-daemon.sh start journalnode
-
运行jps命令检验,node03、node04、node05上多了JournalNode进程
-
格式化HDFS,在node01上执行命令:
hdfs namenode -format
-
格式化成功之后会在core-site.xml中的hadoop.tmp.dir指定的路径下生成dfs文件夹,将该文件夹拷贝到node02的相同路径下
scp -r /hadoop/hdpdata hadoop@hadoop02:/hadoop
-
在node01上执行格式化ZKFC操作
hdfs zkfc -formatZK
执行成功,日志输出如下信息
INFO ha.ActiveStandbyElector: Successfully created /hadoop-ha/ns in ZK
-
在node01上启动HDFS
/hadoop/sbin/start-dfs.sh
- 可能出现clusterID对不上的错误情况:
java.io.IOException: Incompatible clusterIDs in /data/dfs/data: namenode clusterID = CID-d1448b9e-da0f-499e-b1d4-78cb18ecdebb; datanode clustID...
原因: 每次namenode format会重新创建一个namenodeId,而data目录包含了上次format时的id,namenode format清空了namenode下的数据,但是没有清空datanode下的数据,导致启动时失败,所要做的就是每次fotmat前,清空data下的所有目录.
解决办法:将datanode节点目录/dfs/data/current/VERSION中的clustID修改为与namenode节点下的/dfs/name/current/VERSION中的clustID一致即可
-
在hadoop02上启动YARN
/hadoop/sbin/start-yarn.sh
,需要在hadoop02上也设置免密登录hadoop03,hadoop04,hadoop05 -
在node01单独启动一个ResourceManger作为备份节点
/hadoop/sbin/yarn-daemon.sh start resourcemanager
-
在node02上启动JobHistoryServer
/hadoop/sbin/mr-jobhistory-daemon.sh start historyserver
启动完成node02会增加一个JobHistoryServer进程 -
hadoop安装启动完成
HDFS HTTP访问地址
NameNode (active):http://192.168.137.150:50070
NameNode (standby):http://192.168.137.151:50070
ResourceManager HTTP访问地址
ResourceManager :http://192.168.137.151:8088
历史日志HTTP访问地址
JobHistoryServer:http://192.168.137.151:19888
集群验证
- 首先向hdfs上传一个文件
/hadoop/bin/hadoop fs -put /hadoop/README.txt /
- 在active节点手动关闭active的namenode
/hadoop/sbin/hadoop-daemon.sh stop namenode
# 单独启动namenode
/hadoop/sbin/hadoop-daemon.sh start namenode
- 打开
http://192.168.137.151:50070
发现变成active - 执行wordcount实例
hadoop jar /hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar wordcount /wordcount/input /wordcount/output
- 验证RM的高可用
/hadoop/sbin/yarn-daemon.sh stop resourcemanager