Cloudera大数据平台环境搭建CDH傻瓜式说明书.docx
《Cloudera大数据平台环境搭建CDH傻瓜式说明书.docx》由会员分享,可在线阅读,更多相关《Cloudera大数据平台环境搭建CDH傻瓜式说明书.docx(22页珍藏版)》请在冰豆网上搜索。
Cloudera大数据平台环境搭建CDH傻瓜式说明书
Cloudera大数据平台环境搭建
(CDH5.13.1版)
版本
v1.0
作者
郭维忠
发布日期
2018-03-10
Cloudera大数据平台环境搭建1
1
1.基础环境4
1.1.软件环境4
1.2.配置规划4
1.3.所需要的软件资源4
1.4.修改机器名(所有节点)5
1.5.设置防火墙(所有节点)5
1.6.配置免密码登录SSH6
1.7.关闭SELINUX(所有节点)8
1.8.修改Linux内核参数(所有节点)8
1.9.其他安装与配置(所有节点)10
1.10.配置NTP服务10
1.11.安装oracleJDK1.8(所有节点)12
1.12.Mysql安装(主节点)13
2.安装CM15
2.1.传包,解包15
2.2.创建数据库15
2.3.创建用户16
2.4.制作本地YUM源16
2.5.拷贝jar包17
2.6.修改cloudera-scm-agent配置17
2.7.启动CMServer和Agent18
2.8.访问CM18
3.安装CDH18
3.1.登录后界面18
3.2.选择CM版本19
3.3.指定主机20
3.4.选择CDH版本21
出现“主机运行状态不良”错误22
3.5.检查主机正确性23
3.6.选择安装的服务23
3.7.角色分配24
3.8.数据库设置24
测试连接报错:
25
3.9.群集设置26
3.10.开始安装28
3.11.安装完成29
警告信息:
29
4.常见错误31
4.1.初始化数据库错误:
31
4.2.未能连接到HostMonitor32
基础环境
软件环境
本文将介绍Centos7.4离线安装CDH和ClouderaManager过程,软件版本如下:
NO.
软件名称
版本
操作系统
Centos7.464位
JDK
jdk-8u151-linux-x64
ClouderManager
5.13.1
CDH
5.13.1
数据库
Mysql5.7
JDBC
mysql-connector-java-.jar
配置规划
本次安装共5台服务器,服务器配置及用途如下:
NO.
机器名称
内网IP
配置
用途
node168
8C/32Gb/1TB
主,CM,MysqlDB
node169
9
8C/32Gb/1TB
从
node170
70
8C/32Gb/1TB
从
node171
71
8C/32Gb/1TB
从
node172
72
8C/32Gb/1TB
从
所需要的软件资源
1)JDK环境:
51
jdk-8u151-linux-x64.rpm
下载地址:
2)CM包:
CM版本:
5.13.1
下载地址:
3)CDH包
CDH版本:
5.13.1,
;
.sha1;
manifest.json
下载地址:
4)JDBC连接jar包:
jar包版本:
5.1.43,
mysql-connector-java-5.1.43.jar
下载地址:
修改机器名(所有节点)
1)修改机器名称
#hostnamectlset-hostnamexxx//设置机器名
#hostname//查看本机名
这种方式,在Centos7中可以永久性改变主机名称。
2)每个节点机器,都要配置hosts
#vi/etc/hosts
内容都改为:
1//建议保留此行
设置防火墙(所有节点)
注:
为了简便,可以先关闭防所有节点火墙,安装完成后,再按照下面步骤设置。
防火墙常用命令:
#firewall-cmd--state(查询防火墙状态)
#systemctlstopfirewalld.service(关闭防火墙)
#systemctlstartfirewalld.service(开启防火墙)
#systemctldisablefirewalld.service(禁止firewall开机启动)
设置防火墙策略,在所有节点执行下面脚本(执行前要启动防火墙):
//集群机器间可以相互访问
//设置可以访问的端口
firewall-cmd--permanent--add-port=0-65535/tcp
firewall-cmd--reload
注意:
需要在所有的节点上执行,因为涉及到的端口太多了,临时开放所有端口是为了安装起来方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
配置免密码登录SSH
将子节点设置为从主节点ssh无密码登陆(主节点访问从节点需要无密码互通,否则后面会出现问题)
在主节点上执行:
#cd~//进入到根目录
#ssh-keygen-trsa
一路回车,生成无密码的密钥对。
把公钥拷贝至node169服务器上?
:
#scp/root/.ssh/id_rsa.pubroot@node169:
~//输入node169机器上root用户密码拷备成功
登录到node169服务器上:
然后在node169服务器上,把公钥的内容追加到authorized_keys文件末尾(这个文件也在隐藏文件夹.ssh下,如果没有可以新建):
#catid_rsa.pub>>~/.ssh/authorized_keys
如果提示下面信息,则需要创建./ssh目录:
-bash:
/root/.ssh/authorized_keys:
Nosuchfileordirectory
//创建/.ssh目录,再追加公钥内容
#mkdir~/.ssh
#catid_rsa.pub>>~/.ssh/authorized_keys
并设置authorized_keys的访问权限:
#chmod600~/.ssh/authorized_keys
测试:
在node168点上执行sshnode169,正常情况下,不需要密码就能直接登陆进去了。
在node168节点出现下面表示成功登录node169节点:
以同样的方式将公钥拷贝至其他节点服务器上。
关闭SELINUX(所有节点)
关闭linuxSELINUX安全内核
#setenforce0(临时生效)
修改/etc/selinux/config下的SELINUX=disabled(重启后永久生效)
#vi/etc/selinux/config
内容增加:
SELINUX=disabled
重启后生效:
#reboot
查看SELINUX是否关闭:
#sestatus
(在Centos7中遇到SELINUX无法关闭的问题,重新启动机器恢复正常)
修改Linux内核参数(所有节点)
为避免安装过程中出现的异常问题,首先调整Linux内核参数。
1)设置swappiness,控制换出运行时内存的相对权重,Cloudera建议将swappiness设置为10:
//查看swappiness
#cat/proc/sys/vm/swappiness
//永久性修改,执行下面两条命令
#sysctl-wvm.swappiness=10
#echovm.swappiness=10>>/etc/sysctl.conf
2)关闭透明大页面:
自CentOS6版本开始引入了TransparentHugePages(THP),从CentOS7版本开始,该特性默认就会启用。
尽管THP的本意是为提升内存的性能,不过某些数据库厂商还是建议直接关闭THP,否则可能会导致性能出现下降。
首先查看透明大页是否启用,[always]never表示已启用,always[never]表示已禁用:
#cat/sys/kernel/mm/transparent_hugepage/defrag
[always]madvisenever
#cat/sys/kernel/mm/transparent_hugepage/enabled
[always]madvisenever
以上状态就说明是启用的。
临时关闭(重启机器会变回默认开启状态):
#echonever>/sys/kernel/mm/transparent_hugepage/defrag
#echonever>/sys/kernel/mm/transparent_hugepage/enabled
永久关闭:
//编辑/etc/rc.d/rc.local
#vi/etc/rc.d/rc.local
//在文件后添加下面内容:
iftest-f/sys/kernel/mm/transparent_hugepage/enabled;then
echonever>/sys/kernel/mm/transparent_hugepage/enabled
fi
iftest-f/sys/kernel/mm/transparent_hugepage/defrag;then
echonever>/sys/kernel/mm/transparent_hugepage/defrag
fi
保存退出,然后赋予rc.local文件执行权限:
#chmod+x/etc/rc.d/rc.local
重启系统,以后再检查THP状态,显示状态被禁用了。
3)修改文件句柄数:
修改系统文件句柄数限制:
//查看文件句柄数,显示1024,显然太小
#ulimit-n
1024
//修改限制
#vi/etc/security/limits.conf
//在文件后加入下面内容:
*softnofile100000
*hardnofile100000
修改后需要重启机器。
其他安装与配置(所有节点)
为避免安装过程中出现异常问题,安装相关依赖包:
#yum-yinstallpsmiscMySQL-pythonatbcbind-libsbind-utilscups-clientcups-libscyrus-sasl-gssapicyrus-sasl-plainedfusefuse-libshttpdhttpd-toolskeyutils-libs-develkrb5-devellibcom_err-devellibselinux-devellibsepol-devellibverto-develmailcapnoarchmailxmod_sslopenssl-develpcre-develpostgresql-libspython-psycopg2redhat-lsb-coreredhat-lsb-submod-securityx86_64spaxtimezlib-devel
#yuminstall-ypython-lxml
#yuminstallkrb5-develcyrus-sasl-gssapicyrus-sasl-develibxml2-devellibxslt-develmysqlmysql-developenldap-develpython-develpython-simplejsonsqlite-devel
#chmod+x/etc/rc.d/rc.local
#yum-yinstallrpcbind
#systemctlstartrpcbind
#echo"systemctlstartrpcbind">>/etc/rc.d/rc.local
配置NTP服务
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。
具体建设过程如下:
所有节点安装相关组件:
#yum?
install?
?
ntp?
?
ntpdate?
?
-y
NTP服务端(主节点):
1)查找时间同步服务器:
打开网址,内容如下:
2)编辑/etc/ntp.conf:
#vi/etc/ntp.conf
//在文件中输入上面网页内容:
3)启动ntp服务:
#systemctlstart?
ntpd
4)配置开机启动:
#systemctl?
enable?
?
ntpd.service?
注意:
如果ntpd开机启动失效,有可能是因为安装了chronyd?
并且是开机自启状态,所以导致ntpd开机自启失败。
#查看?
chronyd设置状态
#systemctlstatuschronyd
显示如下:
以面表明,chronyd显示为开机启动状态。
将chronyd设为禁用状态:
#systemctldisablechronyd.service
此时,NTP的服务开机自启动完成!
5)检查是否设置成功:
#ntpq?
?
-p
//更新时间
#timedatectl?
NTP客户端(所有从节点):
6)远程客户端时间同步测试
#date
#ntpdate
是NTP服务端IP,显示如下信息,测试成功:
7)客户端设置计划任务,每30分钟同步时间
#crontab-e
//加入内容:
8)设置定时任务开机启动
//设置开机启动
#systemctlenablecrond.service
//查看状态
#systemctlstatuscrond
安装oracleJDK1.8(所有节点)
下载rpm安装包jdk-8u151-linux-x64.rpm
CentOS系统一般自带OpenJdk,需要卸载掉自带的OpenJdk,使用
#rpm-qa|grepjava
查询java相关的包,使用
#rpm-e–nodeps+包名
强制卸载掉,下面安装oralceJDK
#rpm-ivhjdk-8u151-linux-x64.rpm
配置JAVA_HOME环境变量:
修改/etc/profile文件配置环境变量,执行命令:
#vi/etc/profile
在profile文件最后,输入下面内容,保存并退出。
exportPATH=$PATH:
$JAVA_HOME/bin
执行下面命令,让配置生效
#source/etc/profile//使修改立即生效
#echo$PATH//查看PATH值
#echo$JAVA_HOME//查看JAVA_HOME值
在Centos7中修改/etc/profile文件配置环境变量,机器启动后有时不生效,可以修改/etc/bashrc文件配置环境变量:
#vi/etc/bashrc
//在文件最后加入:
exportPATH=$PATH:
$JAVA_HOME/bin
//使修改立即生效
#source/etc/bashrc
//查看JAVA_HOME值
#echo$JAVA_HOME
Mysql安装(主节点)
到官网选择对应安装包:
1)下载安装包
2)解压安装包
#
//解压后文件列表:
3)按次序安装
按common–>libs–>client–>server的顺序安装:
#
#
#
#
#
//安装下面包,否则Hue安装报连接错误
#rpm-ivh
4)启动数据库
#systemctlstartmysqld
查看状态:
#systemctlstatusmysqld
5)修改MySQL初始密码
1、先修改配置文件/etc/f令MySQL跳过登录时的权限检验,在[mysqld]下加入一行:
skip-grant-tables
2、重启MySQL
#servicemysqldrestart
3、免密码登录MySQL。
#mysql
4、mysql客户端执行如下命令,修改root密码
mysql>usemysql;
mysql>UPDATEuserSETauthentication_string=password('your-password')WHEREhost='localhost'ANDuser='root';
mysql>selecthost,user,authentication_string,password_expiredfromuser;
mysql>updateusersetpassword_expired='N'wherepassword_expired='Y'//密码不过期
mysql>updateusersethost='%'whereuser='root'andhost='localhost';//远程可访问
mysql>flushprivileges;//刷新
mysql>exit;//退出
5、修改配置文件/etc/f删除此前新增那一行skip-grant-tables,并重启MySQL(这一步非常重要,不执行可能导致严重的安全问题)
#servicemysqldrestart//重启Mysql
安装CM
传包,解包
在主节点上下载相关软件包,这里将软件包下载到/data/cdh/目录下。
#cd/data/cdh
下载MysqlJDBC包:
#wget
下载CM:
#wget
下载CDH:
#wget
#wget.sha1
#wget
将CM解压到/opt/目录:
#tar-zxvf-C/opt/
#ls/opt/
clouderacm-5.13.1
创建数据库
在主节点上:
#mysql-uroot-p//加参数-指定本机方式,否则可能不允许执行grant
Enterpassword:
\\输入数据库密码
//在MariaDB[(none)]>命令状态输入下面脚本:
createdatabasehiveDEFAULTCHARSETutf8COLLATEutf8_general_ci;
createdatabaseamonDEFAULTCHARSETutf8COLLATEutf8_general_ci;
createdatabasehueDEFAULTCHARSETutf8COLLATEutf8_general_ci;
createdatabasemonitorDEFAULTCHARSETutf8COLLATEutf8_general_ci;
createdatabaseoozieDEFAULTCHARSETutf8COLLATEutf8_general_ci;
grantallprivilegeson*.*toroot@localhostidentifiedby'root'withgrantoption;
grantallon*.*toroot@"%"Identifiedby"root";
flushprivileges;
exit;
//复制MysqlJDBC包到/opt/cm-5.13.1/share/cmf/lib/目录
#cp/opt/cm-5.13.1/share/cmf/lib/
//初始化CM,执行下面脚本
#
//如果出现下面错误:
//解决办法:
在/etc/hosts文件中,加上
1
主节点/etc/hosts内容:
脚本/scm_prepare_database.sh执行成功界面:
创建用户
在所有节点上执行:
#useradd--system--home=/opt/cm-5.13.1/run/cloudera-scm-server--shell=/bin/false--comment"ClouderaSCMUser"cloudera-scm
制作本地YUM源
在主节点上:
//进入软件包目录
#cd/data/cdh
//拷贝三个文件到/opt/cloudera/parcel-repo/目录
#
//进入/opt/cloudera/parcel-repo/目录
#cd/opt/cloudera/parcel-repo/
//修改文件名
#
此时/opt/cloudera/parcel-repo/目录下文件:
拷贝jar包
在所有节点上:
//如果没有/usr/share/java/目录,则创建
#cp/usr/share/java/mysql-connector-java.jar
在主节点上:
//将mysqlJDBCjar包拷贝到/opt/cm-5.13.1/share/cmf/lib/目录
#cp/opt/cm-5.13.1/share/cmf/lib/
修改cloudera-scm-agent配置
在主节点上,修改/opt/cm-5.13.1/etc/cloudera-scm-agent/config.ini文件:
//将config.iniserver_host=localhost内容改为s
#5.13.1/etc/cloudera-scm-agent/config.ini
在主节点上:
//将cm-5.13.1打包,并复制到其他节点
#cd/opt
#tarczfcm-5.13.1.tar.gzcm-5.13.1/
//复制到其他节点
#scpcm-5.13.1.tar.gznode169:
/opt/
#scpcm-5.13.1.tar.gznode170:
/opt/
#scpcm-5.13.1.tar.gznode171:
/opt/
#scpcm-5.13.1.tar.gznode172:
/opt/
在所有从节点上解压:
//将cm-5.13.1包解压
#cdopt
#tar-xzvfcm-5.13.1.tar.gz
//解压后删除
#rm-rfcm-5.13.1.tar.gz
启动CMServer和Agent
在主节点上,启动cloudera-scm-server:
#/opt/cm-5.13.1/etc/init.d/cloudera-scm-serverstart
启动过程较慢,可通过/opt/cm-5.13.1/log/cloudera-scm-server日志,查看启动过程。
在所有节点上,启动cloudera-scm-agent:
#/opt