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测试三