重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Cloudera manage(离线)安装手册
10年积累的网站设计制作、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有八公山免费网站建设让你可以放心的选择与我们合作。
(按步骤操作)
硬件设备: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
从官方网站上下载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
修改/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
防火墙会引起hadoop相关组件通讯的各种异常。防火墙:
serviceiptables stop (临时关闭)
chkconfigiptables off (重启后生效)
设置SELINUX:
setenforce0 (临时生效)
修改/etc/selinux/config 下的 SELINUX=disabled (重启后生效)
查看防火墙状态:service iptables status
临时生效:
sudo sysctl vm.swappiness=0
修改配置文件/etc/sysctl.conf重启后仍然生效:
echo"vm.swappiness=0">>/etc/sysctl.conf
所有节点均执行如下命令,遇到提示一路回车即可:
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、分发公钥文件至各个主机;
查看当前时区:date -R
修改时区为上海:ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
执行命令:echo never > /sys/kernel/mm/transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始脚本中,以便在系统重启时予以设置,
vi /etc/rc.local 增加配置
echo never > /sys/kernel/mm/transparent_hugepage/defrag
修改文件:/etc/rc.local ,新增如下配置内容:
ulimit -SHn 65535
客户端修改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
查找以前是否装有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
下载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
启动mysql数据库
servicemysql start
修改初始密码:
修改MySQL数据库root用户的初始密码,先查下初始密码
cat/root/.mysql_secret
使用初始密码登陆mysql数据库,登陆命令为:
mysql -uroot –p
执行如下命令修改数据库root用户密码:
setpassword=password('123456');
刷新权限表:
flushprivileges;
测试使用新密码进行登陆。。。。。。。。。。。。。
1.
2.
下载地址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的本地源文件会在之后介绍。
给所有节点添加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),启动成功就会看到登陆页面。
直接在cm管理页面添加service组件即可;
3.
下载CDH版本到本地http://archive-primary.cloudera.com/cdh6/parcels/5.0.0/,需要下载两样东西:
1、与操作系统版本相对应的parcel包
2、 manifest.json文件。
下载完成后将这两个文件放到master节点的/opt/cloudera/parcel-repo下(目录在安装Cloudera Manager 5时已经生成);打开manifest.json文件,里面是json格式的配置,找到与我们系统版本相对应的hash码,因为我们用的是redhat6.4,所以找到如下位置:
在这个大括号的最下面找到“hash”所对应的值。
将“hash”的值复制下来,然后创建一个文件,文件名与你的parel包名一致,并加上.sha后缀:
此时安装目录下有3个文件,将“hash”的值复制到新建的sha文件中,并保存,然后重启cm server;
打开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目录下,之后再继续安装就不会遇到问题了。
分别进入HDFS、YARN服务管理页面,选择ACTION(操作),点击启用HA,按照步骤操作即可;
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;
组件 | 端口号 | 端口用途 | 是否会被外部访问 |
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管理端口 | 是 |
整体方案:
集群内部安全采用白名单方式,集群内机器可以自由访问彼此;针对接入外网的机器,使用端口过滤,主机默认拒绝所有外面的访问,针对特点端口进行开放。具体操作如下:
修改防火墙配置文件:/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 |