CentOS 7安装Hadoop

CentOS 7安装Hadoop

一、启动两台虚拟客户机

1.打开VMware Workstation14


2.打开之前已经安装好的虚拟机:HadoopMaster和HadoopSlave


二、Linux系统配置
以下操作步骤需要在HadoopMaster和HadoopSlave节点上分别完整操作,都使用root用户,从当前用户切换root用户的命令如下:
[lyu@master ~]$ su root

输入密码:lyu

本节所有的命令操作都在终端环境,打开终端的过程如下图的Terminal菜单:

鼠标右击选中Open Terminal


终端打开后如下图中命令行窗口所示。

设置网络

在windos下设置虚拟网卡


在VMware软件中设置网络




虚拟机中设置网络(图形界面中的设置或命令行设置,二选一)

图形界面中设置网络




master:


slave:除了IP地址其它一样

命令行设置

vi /etc/sysconfig/network-scripts/ifcfg-ens33    (注:其他低版本的系统默认的可能是ifcf-eth0)
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO= none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=d3e21db1-9594-417d-87c7-109c2a367f90
DEVICE=ens33
ONBOOT= yes
IPADDR= 192.168.6.100
PREFIX=24
GATEWAY= 192.168.6.2
DNS1= 114.114.114.114

(注:IP地址master填192.168.6.100 slave填192.168.6.101)

service network restart

测试是否配置成功 ping baidu.com

可能出现的问题:由于slave是直接克隆过去的,MAC地址一样,可能不能同时上网

解决方法:slave中删除相关文件

rm –f /etc/udev/rules.d/70-persistent-net.rules

VMware中 虚拟机-设置—网络适配器(nat)--高级(重新生成并复制MAC地址)

重启后
vi /etc/sysconfig/network-scripts/ifcfg-ens33

将HWADDR=改成刚才随机生成的MAC地址(不存在就不改)

配置主机名

Master 节点: master

Slave 节点: Slave

*自定义:

使用gedit编辑主机名,如果不可以使用gedit,请直接使用vi编辑器(后面用到gedit的地方也同此处处理一致)。

# gedit /etc/hostname

配置信息如下,如果已经存在则不修改,将HadoopMaster节点的主机名改为master,即下面代码的第2行所示。

master

确实修改生效命令:

# hostname master

检测主机名是否修改成功命令如下,在操作之前需要关闭当前终端,重新打开一个终端:

# hostname

* Slave 节点,类同。

配置时钟同步

1、配置自动时钟同步

该项同时需要在HadoopSlave节点配置。

使用Linux命令配置

[root@master lyu]# crontab -e

该命令是vi编辑命令,按i进入插入模式,按Esc,然后键入:wq保存退出键入下面的一行代码,输入i,进入插入模式(星号之间和前后都有空格)

0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org

2、手动同步时间

直接在Terminal运行下面的命令:

[root@master lyu]# /usr/sbin/ntpdate cn.pool.ntp.org

关闭防火墙

在终端中执行下面命令:

[root@master ~]# systemctl stop firewalld.service

[root@master ~]# systemctl disable firewalld.service

配置hosts列表

该项也需要在HadoopSlave节点配置。

需要在root用户下(使用su命令),编辑主机名列表的命令:

[root@master lyu]# vi /etc/hosts

将下面两行添加到/etc/hosts文件中:

192.168.21.128 master

192.168.21.129 slave

注意:这里master节点对应IP地址是192.168.6.100,slave对应的IP是192.168.6.101,而自己在做配置时,需要将这两个IP地址改为你的master和slave对应的IP地址。

[lyu@master ~]$ ping master

[lyu@master ~]$ ping slave

如果能ping通表示配置成功

安装JDK

该项也需要在HadoopSlave节点配置。

首先查询系统自带的jdk

[root@master ~]$ rpm -qa | grep java

[root@master lyu]# rpm -qa|grep java
java-1.8.0-openjdk-headless-1.8.0.131-11.b12.el7.x86_64
javapackages-tools-3.4.1-11.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2017b-1.el7.noarch
java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64
java-1.7.0-openjdk-headless-1.7.0.141-2.6.10.5.el7.x86_64
java-1.7.0-openjdk-1.7.0.141-2.6.10.5.el7.x86_64
[root@master lyu]# 

然后移除系统自带的jdk

[root@master lyu]# yum remove java-1.*

利用xftp将下载的jdk上传到指定文件夹


将JDK文件解压,放到/usr/java目录下

[lyu@master ~]su root

[root@master ~]# cd /home/lyu/resources/software/jdk

[root@master jdk]# mkdir /usr/java

[root@master jdk]# mv jdk-8u131-linux-x64.tar.gz /usr/java/

[root@master jdk]# cd /usr/java

[root@master java]# tar -xvf /usr/java/jdk-8u131-linux-x64.tar.gz

