Hadoop + Spark生态系统操作与实战指南
上QQ阅读APP看书,第一时间看更新

2.3 Linux系统设置

1.用户权限事项

配置或者搭建集群过程中,全部用root账户登录。

2.修改主机名方法

将三台机器的主机名分别修改成hadoop11、hadoop12、hadoop13。修改完之后重启电脑,修改的方法如下:

• 方法一:暂时修改机器名:hostname。

        用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值。
        #hostname     //查看机器名
        #hostname-i   //查看本机器名对应的ip地址

• 方法二:永久性修改机器名:修改系统配置文件

修改/etc/sysconfig/network,修改这个系统配置文件,才能有效改变机器名,修改主机名如图2-17所示。

图2-17 修改主机名

3. Windows和Linux域名解析

(1)Windows的域名解析

修改Windows下的域名解析,路径为C:\Windows\System32\drivers\etc\hosts。

内容为:

    192.168.200.11 hadoop11
    192.168.200.12 hadoop12
    192.168.200.13 hadoop13

(2)Linux的域名解析

修改Linux下的域名解析如图2-18所示,路径为/etc/hosts。

图2-18 Linux域名解析设置

4. ssh免密码登录的配置方法

在客户端生成密钥对:

    ssh-keygen -t rsa

把公钥复制给要登录的目标主机,目标主机上将这个公钥加入到授权列表:

    Cat id_rsa.pub >>authorized_keys

目标主机还要将这个授权列表文件权限修改为:

    600 chmod 600 authorized_keys

在用户目录下面执行5步:

    rm -rf .ssh/
    ssh-keygen -t rsa
    cat .ssh/id_rsa.pub >> .ssh/authorized_keys
    chmod  700  .ssh
    chmod  600  .ssh/authorized_keys

.ssh/authorized_keys内容如图2-19所示。

图2-19 authorized_keys内容

5. Linux批量关机和重启脚本

为了避免读者每次登录所有机器单独执行某条指令,作者写了一个批量启动脚本。主要方法是远程发送命令,从A服务器到达B服务器,启动某条shell命令。

批量执行的脚本如下:

    all-halt.sh           //批量关闭所有服务器
    all-restart.sh       //批量重启所有服务器
    hadoop-halt.sh       //启动一台节点Hadoop
    hadoop-restart.sh   //重启一台节点Hadoop

批量关机脚本all-halt.sh如图2-20所示。

图2-20 批量关机脚本all-halt.sh

    ssh root@hadoop11 "bash" </root/hadoop-halt.sh
    ssh root@hadoop12 "bash" </root/hadoop-halt.sh
    ssh root@hadoop13 "bash" </root/hadoop-halt.sh

6. Linux虚拟机安装Java

每台机器安装JDK,下载Java版本jdk-8u65-linux-x64.tar.gz。

(1)卸载系统自带Java

    [root@hadoop11 app]#  rpm -qa|grep java
    [root@hadoop11 app]#  yum -y remove java-1.7.0-openjdk-1.7.0.79-
    2.5.5.4.el6.x86_64

(2)安装Java

配置环境变量:

    vi /etc/profile
    export JAVA_HOME=/usr/app/jdk1.8.0_65
    export PATH=$PATH:$JAVA_HOME/bin

立即生效:

    source /etc/profile

7.所有节点配置NTP服务

集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。具体思路如下:

Master节点作为NTP服务器与外界的对时中心同步时间,随后对所有DataNode节点提供时间同步服务。所有DataNode节点以Master节点为基础同步时间。

所有节点安装相关组件:

    yum install ntp

完成后,配置开机启动:

    chkconfig ntpd on

检查是否设置成功:

    chkconfig --list ntpd

其中从第2~5个运行级系统服务转态为on状态就代表成功。

(1)主节点配置

在配置之前,先使用ntpdate手动同步一下时间,免得本机与对时中心时间差距太大,使得ntpd不能正常同步。这里选用127.127.1.0作为对时中心:

    ntpdate -u 127.127.1.0

NTP服务只有一个配置文件(NTP配置文档只有一个/etc/ntp.conf,看看作者的ntp.conf),配置好了就可以了。这里只给出有用的配置,不需要的配置都用#注释掉,这里注释掉的内容就不再给出。

Master的NTP配置如下:

    driftfile /var/lib/ntp/drift
    restrict 127.0.0.1
    restrict -6 ::1
    restrict default nomodify notrap
    server 127.127.1.0 prefer
    includefile /etc/ntp/crypto/pw
    keys /etc/ntp/keys

(2)配置NTP客户端(所有DataNode节点)

DataNode的NTP配置如下:

    driftfile /var/lib/ntp/drift
    restrict 127.0.0.1
    restrict -6 ::1
    restrict default kod nomodify notrap nopeer noquery
    restrict -6 default kod nomodify notrap nopeer noquery
@@@
    #这里是主节点的主机名或者ip
    server hadoop11
    include file /etc/ntp/crypto/pw
    keys /etc/ntp/keys

启动NTP服务:

    Service ntpd start

登录Master机器,执行命令:

    ntpdate -u 127.127.1.0

登录所有Slave机器,同步主节点执行命令:

    ntpdate -u hadoop11

检查是否成功,查看命令:

    watch ntpq –p

NTP测试如图2-21~图2-23所示,本例中hadoop4是主节点Master, hadoop1和hadoop3是从节点Slave,图2-21是hadoop4查看界面,图2-22是hadoop1查看界面,图2-23是hadoop3查看界面。

图2-21 NTP测试一

图2-22 NTP测试二

图2-23 NTP测试三