Cloudera manage(离线)安装手册
(按步骤操作)
1. 准备工作
1.1. 系统环境
硬件设备:vm虚拟机
网络组成:
192.168.210.131master
192.168.210.132slave1
192.168.210.134slave2
192.168.210.133slave3
操作系统:Linux version 2.6.32-220.el6.x86_64
1.2. 安装JDK
从官方网站上下载rpm包,本次使用版本1.7.0_79(CDH5可能支持1.7之前的版本,具体情况未经测试),执行命令:
rpm -ivh jdk-7u79-linux-x64.rpm
由于是rpm包并不需要我们来配置环境变量,我们只需要配置一个全局的JAVA_HOME变量即可,执行命令:
echo”JAVA_HOME=/usr/java/latest/” >> /etc/profile.d/java.sh
执行命令,查看Jdk是否安装正确
java -version
javac -version
1.3. 修改主机名
修改/etc/sysconfig/network文件:
NETWORKING=yes
HOSTNAME=master
NETWORKING_IPV6=no
其中HOSTNAME与主机名一致。
主机名如果跟系统安装时不一致请执行hostname命令让其立即生效,否则会影响各节点互相访问,命令如下:
hostnamemaster
修改/etc/hosts文件,添加:
192.168.1.101master
192.168.1.102slave1
192.168.1.103slave2
192.168.1.104slave3
重新启动网络服务,执行命令:
servicenetwork restart
1.4. 关闭防火墙
防火墙会引起hadoop相关组件通讯的各种异常。防火墙:
serviceiptables stop (临时关闭)
chkconfigiptables off (重启后生效)
设置SELINUX:
setenforce0 (临时生效)
修改/etc/selinux/config 下的 SELINUX=disabled (重启后生效)
查看防火墙状态:service iptables status
1.5. 修改wap交换空间
临时生效:
sudo sysctl vm.swappiness=0
修改配置文件/etc/sysctl.conf重启后仍然生效:
echo”vm.swappiness=0″>>/etc/sysctl.conf
1.6. SSH无密钥验证
所有节点均执行如下命令,遇到提示一路回车即可:
ssh-keygen-t rsa
cat~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys_$hostname
scp各数据节点文件authorized_keys到主节点:
scp ~/.ssh/authorized_keyshadoop@master:~/.ssh/
合并各节点文件authorized_keys_$hostname到文件authorized_keys:
cat~/.ssh/authorized_keys_$hostname >>authorized_keys
master主机分发合并后的authorized_keys所有节点主机:
scp ~/.ssh/authorized_keyshadoop@slave1:~/.ssh/
然后输入密码即可,以后再到其他机器就不需要密码额。
如果ssh登陆时,等待输入密码时间较长,可以通过修改以下配置文件:
修改 /etc/ssh/sshd_config配置项UseDNS,设置为no,重启sshd服务:servicesshd restart
修改 /etc/ssh/ssh_conf配置项GSSAPIAuthentication ,设置为no;
在多台主机做ssh互信时,可以使用sshpass工具提高效率,具体操作如下:
1、 安装sshpass工具
2、 在所有主机执行命令:sshpass-p 123456 ssh root@bigdata-2 “ssh-keygen -t rsa”
3、 合并所有主机的公钥:
sshpass -p 123456 ssh root@bigdata-2 “cat/root/.ssh/id_rsa.pub”
>>/root/.ssh/authorized_keys
4、分发公钥文件至各个主机;
1.7. 检查时区
查看当前时区:date -R
修改时区为上海:ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
1.8. 关闭大页面配置项:
执行命令:echo never > /sys/kernel/mm/transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始脚本中,以便在系统重启时予以设置,
vi /etc/rc.local 增加配置
echo never > /sys/kernel/mm/transparent_hugepage/defrag
1.9. 修改允许打开文件数
修改文件:/etc/rc.local ,新增如下配置内容:
ulimit -SHn 65535
1.10. 安装NTP服务
客户端修改ntp配置文件:/etc/ntp.conf,新增ntp服务器配置:
server 192.168.10.188
启动本机ntp服务:service ntpd start
手工同步ntp:ntpdate -u 192.168.10.188
查看ntp同步状态:watch ntpq -p
1.11. 安装Mysql数据库
检查安装环境
查找以前是否装有mysql,命令:
rpm -qa|grep -i mysql
可以看到mysql的两个包:
mysql-4.1.12-3.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
删除mysql
删除命令:rpm -e –nodeps 包名
( rpm -ev mysql-4.1.12-3.RHEL4.1 )
删除老版本mysql的开发头文件和库
rm -fr /usr/lib/mysql
rm -fr /usr/include/mysql
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除
rm -f /etc/my.cnf
rm -fr /var/lib/mysql
安装server端
下载mysql安装包,并执行安装命令:
rpm-ivh MySQL-server-5.6.24-1.el6.x86_64.rpm(安装包名称)
root用户初始密码存储位置为:
ARANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER !
Youwill find that password in ‘/root/.mysql_secret‘.
可以使用以上密码登陆,然后修改为所需要的密码。
安装客户端
下载mysql客户端,执行命令安装:
rpm-ivh MySQL-client-5.6.24-1.el6.x86_64.rpm
1.12. 配置mysql数据库
启动mysql数据库
servicemysql start
修改初始密码:
修改MySQL数据库root用户的初始密码,先查下初始密码
cat/root/.mysql_secret
使用初始密码登陆mysql数据库,登陆命令为:
mysql -uroot –p
执行如下命令修改数据库root用户密码:
setpassword=password(‘123456’);
刷新权限表:
flushprivileges;
测试使用新密码进行登陆。。。。。。。。。。。。。
2. 安装CM
-
1.
-
2.
-
2.1. 下载安装包
下载地址http://archive-primary.cloudera.com/cm5/cm/5/,根据自己的系统选择相应的版本,本次安装选用的是cloudera-manager-el6-cm5.7.1_x86_64.tar.gz。下载完成后只上传到master节点即可。然后解压到/opt目录下,不能解压到其他地方,因为cdh6的源会默认在/opt/cloudera/parcel-repo寻找,怎么制作cdh6的本地源文件会在之后介绍。
2.2. 安装CM
给所有节点添加cloudera-scm用户:
useradd–system –home=/opt/cm-5.7.1/run/cloudera-scm-server/ –no-create-home–shell=/bin/false –comment “Cloudera SCM User” cloudera-scm
修改/opt/cm-5.7.1/etc/cloudera-scm-agent/config.ini下面的server_host
#Hostname of the CM server.
server_host=master
上传mysql驱动包mysql-connector-java-5.1.26-bin.jar到/opt/cm-5.7.1/share/cmf/lib/目录:
cp/root/data/mysql-connector-java-5.1.26-bin.jar /opt/cm-5.7.1/share/cmf/lib/
为Cloudera Manager 5建立数据库:
/opt/cm-5.7.1/share/cmf/schema/scm_prepare_database.shmysql cm -hlocalhost -uroot -p123456 –scm-host localhost scm scm scm
格式是:scm_prepare_database.sh数据库类型 数据库服务器用户名密码 –scm-host Cloudera_Manager_Server所在的机器,后面那三个不知道代表什么,直接照抄官网的了。
开启ClouderaManager 5 Server端:
/opt/cm-5.7.1/etc/init.d/cloudera-scm-serverrestart
注意server首次启动不要立即关闭或重启,因为首次启动会自动创建相关表以及数据,如果因为特殊原因中途退出,请先删除所有表以及数据之后再次启动,否则将会出现启动不成功的情况。
开启ClouderaManager 5 Agents端:
先scp/opt/cm-5.7.1到所有datanode节点上,然后在每台机器上开启Agents端:
scp-r /opt/cm-5.7.1 root@slave1:/opt/cm-5.7.1
等待拷贝成功,在所有datanode节点上启动:(注意必须以管理员权限启动)
/opt/cm-5.7.1/etc/init.d/cloudera-scm-agentrestart
浏览器启动ClouderaManager 5 控制台(默认端口号是7180),启动成功就会看到登陆页面。
2.3. 添加Service Monitor服务
直接在cm管理页面添加service组件即可;
3. 安装CDH
-
3.
-
3.1. 下载CDH版本
下载CDH版本到本地http://archive-primary.cloudera.com/cdh6/parcels/5.0.0/,需要下载两样东西:
1、与操作系统版本相对应的parcel包
2、 manifest.json文件。
3.2. 安装CDH
本地源制作
下载完成后将这两个文件放到master节点的/opt/cloudera/parcel-repo下(目录在安装Cloudera Manager 5时已经生成);打开manifest.json文件,里面是json格式的配置,找到与我们系统版本相对应的hash码,因为我们用的是redhat6.4,所以找到如下位置:
在这个大括号的最下面找到“hash”所对应的值。
将“hash”的值复制下来,然后创建一个文件,文件名与你的parel包名一致,并加上.sha后缀:
此时安装目录下有3个文件,将“hash”的值复制到新建的sha文件中,并保存,然后重启cm server;
CDH安装
打开http://192.168.1.101:7180,登陆控制台,默认账户和密码都是admin,安装时选择免费版,之后由于cm5对中文的支持很强大,按照提示安装即可,如果系统配置有什么问题在安装过程中会有提示,根据提示给系统安装组件就可以了。
如果在安装时选择了安装Hive,可能会遇到安装失败的问题,查看一下日志发现时安装Hive时需要安装JDBC驱动,所以同样我们将Mysql的驱动包拷贝到/opt/cloudera/parcels/CDH-5.7.1-1.cdh6.7.1.p0.6/lib/hive/lib目录下,之后再继续安装就不会遇到问题了。
3.3. 配置HA
配置HDFS及YARN 高可用
分别进入HDFS、YARN服务管理页面,选择ACTION(操作),点击启用HA,按照步骤操作即可;
4. 常见问题处理
1、 安装hive、Impala等组件时,需要mysql源数据支持,需要新建数据库并进行赋权操作,详细操作如下:
—创建数据库
createdatabase cm DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
createdatabase hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
createdatabase amon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
createdatabase smon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
createdatabase hmon DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
createdatabase hiverep DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
—数据库授权
grantall on *.* to root@”%” Identified by “123456”;
2、 Hive或者impala表注释中文乱码解决方法:
alter table COLUMNS_V2 modify column COMMENT varchar(256) characterset utf8;
alter table TABLE_PARAMSmodify column PARAM_VALUE varchar(4000) character set utf8;
5. CDH服务端口列表
组件 |
端口号 |
端口用途 |
是否会被外部访问 |
CM |
7180 |
CM管理端口 |
是 |
Cloudera Management Service |
8087 |
Activity Monitor Web UI 端口 |
否 |
9999 |
Activity Monitor 侦听端口 |
否 |
|
9998 |
Activity Monitor 喷嘴端口 |
否 |
|
10101 |
警报:侦听端口 |
否 |
|
7184 |
事件发布端口 |
否 |
|
7185 |
事件查询端口 |
否 |
|
8084 |
Event Server Web UI 端口 |
否 |
|
8091 |
Host Monitor Web UI 端口 |
否 |
|
9995 |
Host Monitor 侦听端口 |
否 |
|
9994 |
Host Monitor 喷嘴端口 |
否 |
|
7186 |
Navigator 审核服务器端口 |
否 |
|
8089 |
Navigator Audit Server Web UI 端 |
否 |
|
7187 |
Navigator Metadata Server 端口 |
否 |
|
5678 |
Reports Manager 服务器端口 |
否 |
|
8083 |
Reports Manager Web UI 端口 |
否 |
|
8086 |
Service Monitor Web UI 端口 |
否 |
|
9997 |
Service Monitor 侦听端口 |
否 |
|
9996 |
Service Monitor 喷嘴端口 |
否 |
|
zookeeper |
2181 |
客户端端口 |
是 |
3181 |
仲裁端口 |
否 |
|
4181 |
选举端口 |
否 |
|
9010 |
JMX 远程端口 |
是 |
|
yarn |
10020 |
MapReduce JobHistory Server 端口 |
否 |
19888 |
MapReduce JobHistory Web 应用程序 HTTP 端口 |
是 |
|
19890 |
MapReduce JobHistory Web 应用程序 HTTPS 端口 (TLS/SSL) |
否 |
|
10033 |
MapReduce JobHistory Server 管理接口端口 |
否 |
|
8042 |
NodeManager Web 应用程序 HTTP 端口 |
否 |
|
8044 |
NodeManager Web 应用程序 HTTPS 端口 (TLS/SSL) |
否 |
|
8041 |
NodeManager IPC 地址 |
否 |
|
8040 |
Localizer 端口 |
否 |
|
8032 |
ResourceManager 地址 |
否 |
|
8030 |
调度程序地址 |
否 |
|
8031 |
资源追踪器地址 |
否 |
|
8033 |
管理地址 |
否 |
|
8088 |
ResourceManager Web 应用程序 HTTP 端口 |
是 |
|
8090 |
ResourceManager Web 应用程序 HTTPS 端口 (TLS/SSL) |
否 |
|
Kafka |
9092 |
TCP Port |
是 |
9393 |
JMX Port |
是 |
|
9394 |
是 |
||
9093 |
TLS/SSL Port |
否 |
|
24042 |
HTTP Metric Report Port |
否 |
|
Hive |
9083 |
Hive Metastore 服务器端口 |
否 |
10000 |
HiveServer2 端口 |
否 |
|
10002 |
HiveServer2 WebUI Port |
是 |
|
50111 |
WebHCat Server 端口 |
否 |
|
HDFS |
50020 |
DataNode 协议端口 |
否 |
50010 |
DataNode 收发器端口 |
否 |
|
50075 |
DataNode HTTP Web UI 端口 |
是 |
|
50475 |
安全 DataNode Web UI 端口 (TLS/SSL) |
否 |
|
14000 |
REST 端口 |
否 |
|
14001 |
管理端口 |
否 |
|
8485 |
JournalNode RPC 端口 |
否 |
|
8480 |
JournalNode HTTP 端口 |
否 |
|
8481 |
安全 JournalNode Web UI 端口 (TLS/SSL) |
是 |
|
2049 |
NFS Gateway 服务器端口 |
否 |
|
4242 |
NFS Gateway MountD 端口 |
否 |
|
111 |
端口映射(或 Rpcbind)端口 |
否 |
|
8020 |
NameNode 端口 |
否 |
|
8022 |
NameNode 服务 RPC 端口 |
否 |
|
50070 |
NameNode Web UI 端口 |
是 |
|
50470 |
安全 NameNode Web UI 端口 (TLS/SSL) |
是 |
|
50090 |
SecondaryNameNode Web UI 端口 |
是 |
|
50495 |
安全 SecondaryNameNode Web UI 端口 (TLS/SSL) |
是 |
|
Hbase |
20550 |
HBase REST 服务器端口 |
否 |
8085 |
HBase REST Server Web UI 端口 |
否 |
|
9090 |
HBase Thrift 服务器端口 |
否 |
|
9095 |
HBase Thrift 服务器 Web UI 端口 |
否 |
|
60000 |
HBase Master 端口 |
否 |
|
60010 |
HBase Master Web UI 端口 |
是 |
|
60020 |
HBase Region Server 端口 |
是 |
|
60030 |
HBase Region Server Web UI 端口 |
是 |
|
spark |
7337 |
Spark Shuffle Service Port |
否 |
18088 |
History Server WebUI Port |
是 |
|
oozie |
11000 |
Oozie HTTP 端口 |
否 |
11001 |
Oozie 管理端口 |
是 |
|
25 |
Oozie 电子邮件操作 SMTP 端口 |
否 |
|
Solr |
8983 |
Solr HTTP 端口 |
是 |
8984 |
Solr 管理端口 |
是 |
6. CDH开启防火墙配置
整体方案:
集群内部安全采用白名单方式,集群内机器可以自由访问彼此;针对接入外网的机器,使用端口过滤,主机默认拒绝所有外面的访问,针对特点端口进行开放。具体操作如下:
修改防火墙配置文件:/etc/sysconfig/iptables
添加防火墙策略如下:
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT DROP [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0]
#白名单配置 -N whitelist -A whitelist -s 172.16.0.250 -j ACCEPT -A whitelist -s 172.16.0.78 -j ACCEPT -A whitelist -s 172.16.0.5 -j ACCEPT -A whitelist -s 172.16.0.168 -j ACCEPT -A whitelist -s 172.16.0.113 -j ACCEPT -A whitelist -s 172.16.0.133 -j ACCEPT
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT
#开放ssh端口 -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
#开放应用服务端口 #cm -A INPUT -m state –state NEW -m tcp -p tcp –dport 7180 -j ACCEPT
#zookeeper -A INPUT -m state –state NEW -m tcp -p tcp –dport 2181 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 9010 -j ACCEPT
#yarn -A INPUT -m state –state NEW -m tcp -p tcp –dport 19888 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 8088 -j ACCEPT
#Kafka -A INPUT -m state –state NEW -m tcp -p tcp –dport 9092 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 9393 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 9394 -j ACCEPT
#hive -A INPUT -m state –state NEW -m tcp -p tcp –dport 10002 -j ACCEPT
#hdfs -A INPUT -m state –state NEW -m tcp -p tcp –dport 50075 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 8481 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 50070 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 50470 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 50090 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 50495 -j ACCEPT
#hbase -A INPUT -m state –state NEW -m tcp -p tcp –dport 60010 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 60020 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 60030 -j ACCEPT
#spark -A INPUT -m state –state NEW -m tcp -p tcp –dport 18088 -j ACCEPT
#oozie -A INPUT -m state –state NEW -m tcp -p tcp –dport 11001 -j ACCEPT
#Solr -A INPUT -m state –state NEW -m tcp -p tcp –dport 8983 -j ACCEPT -A INPUT -m state –state NEW -m tcp -p tcp –dport 8984 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp -j whitelist -A INPUT -j REJECT –reject-with icmp-host-prohibited -A FORWARD -j REJECT –reject-with icmp-host-prohibited COMMIT |
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/193359.html