- 01、服务器环境
- 02、集群规划
- 03、hostname
- 04、hosts
- 05、WIN10网络映射配置
- 06、关闭防火墙
- 07、集群之间SSH免密登录
- 08、Python版本确认
- 09、集群分发脚本
- 10、禁用SELinux模式
- 11、禁用透明大页配置
- 12、集群操作脚本(可选)
- 13、集群时间同步
- 14、CDH平台权限与命令概览
云主机,CentOS版本版本3.10.0-1160.31.1.el7.x86_64
02、集群规划| 集群规划 | hadoop102 | hadoop103 | hadoop104 |
|---|---|---|---|
| 内(私)网IP | |||
| 外(公)网IP |
hostnamectl --static set-hostname hadoop102
hostnamectl --static set-hostname hadoop103
hostnamectl --static set-hostname hadoop10404、hosts
vim /etc/hosts
添加内网IP映射
内网IP hadoop102 hadoop102 内网IP hadoop103 hadoop103 内网IP hadoop104 hadoop10405、WIN10网络映射配置
去到C:WindowsSystem32driversetc以管理员身份编辑hosts文件,添加外网IP映射
外网IP hadoop102 外网IP hadoop103 外网IP hadoop10406、关闭防火墙
保存当前防火墙规则
iptables-save > ~/firewall.rules
禁用防火墙
systemctl disable firewalld
停止防火墙
systemctl stop firewalld
查看防火墙状态
systemctl status firewalld07、集群之间SSH免密登录
每台机执行:生成公钥和密钥
ssh-keygen
每台机执行:把自己的公钥发到所有节点,填yes和密码
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop102
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop103
ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop10408、Python版本确认
Hue需要用到Python2.7;CentOS7默认装好了Python2.7,用下面命令确认一下
python --version09、集群分发脚本
mkdir ~/bin touch ~/bin/rsync.py chmod 777 ~/bin/rsync.py vim ~/bin/rsync.py
#!/usr/bin/python2
# coding:utf-8
import os, re, socket
# 获取第一个参数
a = os.sys.argv
if len(a) != 2:
print a
exit('使用方法:rsync.py $HADOOP_HOME')
a = a[1]
# 补全路径
if not a.startswith('/'):
a = os.path.join(os.getcwd(), a)
if os.path.isdir(a) and not a.endswith('/'):
a += '/'
if not os.path.exists(a):
print a
exit('路径不存在')
# 文件分发
hostname = socket.gethostname()
with open('/etc/hosts') as f:
for i in set(re.findall('hadoop[0-9]+', f.read())):
if i == hostname:
continue
aa = 'rsync -a %s %s:%s' % (a, i, a)
print aa
os.system(aa)
分发
rsync.py ~/bin10、禁用SELinux模式
注:安全增强的Linux(SELinux)允许通过策略设置访问控制。如果在部署CDH时遇到困难,请在将CDH部署到集群之前,在每个主机上将SELinux设置为permissive模式。
检查当前SELinux mode状态
getenforce
如果输出为Disabled或Permissive ,进入下一步
如果输出结果为enforcing,则需要额外4步:
1、vim /etc/selinux/config
2、将SELINUX=enforcing改为SELINUX=permissive
3、保存并关闭文件
4、重新启动系统或运行setenforce 0命令来立即禁用SELinux
Cloudera公司建议关闭透明大页;如果未关闭,就会在后面的环境检测中报错
每台机执行
# 前两行代码:暂时生效,当重启后配置会消失 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.local12、集群操作脚本(可选)
touch ~/bin/cluster.py chmod 777 ~/bin/cluster.py vim ~/bin/cluster.py
#!/usr/bin/python2
import os, re
# command
a = os.sys.argv
if len(a) < 2:
print a
exit('Usage: cluster.py python --version')
cmd = ' '.join(a[1:])
# cluster operation
with open('/etc/hosts') as f:
for h in sorted(set(re.findall('hadoop[0-9]+', f.read()))):
c = "ssh %s '%s'" % (h, cmd)
print ' 33[033m{} 33[0m'.format(c)
os.system(c)
另外,还有在每台机执行:将/etc/profile文件内容追加到~/.bashrc,只执行一次
cat /etc/profile >> ~/.bashrc cat ~/.bashrc
13、集群时间同步.bashrc是针对特定用户的环境变量配置
云服务本身已经提供时间服务,我们可用下面命令检查集群时间是否一致
cluster.py date14、CDH平台权限与命令概览
| 任务 | 需要的权限 |
|---|---|
| 安装Cloudera Manager Server | 安装CM Server的主机需要有root或sudo权限 |
| 使用service或systemctl工具启动、停止或重新启动Cloudera Manager服务器 | Cloudera Manager Server 的主机需要有root或sudo权限;默认情况下服务运行在cloudera-scm用户下 |
| 使用CM安装CDH组件 | 在Cloudera Manager初始安装时配置的如下之一: 有密码或者ssh秘钥的方式访问root用户的权限 为特定用户提供无密码的sudo访问 对于此任务,不支持使用另一个提供root或sudo访问的系统(例如PowerBroker) |
| 使用CM安装CM Agent | 在Cloudera Manager初始安装时配置的如下之一: 有密码或者ssh秘钥的方式访问root用户的权限 为特定用户提供无密码的sudo访问 对于此任务,不支持使用另一个提供root或sudo访问的系统(例如PowerBroker) |
| 自动启动CM Agent进程 | 在运行时访问root帐户,通过以下场景之一: 在Cloudera Manager和CDH安装期间,如果安装成功,代理将自动启动。然后使用以下其中一种启动它,这与Cloudera Manager初始安装期间的配置相同: 有密码或者ssh秘钥的方式访问root用户的权限 为特定用户提供无密码的sudo访问. 对于此任务,不支持使用另一个提供root或sudo访问的系统(例如PowerBroker)。 在系统启动过程中使用init自动启动 |
| 手动启动、停止或重新启动Cloudera Manager Agent进程 | root或sudo 权限。 该权限要求确保Cloudera Manager代理管理的服务可以作为适当的用户运行(例如hdfs服务的hdfs用户)。在CDH服务的Cloudera Manager中运行命令不需要root或sudo访问,因为操作是由Cloudera Manager Agent处理的,它已经作为root在运行了 |
-
如果您想为Cloudera Manager用户配置特定的sudo访问(默认情况下是Cloudera -scm),您可以使用以下列表来完成(CM运行的sudo命令有下面这些):
-
yum (RHEL/CentOS/Oracle)
sed
service
/sbin/chkconfig (RHEL/CentOS/Oracle)
id
rm
mv
chown
install