[root@master java]# chmod +x /usr/java/jdk1.8.0_131/bin/*

使用vi配置环境变量

[lyu@master java]$ vi /home/lyu/.bash_profile

复制粘贴以下内容添加到到上面vi打开的文件中:

export JAVA_HOME=/usr/java/jdk1.8.0_131/

export PATH=$JAVA_HOME/bin:$PATH

使改动生效命令:

[lyu@master java]$ source /home/lyu/.bash_profile

测试配置:

[lyu@master ~]$ java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

免密钥登录配置

该部分所有的操作都要在lyu用户下,切换回lyu的命令是:

su -lyu

1、HadoopMaster节点

在终端生成密钥,命令如下(一路点击回车生成密钥)

[lyu@master ~]$ ssh-keygen -t rsa

复制公钥文件

[lyu@master .ssh]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

执行ls -l命令后会看到下图的文件列表

[lyu@master .ssh]$ ll
total 16
-rw-------. 1 lyu lyu  392 Feb 24 19:47 authorized_keys
-rw-------. 1 lyu lyu 1675 Feb 24 19:46 id_rsa
-rw-r--r--. 1 lyu lyu  392 Feb 24 19:46 id_rsa.pub

-rw-r--r--. 1 lyu lyu  181 Feb 24 19:49 known_hosts

修改authorized_keys文件的权限,命令如下:

[lyu@master .ssh]$ chmod 600 ~/.ssh/authorized_keys

将authorized_keys文件复制到slave节点,命令如下:

[lyu@master .ssh]$ scp ~/.ssh/authorized_keys lyu@slave:~/

如果提示输入yes/no的时候,输入yes,回车

密码是:lyu

2、HadoopSlave节点

在终端生成密钥,命令如下(一路点击回车生成密钥)

[lyu@slave ~]$ ssh-keygen -t rsa

将authorized_keys文件移动到.ssh目录

[lyu@slave ~]$ mv authorized_keys ~/.ssh/

3、验证免密钥登陆

在HadoopMaster机器上执行下面的命令:

[lyu@master ~]$ ssh slave

如果出现下图的内容表示免密钥配置成功:

[lyu@master .ssh]$ ssh slave
Last login: Sun Feb 25 03:24:41 2018 from 192.168.6.100
[lyu@slave ~]$ 

Hadoop配置部署

每个节点上的Hadoop配置基本相同,在HadoopMaster节点操作,然后完成复制到另一个节点。

下面所有的操作都使用lyu用户,切换lyu用户的命令是:

[root@master lyu]$ su - lyu

密码是:lyu

1 Hadoop安装包解压

进入Hadoop软件包,命令如下:

[lyu@master ~]$ cd /home/lyu/resources/software/hadoop

复制并解压Hadoop安装包命令如下:

[lyu@master ~]$ cp hadoop-2.7.5.tar.gz ~/

[lyu@master ~]$ cd

[lyu@master ~]$ tar -xvf ~/hadoop-2.7.5.tar.gz

[lyu@master ~]$ cd ~/hadoop-2.7.5

 2 配置环境变量hadoop-env.sh

环境变量文件中,只需要配置JDK的路径。

[lyu@master hadoop-2.7.5]$ vi /home/lyu/hadoop-2.7.5/etc/hadoop/hadoop-env.sh

在文件的靠前的部分找到下面的一行代码:

export JAVA_HOME=${JAVA_HOME}

将这行代码修改为下面的代码:

export JAVA_HOME=/usr/java/jdk1.8.0_131/

然后保存文件。

3 配置环境变量yarn-env.sh

环境变量文件中,只需要配置JDK的路径。

[lyu@master hadoop-2.7.5]$ vi ~/hadoop-2.7.5/etc/hadoop/yarn-env.sh

在文件的靠前的部分找到下面的一行代码:

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

