CDH5部署三部曲之一:准备工作时间:2022-11-28 10:09:13### 欢迎访问我的GitHub > 这里分类和汇总了欣宸的全部原创(含配套源码):[https://github.com/zq2599/blog_demos](https://github.com/zq2599/blog_demos) ### 系列介绍 - 《CDH5部署三部曲》共三篇文章,对CDH5.7.2版本的准备、部署、启动、设置等环节进行实战,内容如下: - 第一篇:《准备工作》,即CDH集群中每一台机器都要做的操作; - 第二篇:《部署和设置》,本章完成CDH集群部署和启动; - 第三篇:《问题总结》,列出实战中遇到的问题及解决办法; ### 系列文章链接 1. [《CDH5部署三部曲之一:准备工作》](https://blog.csdn.net/boling_cavalry/article/details/105340968) 2. [《CDH5部署三部曲之二:部署和设置》](https://blog.csdn.net/boling_cavalry/article/details/105341713) 3. [《CDH5部署三部曲之三:问题总结》](https://blog.csdn.net/boling_cavalry/article/details//105342156) ### 版本信息 1. CentOS:7.6.1810 2. Python: 2.7.5(操作系统自带) 3. CM包:cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz ### 服务器规划 - 本次搭建的CDH集群一共用到三台机器,一台master,另外两台是agent: | 主机名 | IP地址 | 内存 | 身份 | |--|--|--|--| | master | 192.168.133.152 | 双核4G内存 | 管理节点 | | worker1 | 192.168.133.153 | 双核8G内存 | 任务节点 | | worker2 | 192.168.133.154 | 双核16G内存 | 任务节点 | ### 文件下载 - cm下载地址: **http://archive.cloudera.com/cm5/cm/5/** ,找到自己需要的cm包下载,本次实战用的是 **cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz** ,如下图红框: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200406114706399.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70) - parcel下载地址: **http://archive.cloudera.com/cdh5/parcels** ,本次实战用到的是 **CDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel** ,请下载下图红框中的三个文件,注意一共要下载三个文件: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200406114723729.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70) ### 所有机器都要做的相同操作 - 以下操作需要master、worker1、worker2各自做一遍: - 本次实战在所有机器上的操作,都使用root账号; - 确保所有机器都可以用SSH工具远程登录; - 安装时间同步工具: ```shell yum install -y ntpdate ``` - 时间同步: ```shell ntpdate cn.ntp.org.cn ``` - 关闭和禁用防火墙: ```shell systemctl stop firewalld && systemctl disable firewalld ``` - 关闭SELINUX:打开文件 **/etc/selinux/config** ,找到 **SELINUX=xxx** 那一行,改为 **SELINUX=disabled** ,如下图红框: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200406115227211.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70) - 关闭swap:打开文件 **/etc/fstab** ,找到带有 **swap** 的那一行,注释掉,如下图红框: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200406115306139.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70) - 重启电脑; - 新建文件夹 **/usr/lib/jvm** - 安装JDK,我这里下载的是 **jdk-8u191-linux-x64.tar.gz** ,解压后是个名为 **jdk1.8.0_191** 的文件夹,将此文件夹放在 **/usr/lib/jvm** 目录下; - 打开文件 **/etc/profile** ,在尾部增加以下内容: ```shell export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH ``` - 使配置生效: ```shell source /etc/profile ``` - CDH默认的JDK目录是 **/usr/java/default** ,因此要创建软链接,执行以下命令: ```shell mkdir /usr/java && ln -s /usr/lib/jvm/jdk1.8.0_191 /usr/java/default ``` - 检查Python是否可用,如果没有还请自行安装,本次用到的是2.6或者2.7版本: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200406115535673.png) - 安装多个依赖包: ```shell yum -y install chkconfig bind-utils psmisc libxslt zlib sqlite cyrus-sasl-plain cyrus-sasl-gssapi fuse fuse-libs redhat-lsb ``` - 创建目录: ```shell mkdir /opt/cloudera-manager ``` - 把前面准备好的文件 **cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz** 上传到 **master** ,执行以下命令将该文件解压到 **/opt/cloudera-manager** 目录: ```shell tar -zxvf cloudera-manager-centos7-cm5.7.2_x86_64.tar.gz -C /opt/cloudera-manager/ ``` - 创建账号 **cloudera-scm** : ```shell useradd --system --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm ``` - 编辑文件 **config.ini** : ```shell vi /opt/cloudera-manager/cm-5.7.2/etc/cloudera-scm-agent/config.ini ``` - 修改 **server_host** 的值,改为 **master** ,如下图红框所示: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200406115903388.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2JvbGluZ19jYXZhbHJ5,size_16,color_FFFFFF,t_70) - 新建目录 **/usr/share/java/** ,将刚才下载的 **mysql-connector-java-5.1.34.jar** 放入该目录,并改名为 **mysql-connector-java.jar** ### 三台电脑相互免密码登录设置 - 三台电脑的/etc/hosts文件,都增加以下相同内容: ```shell 192.168.133.154 master 192.168.133.155 worker1 192.168.133.156 worker2 ``` - 三台电脑都执行命令: **ssh-keygen** 然后四个回车完成ssh公私钥创建; - 在master执行 **ssh-copy-id root@worker1** 、 **ssh-copy-id root@worker2** - 在worker1执行 **ssh-copy-id root@master** 、 **ssh-copy-id root@worker2** - 在worker2执行 **ssh-copy-id root@master** 、 **ssh-copy-id root@worker1** - 至此,准备工作全部完成,请确保所有机器都做了上述操作,下一篇会用这些机器来完成部署。 ### 欢迎关注ITpub:程序员欣宸 > [学习路上,你不孤单,欣宸原创一路相伴...](http://blog.itpub.net/70017844/)