在 CentOS 7 中的搭建 Hadoop2.7.2 集群

原创 centoshadoop

搭建最简单的主备节点,一台主机,一台备机。

假设主备机名称和 IP 为:

master    192.168.1.2
slave1    192.168.1.3

申明:我搭建的这个集群不是在普通用户环境下,所以以下操作都是在超级用户 root 上。部分资料参考网络,文中所有操作都是实测通过的。 默认认为用户熟悉 Java,已有配置可用 JDK 运行环境。

一、虚拟机的安装

  1. 从 centos 官网下载 CentOS7 镜像文件。
  2. 在 VMware Workstation 12 上安装两台虚拟机,具体的系统安装步骤不是重点,我就不再赘述了。

二、虚拟机前期配置

装好两台虚拟机后,我们设置虚拟机为静态 IP,并修改一下虚拟机的主机名和 IP 地址,还需要增加 IP 与主机映射:

1) 修改主机名(分别为:master、slave1)

vim /etc/hostname

这里需要注意的是,主机名是什么就只能在 /etc/hostname 文件中写什么,不可以加 # 注释。最好的是,比如集群主机的主机名称为 master,就修改 hostname 文件内容为 master,不要多一行,也不要有前后空格。否则在后面的操作中会有诸多麻烦。

2) 修改 IP 地址并设置为静态 IP:

vim /etc/sysconfig/network-scripts/ifcfg-enp0s3

虚拟机的网卡一般默认都是 ifcfg-en.. 等,可能是其他名称。

增加以下内容:

BOOTPROTO=static            #设置为静态IP
ONBOOT=yes                    #开机打开网卡
IPADDR=192.168.1.2           #设置IP,对应上面给出的四个IP地址,这里是master的IP
NETMASK=255.255.255.0       #设置子网掩码
GATEWAY=192.168.1.1            #设置网关
DNS1=8.8.8.8                #设置DNS,这里是Google的两个域名解析
DNS2=8.8.4.4

3) 增加IP与主机映射:

vi /etc/hosts

增加以下内容:

192.168.1.2    master
192.168.1.3    slave1

4) 在分别完成以上步骤后 reboot 重启两台虚拟机。

reboot

三、SSH无密码登录配置

准备工作

1) 确认本机 sshd 的配置文件

vim /etc/ssh/sshd_config

找到以下内容,并去掉注释符 #

RSAAuthentication yes
PubkeyAuthentication yes
# 无密码登录认证文件将会存放在 /root/.ssh/authorized_keys 下
AuthorizedKeysFile      .ssh/authorized_keys

2) 如果修改了配置文件需要重启 sshd 服务。

service sshd restart

配置SSH无密码登录

1) 生成公钥和私钥(这一步在所有主备机上操作)

cd /root
ssh-keygen -t rsa

在 /root/.ssh 目录生成两个文件:

id_rsa      :私钥
id_rsa.pub  :公钥

2) 导入公钥到认证文件,更改权限(这一步在主机 master 上操作)

cd /root/.ssh/
ssh master cat /root/.ssh/id_rsa.pub >> authorized_keys #需要输入超级用户密码
ssh slave1 cat /root/.ssh/id_rsa.pub >> authorized_keys #需要输入超级用户密码

3) 更改 authorized_keys 属性,使之不能被修改:

chmod 600 authorized_keys

4) 在 master 的 /root/.ssh/ 目录下,将生成的 known_hostsauthorized_keys 复制到各个备节点:

scp authorized_keys root@slave1:/root/.ssh/ #需要输入超级用户密码
scp known_hosts root@slave1:/root/.ssh/

5) 验证ssh的免密码登录

在 master 中输入: ssh slave1 看是否需要登录密码,如果不需要,则ssh免密码配置成功。如果需要密码,请仔细阅读以上步骤,重新尝试配置。

反之,可以在备机种测试主机的登录。

四、Hadoop2.7.2 的解压安装

Hadoop 下载页面:http://hadoop.apache.org/releases.html

解压至 /root 下:

tar -zxvf hadoop-2.7.2.tar.gz

五、集群环境Hadoop的配置

在master中,进入到Hadoop的配置目录:

cd /root/hadoop-2.7.2/etc/hadoop/

1) slaves 的配置:

vim slaves

删除 localhost,增加备节点:slave1

2) core-site.xml的配置:

在此之前,需要在 Hadoop 目录下创建 data/tmp

mkdir -p /root/hadoop-2.7.2/data/tmp/
mkdir -p /root/hadoop-2.7.2/data/dfs/data
mkdir -p /root/hadoop-2.7.2/data/dfs/name

在 /root/hadoop-2.7.2/etc/hadoop/ 下:

vim core-site.xml

在 core-site.xml 中增加:

<property>
    <name>hadoop.tmp.dir</name>
    <value>/root/hadoop-2.7.2/data/tmp</value>
</property>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:8020</value>
</property>

3) hdfs-site.xml的配置:

vim hdfs-site.xml

在 hdfs-site.xml 增加:

<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:50090</value>
</property>
<property>
    <name>dfs.replication</name>
    <value>1</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/root/hadoop-2.7.2/data/dfs/namee</value>
</property>
<property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/root/hadoop-2.7.2/data/dfs/data</value>
</property>

4) mapred-site.xml 的配置:

vim mapred-site.xml

在 mapred-site.xml 增加:

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

5) yarn-site.xml 的配置:

vim yarn-site.xml

在 yarn-site.xml 增加:

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

6) 配置好 master 中的 Hadoop 后,将 Hadoop 复制到各个节点对应位置上:

scp -r /root/hadoop-2.7.2/ slave1:/root/

六、启动 hadoop

1) 在主节点 master 的 hadoop 的目录下:

bin/hdfs namenode –format sbin/start-dfs.sh sbin/start-yarn.sh

然后在主节点 master 输入 jps 可以查看到 NameNode、SecondaryNameNode、Jps 和 ResourceManager 四个进程。

在从节点 slave 输入 jps 可以查看到 Jps、NodeManager 和 DataNode 三个进程。

2) 出现以上进程提示,恭喜你,你的 hadoop 的环境搭建完成!

如果觉得这对你有用,请随意赞赏,给与作者支持
评论 0
最新评论