将这行代码修改为下面的代码(将#号去掉):

export JAVA_HOME=/usr/java/jdk1.8.0_131/

然后保存文件。

4 配置核心组件core-site.xml

使用vi编辑:

[lyu@master hadoop-2.7.5]$ vi   ~/hadoop-2.7.5/etc/hadoop/core-site.xml

用下面的代码替换core-site.xml中的内容:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

        <property>

                <name>fs.defaultFS</name>

                <value>hdfs://master:9000</value>

        </property>

        <property>

                <name>hadoop.tmp.dir</name>

                <value>/home/lyu/hadoopdata</value>

        </property>

</configuration>

 5 配置文件系统hdfs-site.xml

使用vi编辑:

[lyu@master hadoop-2.7.5]$ vi   ~/hadoop-2.7.5/etc/hadoop/hdfs-site.xml

用下面的代码替换hdfs-site.xml中的内容:

<?xml version="1.0" encoding="UTF-8"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<!-- Put site-specific property overrides in this file. -->

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>1</value>

    </property>

</configuration>

6 配置文件系统yarn-site.xml

使用vi编辑:

[lyu@master hadoop-2.7.5]$ vi   ~/hadoop-2.7.5/etc/hadoop/yarn-site.xml

用下面的代码替换yarn-site.xml中的内容:

<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
                <name>yarn.resourcemanager.address</name>
                <value>master:18040</value>
        </property>
<property>
                <name>yarn.resourcemanager.scheduler.address</name>
                <value>master:18030</value>
        </property>
<property>
                <name>yarn.resourcemanager.resource-tracker.address</name>
                <value>master:18025</value>
        </property>
<property>
                <name>yarn.resourcemanager.admin.address</name>
                <value>master:18141</value>
        </property>
<property>
                <name>yarn.resourcemanager.webapp.address</name>
                <value>master:18088</value>
        </property>
</configuration>

7 配置计算框架mapred-site.xml

复制mapred-site-template.xml文件:

[lyu@master hadoop-2.7.5]$ cp ~/hadoop-2.7.5/etc/hadoop/mapred-site.xml.template  ~/hadoop-2.7.5/etc/hadoop/mapred-site.xml

使用vi编辑:

[lyu@master ~]$ vi ~/hadoop-2.7.5/etc/hadoop/mapred-site.xml

用下面的代码替换mapred-site.xml中的内容

<?xml version="1.0"?>

<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>

      <property>

            <name>mapreduce.framework.name</name>

            <value>yarn</value>

      </property>

</configuration>

8 在master节点配置slaves文件

使用vi编辑:

[lyu@master hadoop-2.7.5]$ vi ~/hadoop-2.7.5/etc/hadoop/slaves

用下面的代码替换slaves中的内容:

slave

9 复制到从节点

使用下面的命令将已经配置完成的Hadoop复制到从节点HadoopSlave上:

lyu@master hadoop-2.7.5]$ cd

[lyu@master ~]$ scp -r hadoop-2.7.5 lyu@slave:~/

注意:因为之前已经配置了免密钥登录,这里可以直接远程复制。

启动Hadoop集群

下面所有的操作都使用lyu用户,切换lyu用户的命令是:

su - lyu

密码是:lyu

1  配置Hadoop启动的系统环境变量

该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作,操作命令如下:

[lyu@master hadoop-2.7.5]$ cd

[lyu@master ~]$ vi ~/.bash_profile

将下面的代码追加到.bash_profile末尾:

#HADOOP

export HADOOP_HOME=/home/lyu/hadoop-2.7.5

export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

然后执行命令:

[lyu@master ~]$ source ~/.bash_profile

2  创建数据目录

该节的配置需要同时在两个节点(HadoopMaster和HadoopSlave)上进行操作。

在lyu的用户主目录下,创建数据目录,命令如下:

[lyu@master ~]$ mkdir /home/lyu/hadoopdata

3 启动Hadoop集群

3.1、格式化文件系统

格式化命令如下,该操作需要在HadoopMaster节点上执行:

[lyu@master ~]$ hdfs namenode -format


. . . . . .


3.2、启动Hadoop

使用start-all.sh启动Hadoop集群,首先进入Hadoop安装主目录,然后执行启动命令:

[lyu@master ~]$ cd ~/hadoop-2.7.5

[lyu@master hadoop-2.7.5]$ sbin/start-all.sh

执行命令后,提示出入yes/no时,输入yes。

3.3、查看进程是否启动

在HadoopMaster的终端执行jps命令,在打印结果中会看到4个进程,分别是ResourceManager、Jps、NameNode和SecondaryNameNode,如下图所示。如果出现了这4个进程表示主节点进程启动成功。

[lyu@master hadoop-2.7.5]$ jps
3588 Jps
3333 ResourceManager
2984 NameNode
3176 SecondaryNameNode

[lyu@master hadoop-2.7.5]$

在HadoopSlave的终端执行jps命令,在打印结果中会看到3个进程,分别是NodeManager、DataNode和Jps,如下图所示。如果出现了这3个进程表示从节点进程启动成功。

[lyu@slave ~]$ jps
2520 DataNode
2763 Jps
2638 NodeManager

[lyu@slave ~]$ 

3.4、Web UI查看集群是否成功启动

在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入输入http://master:50070/,检查 namenode 和 datanode 是否正常。UI页面如下图所示。


在HadoopMaster上启动Firefox浏览器,在浏览器地址栏中输入输入http://master:18088/,检查 Yarn是否正常,页面如下图所示。


3.5、运行PI实例检查集群是否成功

进入Hadoop安装主目录,执行下面的命令:

[lyu@master~]$ hadoop jar ~/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar pi 10 10

会看到如下的执行结果:


最后输出:
Estimated value of Pi is 3.20000000000000000000
如果以上的3个验证步骤都没有问题,说明集群正常启动。
©️2020 CSDN 皮肤主题: 创作都市 设计师:CSDN官方博客 返回首页