1. 安装JDK,最好是JDK1.8。
2.关闭防火墙
(1)如果是ubuntu18版本使用下面命令来关闭防火墙
sudo ufw disable
(2)其他常用版本linux
service iptables stop
chkconfig iptables off
3.修改主机名。Hadoop集群中,主机名中最好不要出现-或者_。 例如修改主机名为:hadoop01
(1)如果是ubuntu18版本则主机名在/etc/hostname
vim /etc/hostname
如果安装了cloud-init包,还需要编辑cloud.cfg文件。默认情况下,这个包安装在云提供商(如AWS)提供的映像中,用于处理云实例的初始化。
若要检查软件包是否已安装,存放目录如下:
ls -l /etc/cloud/cloud.cfg
如果已经安装了相关的包,需要打开/etc/cloud/cloud.cfg文件: 搜索preserve_hostname并将值从false更改为true:
vim /etc/cloud/cloud.cfg
# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true
(2) CentOS常用版本在/etc/sysconfig目录下
vim /etc/sysconfig/network
修改HOSTNAME属性,例如
HOSTNAME=hadoop01
4.将主机名和IP进行映射
vim /etc/hosts
添加IP 主机名,例如
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.9.162.133 hadoop01
5.关闭云主机的开启初始化(有些主机可能不需要)
service cloud-init stop
service cloud-init-local stop
chkconfig cloud-init off
chkconfig cloud-init-local off
6.重启
reboot
7.配置免密互通
产生密钥:ssh-keygen
拷贝公钥:ssh-copy-id root@hadoop01
服务器密码:******;
#若服务器ssh默认访问端口不是22,需要通过ssh -p "端口号"hadoop01 访问
测试是否免密:ssh hadoop01
如果不需要密码,则输入logout
8.为了方便统一将服务安装到/home/software目录下,进入到/home/software目录下
cd /home/software
9.下载Hadoop安装包,由于hadoop版本管理混乱,该文档使用的是2.0中兼容性较好的2.7.5版本
wget https://archive.apache.org/dist/hadoop/common/hadoop-2.7.5/hadoop-2.7.5.tar.gz
10.解压
tar -xvf hadoop-2.7.5.tar.gz
11.进入Hadoop的安装目录
cd hadoop-2.7.5
12.进入子目录
cd etc/hadoop/
13.编辑hadoop-env.sh
vim hadoop-env.sh
#修改JAVA_HOME和HADOOP_CONF_DIR
export JAVA_HOME=/home/presoftware/jdk1.8
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.5/etc/hadoop
#添加HADOOP_SSH_OPTS(服务器ssh默认访问端口不是22时添加)
export HADOOP_SSH_OPTS="-p "
保存退出,重新生效
source hadoop-env.sh
14.编辑core-site.xml
vim core-site.xml
添加
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/software/hadoop-2.7.5/tmp</value>
</property>
15.编辑hdfs-site.xml
vim hdfs-site.xml
添加
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
16.编辑mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
添加
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
17.编辑 yarn-site.xml
vim yarn-site.xml
添加
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
#由于ResourceManager的端口8088容易被web项目占用,可通过下面配置修改其默认端口
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>hadoop01:9001</value>
</property>
18.编辑slaves
vim slaves
添加云主机的主机名
hadoop01
19.配置环境变量
vim /etc/profile
在文件末尾添加
export HADOOP_HOME=/home/software/hadoop-2.7.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存退出,重新生效
source /etc/profile
20.格式化NameNode
如果出现Storage directory /home/software/hadoop-2.7.5/tmp/dfs/name has been successfully formatted.则表示格式化成功
hadoop namenode -format
21.启动Hadoop
start-all.sh
22.通过jps查看进程
Jps
NameNode --- 默认50070
DataNode --- 默认50075
SecondaryNameNode --- 默认50090
ResourceManager --- 默认8088
NodeManager
23.注意事项
- 如果缺少NameNode/DataNode/SecondaryNameNode,那么检查core-site.xml或者hdfs-site.xml是否配置正确
- 如果缺少ResourceManager或者NodeManager,那么检查mapred-site.xml或者yarn-site.xml是否配置正确
- 如果格式化失败,则修改完错误之后,检查/home/software/hadoop-2.7.5目录下是否有tmp目录,如果有,删除之后重新格式化