前言最近,大数据井喷。很多企业白手起家,需要搭建大数据平台。很多企业选择使用CDH搭建大数据平台。CDH相比手工搭建,具有安装升级方便、软件包自动下载、自动匹配hadoop生态系统包等优点环境准备系统环境CentOS7见上一篇:服务器CentOS7.X系统安装和配置图解教程(虚拟机通用)https://segmentfault.com/a/1190000019815245?share_user=1030000019541827ssh免登录设置见上一篇:ssh配置免密码登录手动版和脚本版https://segmentfault.com/a/1190000019919600?share_user=1030000019541827关闭防火墙命令firewallCentOS7-cmd--state查看防火墙systemctlstopfirewalld.service关闭防火墙systemctldisablefirewalld.service永久关闭防火墙关闭selinuxsetenforce0(暂时生效)修改SELINUX=disabled下/etc/selinux/config(重启后永久生效)手动同步时钟由于离线环境,没有安装ntp,所以使用手动方式同步时钟(推荐使用ntp)。xshell向所有session发送命令,发送到三台机器时间统一。重启和修改系统时间都非常方便。命令:date-s"2019-08-311:14:00"重启命令修改系统时间不失效:date-s"2019-08-311:16:00"&&hwclock--systohcyumsource仓库配置见上一篇:创建yum源仓库等服务器指向yum源仓库(局域网yum源仓库)图文教程https://segmentfault.com/a/1190000019906869?share_user=1030000019541827安装包准备CM6RPM官网:https://archive.cloudera。com/cm6/6.0.1/redhat7/yum/RPMS/x86_64/需要把这个链接下的所有rpm文件都下载下来放到/upload/cloudera-repos/文件夹下,取出jdk文件(oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm)单独放一个目录就行,后面我们单独安装jdk。我把asc文件放在opt目录下:https://archive.cloudera.com/cm6/6.0.1/allkeys.asc同时,我们还需要下载一个asc文件,同样保存到cloudera-repos目录,需要使用jdbc驱动5.1.26或更高版本,mysql-connector-java-5.1.47.tar.gzhttps://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gzCDH6包:https://archive.cloudera.com/cdh6/6.0.1/parcels/需要下载CDH-6.0.1-1.cdh6.0.1.p0.590678-el7。mysql安装包下载https://dev.mysql.com/downloads/mysql/两个文件parcel和manifest.json根据系统版本下载会整理所有包上传到网盘方便大家下载,安装配置JDK环境cd/opt(我把jdk放到opt目录下,进入哪个目录可以看到jdk的rpm文件放在哪里)rpm-ivhoracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpmcd/usr/java用ll查看会发现有jdk1.8.0_141-cloudera文件,然后配置java环境变量vim/etc/profile(新安装的CentOS7系统可能没有vim命令,我用惯了vim所以提前装好了,可以用vi或者安装vim工具)添加exportJAVA_HOME=/usr/java/jdk1.8.0_141-clouderaexportPATH=$PATH:$JAVA_HOME/binsource/etc/profilejava-version在文件末尾。环境配置成功配置ClouderaManageryum库安装httpd和createrepoyum-yinstallhttpdcreaterepo启动httpd服务并设置开机自启动:systemctlstarthttpdsystemctlenablehttpd然后进入ClouderaManagerRPM包所在的cloudera-repos目录:cd/upload/cloudera-repos/生成RPM元数据:createrepo。提示:createrpo点后面有个点然后把cloudera-repos目录移动到httpdhtml目录下:mvcloudera-repos/var/www/html/确保可以通过浏览器查看这些RPM包:然后创建ClouderaManagerServer主机上一个cm6repo文件(三台机器):cd/etc/yum.repos.dvimcloudera-manager.repo添加如下内容:[cloudera-manager]name=ClouderaManager6.0.1baseurl=http://192.168.66.61/cloudera-repos/gpgcheck=0enabled=1保存,退出,然后执行yumcleanall&&yummakecache命令:安装ClouderaManagerServerInstallClouderaManagerServer这一步只需要在CMServer节点上操作在执行以下命令:yuminstallcloudera-manager-daemonscloudera-manager-agentcloudera-manager-server会在opt目录下生成一个cloudera文件夹ClouderaManagerServer安装完成后,进入本地Parcel仓库目录:cd/opt/cloudera/parcel-repo将第一部分下载的CDHParcel文件(CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel和manifest.json)上传到该目录下,然后执行命令生成sha文件:sha1sumCDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel|awk'{print$1}'>CDH-6.0.1-1.cdh6.0.1.p0.590678-el7.parcel。然后sha执行如下命令修改文件属主:chown-Rcloudera-scm:cloudera-scm/opt/cloudera/parcel-repo/*/opt/cloudera/parcel-repo目录最终内容如下:在所有节点配置mysqljdbc驱动,将之前下载的mysql-connector-java-5.1.47.tar.gz包中的mysql-connector-java-5.1.47-bin.jar文件解压出来,将mysql-connector-java-5.1.47-上传bin.jar文件到CMServer节点的/usr/share/java/目录下,重命名为mysql-connector-java.jar(如果是/usr/share/java/目录不存在,需要手动创建):tar-zxvfmysql-connector-java-5.1.47.tar.gzmkdir-p/usr/share/java/cpmysql-connector-java-5.1.47-bin.jar/usr/share/java/mysql-connector-java.jarjarMysql安装在安装新版mysql之前,需要卸载系统自带的mariadb-lib[root@node1java]#rpm-qa|grepmariadbmariadb-libs-5.5.44-2.el7.centos.x86_64[root@node1java]#rpm-e--nodepsmariadb-libs-5.5.44-2.el7.centos.x86_64[root@node1java]#rpm-qa|grepmariadb解压安装包:新建一个目录,将安装包上传到该目录下,然后解压tar-xvfmysql-5.7.26-1.el7.x86_64.rpm-bundle.tar解压后目录如下图开始安装①mysql-community-common-5.7.26-1.el7.x86_64.rpmrpm-ivhmysql-community-common-5.7.26-1.el7。x86_64.rpm②mysql-community-libs-5.7.26-1.el7.x86_64.rpmrpm-ivhmysql-community-libs-5.7.26-1.el7.x86_64.rpm③mysql-community-client-5.7.26-1.el7.x86_64.rpmrpm-ivhmysql-community-client-5.7.26-1.el7.x86_64.rpm④mysql-community-server-5.7.26-1.el7.x86_64.rpm安装前需要勾选libaio,我已经有了这个,如果不需要在线下载[root@node1mysql]#rpm-qa|greplibaiolibaio-0.3.109-13.el7.x86_64[root@node1mysql]#installserverrpm-ivhmysql-community-server-5.7.26-1.el7.x86_64.rpm发现一个错误,报告缺少net-tools依赖项。如果依赖可以在线安装,我们暂时忽略强制安装。命令如下rpm-ivhmysql-community-server-5.7.26-1.el7.x86_64.rpm--force--nodepsinitializethedatabase//初始化,执行会在/var/log/mysqld中生成。日志随机密码[root@node1mysql]#mysqld--initialize[root@node1log]#cat/var/log/mysqld.log更改mysql数据库目录的用户和组chownmysql:mysql/var/lib/mysql-R启动mysql:systemctlstartmysqld.service查看mysql:systemctlstatusmysqld.service登录mysql,更改root用户的密码查看初始密码:grep'临时密码'/var/log/mysqld.log即可发现和上面生成的密码一模一样,这个命令更直接方便登录:mysql-uroot-pcopypasswordinputandchangepasswordto123456789setpassword=password('123456789');退出重新登录查看密码修改是否有问题mysql-uroot-p123456789createCDH需要的数据库,参考下表根据要安装的服务创建对应的数据库和数据库用户。数据库必须使用utf8编码。创建数据库时,记录用户名和对应的密码:服务名数据库名用户名ClouderaManagerServerscmscmActivityMonitoramonamonReportsManagerrmanrmanHuehuehueHiveMetastoreServermetastorehiveSentryServersentrysentryClouderaNavigatorAuditServernavnavClouderaNavigat或者MetadataServernavmsnavms先创建4个数据库和对应的用户,操作步骤如下utf8DEFCOLLATEutf8_general_ci;查询正常,1行受影响(0.00秒)mysql>创建数据库rman默认字符集utf8DEFAULTCOLLATEutf8_general_ci;查询正常,1行受影响(0.00秒)mysql>创建数据库metastore默认字符集utf8DEFAULTCOLLATEutf8_general_ci;查询正常,1行受影响(0.00秒)然后设置数据库授权密码和FLUSHmysql>GRANTALLONscm.*TO'scm'@'%'IDENTIFIEDBY'123456789';查询正常,0行受影响,1条警告(0.00sec)mysql>GRANTALLONamon.*TO'amon'@'%'IDENTIFIEDBY'123456789';查询正常,0行受影响,1条警告(0.01sec)mysql>GRANTALLONrman.*TO'rman'@'%'IDENTIFIEDBY'123456789';查询正常,0行受影响,1条警告(0.00秒)mysql>GRANTALLONmetastore.*TO'hive'@'%'IDENTIFIEDBY'123456789';QueryOK,0rowsaffected,1warning(0.00sec)mysql>FLUSHPRIVILEGES;QueryOK,0rowsaffected(0.00sec)查看授权是否正确mysql>显示“scm”@“%”的赠款;+----------------------------------------------+|scm@%|+-----------------------------------------------+|GRANTUSAGEON*.*TO'scm'@'%'||GRANTALLPRIVILEGESON`scm`.*TO'scm'@'%'|+------------------------------------------集合中的+2行(0.00秒)mysql>显示'amon'@'%'的授权;+----------------------------------------------+|amon@%|+-------------------------------------------------+|GRANTUSAGEON*.*TO'amon'@'%'||GRANTALLPRIVILEGESON`amon`.*TO'amon'@'%'|+--------------------------------------------集合中的+2行(0.00秒)mysql>显示'rman'@'%'的授权;+------------------------------------------------+|rman@%|+---------------------------------------------------+|GRANTUSAGEON*.*TO'rman'@'%'||GRANTALLPRIVILEGESON`rman`.*TO'rman'@'%'|+----------------------------------------------集合中的+2行(0.00秒)mysql>显示'hive'@'%'的授权;+----------------------------------------------------+|hive@%|+----------------------------------------------------+|GRANTUSAGEON*.*TO'hive'@'%'||将`metastore`.*上的所有权限授予'hive'@'%'|+-----------------------------------------------+2rowsinset(0.00sec)设置ClouderaManager数据库ClouderaManagerServer包含配置数据库的脚本当mysql数据库和CMServer在同一主机时,命令为/opt/cloudera/cm/schema/scm_prepare_database.sh当mysqlscmroot不同时,命令为:/opt/cloudera/cm/schema/scm_prepare_database.shmysql-h192.168.31.249--scm-host192.168.31.245scmroot安装CDH节点启动ClouderaManagerServer服务systemctlstartcloudera-scm-server然后等待ClouderaManagerServer启动,可能需要一段时间,你可以使用命令tail-f/var/log/cloudera-scm-server/cloudera-scm-server.log来监控服务启动状态。当您看到INFOWebServerImpl:com.cloudera.server.cmf.WebServerImpl:StartedJettyserver。日志打印出来后,表示服务启动成功,可以通过浏览器访问ClouderaManagerWEB界面。访问ClouderaManagerWEB界面开始配置打开浏览器,访问地址:http://192.168.66.61:7180,默认账号和密码均为admin:登录欢迎界面,点击继续接受许可条款,点击继续我选择的是免费版,然后点击继续集群安装欢迎界面,点击继续输入主机名开始搜索,选择三台主机点击继续选择自定义仓库,我们已经安装好了CDH仓库JDK我们配置好了,这里不勾选,不用安装再输入三台主机的root密码,统一一个密码,点击继续自动安装,自动跳转到自己用的包裹继续安装勾选host的正确性按照提示修改配置没有准确配置更改linuxswappiness检查系统中的swappinesscat/proc/sys/vm/swappiness临时修改swappiness值为10sysctlvm.swappiness=10永久修改vim/etc/sysctl.conf添加vm.swappiness=10Disabletransparentinterfacelargecompression根据提示“echonever>/sys/kernel/mm/transparent_hugepage/defrag”和“echonever>/sys/kernel/mm/transparent_hugepage/enabled”运行"添加命令到rc.localvim/etc/rc.local再次查看集群设置选择自定义服务,勾选你需要的业务配置服务的节点验证数据库,点击继续查看并更改目录,这里我选择默认创建/tmp目录报错解决su-hdfs再次启动,没有问题,继续完成
