提醒:集群的每个机器都要操作一次
1 关闭防火墙
执行命令 service iptables stop
验证: service iptables status
2 关闭防火墙的自动运行
执行命令 chkconfig iptables off
验证: chkconfig --list | grep iptables
$>vi /etc/selinux/config
SELINUX=disabled
清空防火墙策略:
iptables -F
3 设置主机名-- linux运维
执行命令 (1)hostname hadoopcm-01
(2)vi /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=hadoopcm-01
4 ip与hostname绑定(关键,每个机器)
执行命令 (1)vi /etc/hosts
[root@hadoopcm-01 ~]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.101.54 hadoopcm-01.xxx.com hadoopcm-01
172.16.101.55 hadoopnn-01.xxx.com hadoopnn-01
172.16.101.56 hadoopnn-02.xxx.com hadoopnn-02
172.16.101.58 hadoopdn-01.xxx.com hadoopdn-01
172.16.101.59 hadoopdn-02.xxx.com hadoopdn-02
172.16.101.60 hadoopdn-03.xxx.com hadoopdn-03
验证: ping hadoopcm-01
集群每台机器同步 scp /etc/hosts root@hadoopnn-01:/etc/hosts
5 安装oracle jdk,不要安装
(1)下载,指定目录解压
[root@hadoopcm-01 tmp]# tar -xzvf jdk-7u79-linux-x64.gz -C /usr/java/
(2)vi /etc/profile 增加内容如下:
export JAVA_HOME=/usr/java/jdk1.7.0_79
export PATH=.:$JAVA_HOME/bin:$PATH
(3)source /etc/profile
验证: java -version
which java
6 创建hadoop用户,密码admin (三个文件/etc/passwd, /etc/shadow, /etc/group) (此步可以省略,可以直接用root安装,最后CDH集群环境的各个进程是以各自的用户管理的)
要求: root或者sudo无密码 user
6.1 没LDAP,root-->happy
6.2 刚开始给你机器,root,这时候拿root用户安装,过了一个月机器加上公司LDAP-->安装开心,要一个sudo user
6.3 始终不会加LDAP认证,都有root用户,但是想要用另外一个用户安装管理,必须sudo
6.4 给你的机器,就是有LDAP-->不要怕 ,搞个sudo user
[root@hadoopcm-01 ~]# adduser hadoop
[root@hadoopcm-01 ~]# passwd hadoop
Changing password for user hadoop.
New password:
BAD PASSWORD: it is too short
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
[root@hadoopcm-01 etc]# vi /etc/sudoers
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
hadoop ALL=(root) NOPASSWD:ALL
hadoop ALL=(ALL) ALL
jpwu ALL=(root) NOPASSWD:ALL
jpwu ALL=(ALL) NOPASSWD:ALL
###验证sudo权限
[root@hadoopcm-01 etc]# sudo su hadoop
[hadoop@hadoopcm-01 ~]$ sudo ls -l /root
total 4
-rw------- 1 root root 8 Apr 2 09:45 dead.letter
7 检查python:
cdh4.x系列 系统默认python2.6.6 --> 升级2.7.5–>hdfs ha,过不去. (2个月)
cdh5.x系列 python2.6.6 or python2.7
#建议是python2.6.6版本
python --version
centos6.x python2.6.x
centos7.x python2.7.x
但是 假如以后你们集群是2.7.x 跑Python服务需要3.5.1
8 时区+时钟同步
https://www.cloudera.com/documentation/enterprise/5-10-x/topics/install_cdh_enable_ntp.html
[root@hadoopcm-01 cdh5.7.0]# grep ZONE /etc/sysconfig/clock
ZONE="Asia/Shanghai"
运维: 时区一致 + 时间同步
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
yum install -y ntpdate
配置集群时间同步服务:通过ntp服务配置
192.168.17.1-100
192.168.17.0
ntp主节点配置:
cp /etc/ntp.conf /etc/ntp.conf.bak
cp /etc/sysconfig/ntpd /etc/sysconfig/ntpd.bak
echo “restrict 172.16.101.0 mask 255.255.255.0 nomodify notrap” >> /etc/ntp.conf
echo “SYNC_HWCLOCK=yes” >> /etc/sysconfig/ntpd
service ntpd restart
ntp客户端节点配置:
然后在所有节点都设置定时任务 crontab –e 添加如下内容:
*/30 * * * * /usr/sbin/ntpdate 172.16.101.54
[root@hadoop002 ~]# /usr/sbin/ntpdate 192.168.1.131
16 Sep 11:44:06 ntpdate[5027]: no server suitable for synchronization found
防火墙没有关闭 清空
9 关闭大页面
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/defrag’>> /etc/rc.local
echo ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’>> /etc/rc.local
10 swap 物理磁盘空间 作为内存
echo ‘vm.swappiness = 10’ >> /etc/sysctl.conf
sysctl -p
执行sysctl -P 命令的时候报错:
error: “net.bridge.bridge-nf-call-ip6tables” is an unknown key
error: “net.bridge.bridge-nf-call-iptables” is an unknown key
error: “net.bridge.bridge-nf-call-arptables” is an unknown key
解决办法 :
modprobe bridge
lsmod|grep bridge
swap=0-100
0不代表禁用 而是惰性最高
100表示 使用积极性最高
集群计算对实时性 要求高的 swap=0 允许job挂 迅速的加内存或调大参数 重启job
集群计算对实时性 要求不高的 swap=10/30 不允许job挂 慢慢的运行
4G内存 8Gswap
0: 3.5G–》3.9G 0
30: 3G 2G