说明
本人因为电脑比较卡,所以没有采用本地虚拟机(有需要的可自行查阅资料)。本环境用是阿里云的ECS。大家可以根据需要选用不同配置。
环境说明
说明 | 版本 |
---|---|
系统环境 | centos7.4 64位 |
jdk | jdk1.8 |
hadoop | 2.5.2 |
集群规划
主机名 | 内网IP | 角色 |
---|---|---|
hadoop-01 | 172.16.90.177 | namenode |
hadoop-02 | 172.16.90.176 | datanode |
hadoop-03 | 172.16.90.178 | datenode |
1、修改主机名
由于利用阿里云的ECS,所以主机名是系统在创建实例时设置的,为便于后期环境配置及使用,先统一修改主机名。
(1)查看主机名(以下两个命令均可)
uname -n
hostnamectl status
(2)修改主机名(各个节点执行)
hostnamectl set-hostname 新主机名
2、配置内网域名映射
vim /etc/hosts
如下图:
4、配置SSH免密登录(需结合第3步)
(1)安装ssh服务(各个节点)
yum -y install openssh-clients
(2)在hadoop-01上申生成密钥文件生成密钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
(3)将公钥追加到authorized_keys中,实现免密登录
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
(4)将hadoop-01的公钥copy到hadoop-02节点
scp /root/.ssh/id_dsa.pub root@hadoop-02:/root
(5)在hadoop-02节点上将id_dsa.pub添加到/root/.ssh/authorized_keys中
注意如果没有/root/.ssh/文件夹要手动创建
cat /root/id_dsa.pub >> /root/.ssh/authorized_key
(6)此时可实现hadoop-01与hadoop-02的免密登录可在hadoop-01终端中输入ssh hadoop-02看是否需要输入密码。
(7)重复操作,将hadoop-01放入公钥配置在hsaoop-03节点上。
5、同步集群时间(先关闭防护墙,如果使用ECS则默认关闭)
(1)安装ntp(所有节点)
yum -y install ntp
(2)修改hasoop-01节点的/etc/ntp.conf文件
加上如下配置(ECS默认添加了,可先确认,若无则手动添加):
(3)重启ntp服务
service ntpd restart
(4)关闭除hadoop-01以为的各节点的ntp服务
service ntpd stop
(5)同步hadoop-01时间,在hadoop-01节点执行如下命令:
ntpdate 其他节点IP
6、安装JDK(各节点)
(1)上传安装包
(2)安装jdk
rpm -ivh jdk-8u161-linux-x64.rpm
(3)添加环境变量/etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
(4)环境生效
source /etc/profile
(5)检验
java -version
7、安装hadoop
(1)将安装包上传到hadoop-01节点的/usr目录下
(2)解压缩
tar -zxf hadoop-2.5.2.tar.gz
(3)重命名
mv hadoop-2.5.2 hadoop
(4)配置java环境,hadoop-env.sh文件,将{JAVA_HOME}替换成真实的java环境目录
vim /usr/hadoop/etc/hadoop/hadoop-env.sh
(5)配置core-site.xml文件
vim /usr/hadoop/etc/hadoop/core-site.cml
在文件中新增如下内容(在后续namenode初始化时,会按照配置文件创建目录/opt/hadoop/):
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-01:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop</value>
</property>
(6)配置hdfs-site.xml文件
vim /usr/hadoop/etc/hadoop/hdfs-site.xml
在文件中添加如下内容:
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop-02:50090</value>
</property>
<property>
<name>dfs.namenode.secondary.https-address</name>
<value>hadoop-02:50091</value>
</property>
(7)配置datenode(主节点)
cd /usr/hadoop/etc/hadoop/
vim slaves
清空文件原有内容,在文件中新增如下内容:
hadoop-02
hadoop-03
(8)在/usr/hadoop/etc/hadoop/下新建masters文件
vim masters
在文件中新增如下内容:
hadoop-01
(9)删除/usr/hasoop/share/doc/内容
rm -rf /usr/hadoop/share/doc/
(10)配置完毕的hadoop文件夹copy到其节点
scp -r /usr/hadoop root@hadoop-02:/usr/
scp -r /usr/hadoop root@hadoop-03:/usr/
(11)格式化namenode节点
vim /etc/profile
在结尾新增:
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存文件后,使环境生效
source /etc/profile
hdfs namenode -format
8、启动hadoop集群
(1)在namenode节点启动hdfs
bash start-all.sh
(2)查看相关进程
hadoop-01节点
hadoop-02节点
hadoop-03节点
9、网页验证
ECS实例安全组开饭50070端口权限(由于使用阿里云ECS)
在浏览器输入如下:
http://namenodeIP地址:50070