1、Cloudera大数据平台环境搭建CDH傻瓜式说明书Cloudera大数据平台环境搭建(CDH5.13.1版)版本v1.0作者郭维忠发布日期2018-03-101. 基础环境1.1. 软件环境本文将介绍Centos7.4 离线安装CDH和Cloudera Manager过程,软件版本如下:NO.软件名称版本1. 操作系统Centos7.4 64 位2. JDKjdk-8u151-linux-x643. Clouder Manager5.13.14. CDH5.13.15. 数据库Mysql 5.76. JDBCmysql-connector-java-5.1.43.jar1.2. 配置规划本次
2、安装共5台服务器,服务器配置及用途如下:NO.机器名称内网IP配置用途1. node168172.16.3.1688C/32Gb/1TB主,CM,MysqlDB2. node169172.16.3.1698C/32Gb/1TB从3. node170172.16.3.1708C/32Gb/1TB从4. node171172.16.3.1718C/32Gb/1TB从5. node172172.16.3.1728C/32Gb/1TB从1.3. 所需要的软件资源1) JDK环境:JDK版本:1.8.0_151 jdk-8u151-linux-x64.rpm下载地址:2) CM包:CM版本:5.13.1
3、 cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz下载地址:http:/archive-3) CDH包CDH版本:5.13.1,CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel; CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1; manifest.json下载地址:http:/archive-http:/archive-http:/archive-4) JDBC连接jar包:jar包版本:5.1.43, mysql-connector-java-5.1.43.jar下载地址:htt
4、p:/central.maven.org/maven2/mysql/mysql-connector-java/5.1.43/mysql-connector-java-5.1.43.jar 1.4. 修改机器名(所有节点)1) 修改机器名称# hostnamectl set-hostname xxx /设置机器名#hostname / 查看本机名这种方式,在Centos7中可以永久性改变主机名称。2) 每个节点机器,都要配置hosts# vi /etc/hosts内容都改为:127.0.0.1 localhost /建议保留此行172.16.3.168 node168172.16.3.169 n
5、ode169172.16.3.170 node170172.16.3.171 node171172.16.3.172 node1721.5. 设置防火墙(所有节点)注:为了简便,可以先关闭防所有节点火墙,安装完成后,再按照下面步骤设置。防火墙常用命令:# firewall-cmd -state(查询防火墙状态) #systemctl stop firewalld.service (关闭防火墙) #systemctl start firewalld.service (开启防火墙)#systemctl disable firewalld.service (禁止firewall开机启动) 设置防火墙
6、策略,在所有节点执行下面脚本(执行前要启动防火墙):/集群机器间可以相互访问firewall-cmd -permanent -add-rich-rule=rule family=ipv4 source address=172.16.3.168 port protocol=tcp port=0-65535 acceptfirewall-cmd -permanent -add-rich-rule=rule family=ipv4 source address=172.16.3.169 port protocol=tcp port=0-65535 acceptfirewall-cmd -perman
7、ent -add-rich-rule=rule family=ipv4 source address=172.16.3.170 port protocol=tcp port=0-65535 acceptfirewall-cmd -permanent -add-rich-rule=rule family=ipv4 source address=172.16.3.171 port protocol=tcp port=0-65535 acceptfirewall-cmd -permanent -add-rich-rule=rule family=ipv4 source address=172.16.
8、3.172 port protocol=tcp port=0-65535 accept /设置可以访问的端口firewall-cmd -permanent -add-port=0-65535/tcpfirewall-cmd -reload注意: 需要在所有的节点上执行,因为涉及到的端口太多了,临时开放所有端口是为了安装起来方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。1.6. 配置免密码登录SSH将子节点设置为从主节点ssh无密码登陆(主节点访问从节点需要无密码互通,否则后面会出现问题)在主节点上执行:#cd /进入到 根目录# ssh-keygen -t rsa 一路回车,生成无
9、密码的密钥对。把公钥拷贝至node169服务器上: # scp /root/.ssh/id_rsa.pub rootnode169: /输入node169机器上root用户密码拷备成功登录到node169服务器上:然后在node169服务器上,把公钥的内容追加到authorized_keys文件末尾(这个文件也在隐藏文件夹.ssh下,如果没有可以新建):# cat id_rsa.pub /.ssh/authorized_keys如果提示下面信息,则需要创建./ssh目录:-bash: /root/.ssh/authorized_keys: No such file or directory/创
10、建/.ssh目录,再追加公钥内容# mkdir /.ssh# cat id_rsa.pub /.ssh/authorized_keys并设置authorized_keys的访问权限:# chmod 600 /.ssh/authorized_keys测试:在node168点上执行ssh node169,正常情况下,不需要密码就能直接登陆进去了。在node168节点出现下面表示成功登录node169节点:以同样的方式将公钥拷贝至其他节点服务器上。 1.7. 关闭SELINUX(所有节点)关闭linux SELINUX安全内核# setenforce 0 (临时生效)修改 /etc/selinux/
11、config 下的 SELINUX=disabled (重启后永久生效)# vi /etc/selinux/config内容增加:SELINUX=disabled 重启后生效:# reboot查看SELINUX 是否关闭:#sestatus (在Centos7中遇到SELINUX无法关闭的问题,重新启动机器恢复正常)1.8. 修改Linux内核参数(所有节点)为避免安装过程中出现的异常问题,首先调整Linux内核参数。1) 设置swappiness,控制换出运行时内存的相对权重,Cloudera 建议将 swappiness 设置为 10:/查看swappiness# cat /proc/sy
12、s/vm/swappiness/永久性修改,执行下面两条命令# sysctl -w vm.swappiness=10# echo vm.swappiness = 10 /etc/sysctl.conf 2) 关闭透明大页面:自CentOS6版本开始引入了Transparent Huge Pages(THP),从CentOS7版本开始,该特性默认就会启用。尽管THP的本意是为提升内存的性能,不过某些数据库厂商还是建议直接关闭THP,否则可能会导致性能出现下降。首先查看透明大页是否启用,always never表示已启用,always never表示已禁用:# cat /sys/kernel/mm
13、/transparent_hugepage/defragalways madvise never# cat /sys/kernel/mm/transparent_hugepage/enabledalways madvise never以上状态就说明是启用的。临时关闭(重启机器会变回默认开启状态):# echo never /sys/kernel/mm/transparent_hugepage/defrag#echo never /sys/kernel/mm/transparent_hugepage/enabled永久关闭:/编辑/etc/rc.d/rc.local# vi /etc/rc.d/
14、rc.local/在文件后添加下面内容:if test -f /sys/kernel/mm/transparent_hugepage/enabled; thenecho never /sys/kernel/mm/transparent_hugepage/enabledfiif test -f /sys/kernel/mm/transparent_hugepage/defrag; thenecho never /sys/kernel/mm/transparent_hugepage/defragfi保存退出,然后赋予rc.local文件执行权限:#chmod +x /etc/rc.d/rc.loc
15、al重启系统,以后再检查THP状态,显示状态被禁用了。3) 修改文件句柄数:修改系统文件句柄数限制:/查看文件句柄数,显示1024,显然太小# ulimit -n 1024/修改限制#vi /etc/security/limits.conf /在文件后加入下面内容:* soft nofile 100000* hard nofile 100000修改后需要重启机器。1.9. 其他安装与配置(所有节点)为避免安装过程中出现异常问题,安装相关依赖包:# yum -y install psmisc MySQL-python at bc bind-libs bind-utils cups-client
16、cups-libs cyrus-sasl-gssapi cyrus-sasl-plain ed fuse fuse-libs httpd httpd-tools keyutils-libs-devel krb5-devel libcom_err-devel libselinux-devel libsepol-devel libverto-devel mailcap noarch mailx mod_ssl openssl-devel pcre-devel postgresql-libs python-psycopg2 redhat-lsb-core redhat-lsb-submod-secu
17、rity x86_64 spax time zlib-devel#yum install -y python-lxml#yum install krb5-devel cyrus-sasl-gssapi cyrus-sasl-deve libxml2-devel libxslt-devel mysql mysql-devel openldap-devel python-devel python-simplejson sqlite-devel# chmod +x /etc/rc.d/rc.local# yum -y install rpcbind# systemctl start rpcbind#
18、 echo systemctl start rpcbind /etc/rc.d/rc.local1.10. 配置NTP服务集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。 具体建设过程如下:所有节点安装相关组件:# yuminstallntpntpdate-yNTP服务端(主节点):1) 查找时间同步服务器http:/www.pool.ntp.org/zone/asia:打开网址,内容如下:2) 编辑 /etc/ntp.conf:# vi /etc/ntp.conf/在文件中输入上面网页内容:server 0.asia.pool.ntp.orgserver 1.asia.poo
19、l.ntp.orgserver 2.asia.pool.ntp.orgserver 3.asia.pool.ntp.org3) 启动ntp服务:# systemctl start ntpd4) 配置开机启动:# systemctlenablentpd.service 注意:如果ntpd 开机启动失效,有可能是因为安装了chronyd并且是开机自启状态,所以导致ntpd开机自启失败。# 查看 chronyd设置状态# systemctl status chronyd显示如下:以面表明,chronyd显示为开机启动状态。将chronyd设为禁用状态:# systemctl disable chro
20、nyd.service此时,NTP的服务开机自启动完成! 5) 检查是否设置成功:# ntpq-p/更新时间#timedatectlNTP客户端(所有从节点):6) 远程客户端时间同步测试# date# ntpdate 172.16.3.168 172.16.3.168是NTP服务端IP,显示如下信息,测试成功:7) 客户端设置计划任务,每30分钟同步时间#crontab -e /加入内容:0-59/30 * * * * /usr/sbin/ntpdate 172.16.3.168 & /sbin/hwclock -w8) 设置定时任务开机启动/设置开机启动# systemctl enable
21、 crond.service/查看状态# systemctl status crond1.11. 安装oracle JDK1.8 (所有节点)下载rpm 安装包jdk-8u151-linux-x64.rpm CentOS系统一般自带OpenJdk,需要卸载掉自带的OpenJdk,使用# rpm -qa | grep java查询java相关的包,使用# rpm -e nodeps +包名强制卸载掉,下面安装oralce JDK# rpm -ivh jdk-8u151-linux-x64.rpm配置JAVA_HOME环境变量:修改/etc/profile文件配置环境变量, 执行命令:# vi /
22、etc/profile 在profile文件最后,输入下面内容,保存并退出。export JAVA_HOME=/usr/java/jdk1.8.0_151export PATH=$PATH:$JAVA_HOME/bin 执行下面命令,让配置生效# source /etc/profile /使修改立即生效# echo $PATH /查看PATH值# echo $JAVA_HOME /查看JAVA_HOME值 在Centos7中修改/etc/profile文件配置环境变量,机器启动后有时不生效,可以修改/etc/ bashrc文件配置环境变量:# vi /etc/bashrc /在文件最后加入:e
23、xport JAVA_HOME=/usr/java/jdk1.8.0_151export PATH=$PATH:$JAVA_HOME/bin /使修改立即生效# source /etc/bashrc /查看JAVA_HOME值# echo $JAVA_HOME 1.12. Mysql安装(主节点)到官网1) 下载安装包#wget 2) 解压安装包# tar -xvf mysql-5.7.18-1.el7.x86_64.rpm-bundle.tar/解压后文件列表:mysql-community-embedded-devel-5.7.18-1.el7.x86_64.rpmmysql-commun
24、ity-devel-5.7.18-1.el7.x86_64.rpmmysql-community-client-5.7.18-1.el7.x86_64.rpmmysql-community-common-5.7.18-1.el7.x86_64.rpmmysql-community-embedded-5.7.18-1.el7.x86_64.rpmmysql-community-embedded-compat-5.7.18-1.el7.x86_64.rpmmysql-community-libs-5.7.18-1.el7.x86_64.rpmmysql-community-server-minim
25、al-5.7.18-1.el7.x86_64.rpmmysql-community-test-5.7.18-1.el7.x86_64.rpmmysql-community-minimal-debuginfo-5.7.18-1.el7.x86_64.rpmmysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm3) 按次序安装按commonlibsclientserver的顺序安装:# rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm# rpm -ivh mysql-community-l
26、ibs-5.7.18-1.el7.x86_64.rpm# rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm# rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm# rpm -ivh mysql-community-devel-5.7.18-1.el7.x86_64.rpm /安装下面包,否则Hue安装报连接错误# rpm -ivh mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm 4) 启动数据库# systemctl
27、start mysqld 查看状态: # systemctl status mysqld 5) 修改MySQL初始密码1、先修改配置文件/etc/f令MySQL跳过登录时的权限检验,在mysqld下加入一行:skip-grant-tables2、重启MySQL#service mysqld restart3、免密码登录MySQL。#mysql4、mysql客户端执行如下命令,修改root密码mysql use mysql;mysql UPDATE user SET authentication_string = password(your-password) WHERE host = loca
28、lhost AND user = root;mysql select host,user, authentication_string, password_expired from user; mysql update user set password_expired=N where password_expired=Y /密码不过期mysql update user set host=% where user=root and host=localhost; /远程可访问mysql flush privileges; /刷新mysql exit;/退出5、修改配置文件/etc/f删除此前新增那一行skip-grant-tables,并重启MySQL(这一步非常重要,不执行可能导致严重的安全问题)#service mysqld restart /重启 Mysql 2. 安装CM2.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1