大数据平台环境搭建傻瓜式说明书.docx
《大数据平台环境搭建傻瓜式说明书.docx》由会员分享,可在线阅读,更多相关《大数据平台环境搭建傻瓜式说明书.docx(33页珍藏版)》请在冰豆网上搜索。
大数据平台环境搭建傻瓜式说明书
Cloudera大数据平台环境搭建
(CDH5.13.1版)
版本
v1.0
作者
郭维忠
发布日期
2018-03-10
1.基础环境
1.1.软件环境
本文将介绍Centos7.4离线安装CDH和ClouderaManager过程,软件版本如下:
NO.
软件名称
版本
1.
操作系统
Centos7.464位
2.
JDK
jdk-8u151-linux-x64
3.
ClouderManager
5.13.1
4.
CDH
5.13.1
5.
数据库
Mysql5.7
6.
JDBC
mysql-connector-java-5.1.43.jar
1.2.配置规划
本次安装共5台服务器,服务器配置及用途如下:
NO.
机器名称
内网IP
配置
用途
1.
node168
172.16.3.168
8C/32Gb/1TB
主,CM,MysqlDB
2.
node169
172.16.3.169
8C/32Gb/1TB
从
3.
node170
172.16.3.170
8C/32Gb/1TB
从
4.
node171
172.16.3.171
8C/32Gb/1TB
从
5.
node172
172.16.3.172
8C/32Gb/1TB
从
1.3.所需要的软件资源
1)JDK环境:
JDK版本:
1.8.0_151
jdk-8u151-linux-x64.rpm
下载地址:
2)CM包:
CM版本:
5.13.1
cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
下载地址:
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
下载地址:
4)JDBC连接jar包:
jar包版本:
5.1.43,
mysql-connector-java-5.1.43.jar
下载地址:
1.4.修改机器名(所有节点)
1)修改机器名称
#hostnamectlset-hostnamexxx//设置机器名
#hostname//查看本机名
这种方式,在Centos7中可以永久性改变主机名称。
2)每个节点机器,都要配置hosts
#vi/etc/hosts
内容都改为:
127.0.0.1localhost//建议保留此行
172.16.3.168node168
172.16.3.169node169
172.16.3.170node170
172.16.3.171node171
172.16.3.172node172
1.5.设置防火墙(所有节点)
注:
为了简便,可以先关闭防所有节点火墙,安装完成后,再按照下面步骤设置。
防火墙常用命令:
#firewall-cmd--state(查询防火墙状态)
#systemctlstopfirewalld.service(关闭防火墙)
#systemctlstartfirewalld.service(开启防火墙)
#systemctldisablefirewalld.service(禁止firewall开机启动)
设置防火墙策略,在所有节点执行下面脚本(执行前要启动防火墙):
//集群机器间可以相互访问
firewall-cmd--permanent--add-rich-rule="rulefamily='ipv4'sourceaddress='172.16.3.168'portprotocol='tcp'port='0-65535'accept"
firewall-cmd--permanent--add-rich-rule="rulefamily='ipv4'sourceaddress='172.16.3.169'portprotocol='tcp'port='0-65535'accept"
firewall-cmd--permanent--add-rich-rule="rulefamily='ipv4'sourceaddress='172.16.3.170'portprotocol='tcp'port='0-65535'accept"
firewall-cmd--permanent--add-rich-rule="rulefamily='ipv4'sourceaddress='172.16.3.171'portprotocol='tcp'port='0-65535'accept"
firewall-cmd--permanent--add-rich-rule="rulefamily='ipv4'sourceaddress='172.16.3.172'portprotocol='tcp'port='0-65535'accept"
//设置可以访问的端口
firewall-cmd--permanent--add-port=0-65535/tcp
firewall-cmd--reload
注意:
需要在所有的节点上执行,因为涉及到的端口太多了,临时开放所有端口是为了安装起来方便,安装完毕后可以根据需要设置防火墙策略,保证集群安全。
1.6.配置免密码登录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:
Nosuchdirectory
//创建/.ssh目录,再追加公钥内容
#mkdir~/.ssh
#catid_rsa.pub>>~/.ssh/authorized_keys
并设置authorized_keys的访问权限:
#chmod600~/.ssh/authorized_keys
测试:
在node168点上执行sshnode169,正常情况下,不需要密码就能直接登陆进去了。
在node168节点出现下面表示成功登录node169节点:
以同样的方式将公钥拷贝至其他节点服务器上。
1.7.关闭SELINUX(所有节点)
关闭linuxSELINUX安全内核
#setenforce0(临时生效)
修改/etc/selinux/config下的SELINUX=disabled(重启后永久生效)
#vi/etc/selinux/config
内容增加:
SELINUX=disabled
重启后生效:
#reboot
查看SELINUX是否关闭:
#sestatus
(在Centos7中遇到SELINUX无法关闭的问题,重新启动机器恢复正常)
1.8.修改Linux内核参数(所有节点)
为避免安装过程中出现的异常问题,首先调整Linux内核参数。
1)设置s,控制换出运行时内存的相对权重,Cloudera建议将s设置为10:
//查看s
#cat/proc/sys/vm/s
//永久性修改,执行下面两条命令
#sysctl-wvm.s
#echovm.s=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
//在文件后加入下面内容:
*softno
*hardno
修改后需要重启机器。
1.9.其他安装与配置(所有节点)
为避免安装过程中出现异常问题,安装相关依赖包:
#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
1.10.配置NTP服务
集群中所有主机必须保持时间同步,如果时间相差较大会引起各种问题。
具体建设过程如下:
所有节点安装相关组件:
#yum install ntp ntpdate -y
NTP服务端(主节点):
1)查找时间同步服务器:
打开网址,内容如下:
2)编辑/etc/ntp.conf:
#vi/etc/ntp.conf
//在文件中输入上面网页内容:
server0.asia.pool.ntp.org
server1.asia.pool.ntp.org
server2.asia.pool.ntp.org
server3.asia.pool.ntp.org
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
#ntpdate172.16.3.168
172.16.3.168是NTP服务端IP,显示如下信息,测试成功:
7)客户端设置计划任务,每30分钟同步时间
#crontab-e
//加入内容:
0-59/30****/usr/sbin/ntpdate172.16.3.168&&/sbin/hwclock-w
8)设置定时任务开机启动
//设置开机启动
#systemctlenablecrond.service
//查看状态
#systemctlstatuscrond
1.11.安装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文件最后,输入下面内容,保存并退出。
exportJAVA_HOME=/usr/java/jdk1.8.0_151
exportPATH=$PATH:
$JAVA_HOME/bin
执行下面命令,让配置生效
#source/etc/profile//使修改立即生效
#echo$PATH//查看PATH值
#echo$JAVA_HOME//查看JAVA_HOME值
在Centos7中修改/etc/profile文件配置环境变量,机器启动后有时不生效,可以修改/etc/bashrc文件配置环境变量:
#vi/etc/bashrc
//在文件最后加入:
exportJAVA_HOME=/usr/java/jdk1.8.0_151
exportPATH=$PATH:
$JAVA_HOME/bin
//使修改立即生效
#source/etc/bashrc
//查看JAVA_HOME值
#echo$JAVA_HOME
1.12.Mysql安装(主节点)
到官网选择对应安装包:
1)下载安装包
#wget
2)解压安装包
#tar-xvfmysql-5.7.18-1.el7.x86_64.rpm-bundle.tar
//解压后文件列表:
mysql-community-embedded-devel-5.7.18-1.el7.x86_64.rpm
mysql-community-devel-5.7.18-1.el7.x86_64.rpm
mysql-community-client-5.7.18-1.el7.x86_64.rpm
mysql-community-common-5.7.18-1.el7.x86_64.rpm
mysql-community-embedded-5.7.18-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.18-1.el7.x86_64.rpm
mysql-community-libs-5.7.18-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.18-1.el7.x86_64.rpm
mysql-community-test-5.7.18-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.18-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm
3)按次序安装
按common–>libs–>client–>server的顺序安装:
#rpm-ivhmysql-community-common-5.7.18-1.el7.x86_64.rpm
#rpm-ivhmysql-community-libs-5.7.18-1.el7.x86_64.rpm
#rpm-ivhmysql-community-client-5.7.18-1.el7.x86_64.rpm
#rpm-ivhmysql-community-server-5.7.18-1.el7.x86_64.rpm
#rpm-ivhmysql-community-devel-5.7.18-1.el7.x86_64.rpm
//安装下面包,否则Hue安装报连接错误
#rpm-ivhmysql-community-libs-compat-5.7.18-1.el7.x86_64.rpm
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
2.安装CM
2.1.传包,解包
在主节点上下载相关软件包,这里将软件包下载到/data/cdh/目录下。
#cd/data/cdh
下载MysqlJDBC包:
#wget
下载CM:
#wget5/cloudera-manager-centos7-cm5.13.1_x86_64.tar.gz
下载CDH:
#wget
#wget.sha1
#wget
将CM解压到/opt/目录:
#tar-zxvfcloudera-manager-centos7-cm5.13.1_x86_64.tar.gz-C/opt/
#ls/opt/
clouderacm-5.13.1
2.2.创建数据库
在主节点上:
#mysql-h127.0.0.1-uroot-p//加参数-h127.0.0.1指定本机方式,否则可能不允许执行grant
Enterpassword:
//在MariaDB[(none)]>命令状态输入下面脚本:
createdatabasehiveDEFAULTCHARSETutf8COLLATEutf8_general_ci;
createdatabaseamonDEFAULTCHARSETutf8COLLATEutf8_general_ci;
createdatabasehueDEFAULTCHARSETutf8COLLATEutf8_general_ci;
createdatabasemonitorDEFAULTCHARSETutf8COLLATEutf8_general_ci;
createdatabaseoozieDEFAULTCHARSETutf8COLLATEutf8_general_ci