CentOS 7 配置CDH 5.16教程

版权声明:本文为博主原创文章,未经博主允许不得转载。如需转载,请说明出处。 https://blog.csdn.net/jackandsnow/article/details/88370741

一、预先需要下载的安装包

  1. CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel
    这是Centos下的CDH软件安装包。
  2. CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1
    这里面存的是与上述CDH版本相对应的hash code。
  3. manifest.json
    以上三个包都可在该链接(https://archive.cloudera.com/cdh5/parcels/5.16.1/ )下载,如下图中红色方框标注所示。
    在这里插入图片描述
  4. cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz
    这是cloudera-manager的安装包,可在此处(https://archive.cloudera.com/cm5/cm/5/ )下载。
  5. jdk-8u201-linux-x64.tar.gz
    这是Java 8在linux下的了离线安装包,可在此处(https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html )下载。虽然目前Java 10已经出来了,但还是建议大家都使用Java 8,因为它更稳定,运用也更加广泛。
  6. mysql-connector-java-8.0.15.jar
    这是MySQL的Java驱动程序包 ,可在此处(https://dev.mysql.com/downloads/connector/j/ )下载,如下图所示选择tar.gz格式下载。这里下载最新的驱动包没有任何问题,因为MySQL的驱动包是向下兼容的,也就是说支持旧版本的。
    在这里插入图片描述
    以上的软件安装包下载好之后,请自行放到Centos用户目录的Downloads文件夹中,即放到 ~/Downloads 中。

二、关闭防火墙和SELINUX

在终端执行下面两条命令,首先停止防火墙服务,然后禁用防火墙。

	sudo service firewalld stop
	sudo systemctl disable firewalld.service

其次是禁用SELINUX,执行下面的命令进行修改,修改后的结果如下图所示。

	sudo vim /etc/selinux/config .config/

在这里插入图片描述

三、配置本地SSH免密钥登录

由于配置CDH至少需要三台主机,而笔者使用的是Centos虚拟机,所以只需先配置好一台主机后,直接克隆即可。那么这里就以主节点为例,详细介绍配置的过程。
1.首先是修改本主机的hostname,在终端执行下面的命令,并将hostname改为master。

	sudo vim /etc/hostname

2.其次修改hosts,首先在终端 ip addr 查看IP地址,然后执行后面的命令修改hosts,在hosts中添加主节点和从节点的IP信息,如下图所示。图中的 branch1 和 branch2 就是从节点的hostname。

	ip addr		# 查看IP地址
	sudo vim /etc/hosts

在这里插入图片描述
3.重启主机,重启是为了使修改后的hostname生效,这样才能保证生成的的SSH公钥不会出错。接着在终端依次执行下面的命令,首先是生成密钥(可使用 ls ~/.ssh/ 命令查看生成的密钥文件),然后拷贝公钥id_rsa.pub到authorized_keys,最后一定要修改authorized_keys的权限,否则在测试免密钥登录时依然要输入密码。如果执行 ssh localhost 不需要输入密码,则说明配置成功。

	ssh-keygen -t rsa -P ''		# 生成密钥
	cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys		# 拷贝公钥
	sudo chmod 600 ~/.ssh/authorized_keys		# 修改权限
	ssh localhost		# 测试,或用 ssh master

四、安装JDK

1.首先要卸载系统的OpenJDK,在终端输入 java -version ,如果出现了OpenJDK的信息,说明本机上安装了OpenJDK,那么执行下面的命令进行卸载。第一条命令是卸载 java 相关的所有程序,第二条命令是卸载OpenJDK相关的依赖包。

	sudo yum remove java*
	sudo yum autoremove

2.安装预先下载好的Java 8软件包,第一步创建Java的安装路径 /usr/java,然后解压tar.gz安装包到该目录下,最后更改文件名,便于配置环境变量。

	sudo mkdir /usr/java		# Java必须要安装在这个新建的目录,否则后面cloudera-manager找不到Java
	cd /usr/java
	sudo tar -zxvf ~/Downloads/jdk-8u201-linux-x64.tar.gz .		# 解压到当前目录,注意别漏掉末尾的点
	sudo mv jdk1.8.0_201 jdk1.8		# 改个名,便于配置环境变量

3.配置Java的环境变量,主要是这三个变量:JAVA_HOME,CLASSPATH,PATH。第一步在终端中执行 sudo vim /etc/profile 命令(这是为所有用户配置Java,如果只对当前用户配置则修改 ~/.bashrc 文件),第二步在文件的末尾添加如下的内容

	# java configuration
	export JAVA_HOME=/usr/java/jdk1.8
	export CLASSPATH=.:$JAVA_HOME/lib
	export PATH=$PATH:$JAVA_HOME/bin

4.最后在终端中执行 java -version 命令,如果出来了如下图所示的Java版本信息,那么说明Java安装成功。
在这里插入图片描述
5.把Java连接MySQL所需的依赖包放到 /usr/share/java/ 目录下。如果没有该目录,则依次执行下面的命令,先创建该目录,然后把预先下载好的依赖包移动到该目录下,最后重命名即可(重命名是因为cloudera-manager启动的时候会默认加载不含有版本号的mysql-connector-java.jar依赖包)。

	sudo mkdir /usr/share/java
	cd /usr/share/java
	mv ~/Downloads/mysql-connector-java-8.0.15.jar .
	sudo mv mysql-connector-java-8.0.15.jar mysql-connector-java.jar		# 重命名

至此,如果你也是使用虚拟机来配置CDH,那么便可以进行虚拟机克隆了。将master虚拟机分别克隆为branch1和branch2,然后修改hostname对应为branch1和branch2,重启之后根据第三章介绍中的第3节重新生成密钥即可。最后,记得验证master是否能够通过SSH免密钥登录branch1和branch2,而反过来需要输入密码才能登录。

五、安装MySQL

1.MySQL只需要安装到主节点master上就行了,但是在安装之前需要卸载Centos自带的MariaDB数据库(MariaDB数据库是MySQL的一个分支,完全支持MySQL的所有命令和API,但是在Centos中二者不能共存)。打开终端依次执行下面的命令,首先是卸载mariadb所有相关的软件,然后清除mariadb相关的依赖。

	sudo yum remove mariadb*		# 卸载mariadb
	sudo yum auto remove		# 卸载相关依赖

2.下载MySQL 5.7的源到本地,然后启用本地源,最后进行MySQL服务的安装。具体的命令如下所示,只需依次执行即可。

	wget http://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm		# 下载MySQL 5.7的源
	sudo yum localinstall mysql57-community-release-el7-9.noarch.rpm	# 启用本地源
	yum repolist enabled | grep "mysql.*-community.*"			# 查看MySQL源是否添加成功
	sudo yum install mysql-community-server			# 安装MySQL服务

3.安装好MySQL服务后,需要修改账号密码。依次执行下面的命令,首先要启动MySQL服务,然后获取生成的临时登录密码,接着登入MySQL修改root账号的密码,最后刷新权限并退出。

	sudo service mysqld start		# 启动MySQL
	sudo grep 'temporary password' /var/log/mysqld.log		# 获取临时登录密码
	mysql -u root -p		# 登录MySQL
	mysql> alter user 'root'@'localhost' identified by 'root_password';		# 修改root的密码
	mysql> flush privileges;		# 刷新权限

4.再次登录MySQL,然后创建scm数据库以及scm用户,并赋予scm用户数据库的所有权限(这里的scm是Server of Cloudera Manager的缩写)。

	mysql -u root -p
	mysql> create database scm;
	mysql> grant all on *.* to 'scm'@'localhost' identified by 'scm_password’ with grant option;

六、安装cloudera-manager

1.cloudera-manager是所有节点都需要安装的,这里建议安装在 /opt/cloudera-manager 目录下,因为 /opt 就是它启动后的默认工作目录。在终端依次执行下面的命令,首先是创建该安装目录,其次是解压预先下载好的离线安装包,解压完成后会看到如下图所示的两个子文件夹。

	sudo mkdir /opt/cloudera-manager
	cd /opt/cloudera-manager
	sudo tar -zxvf ~/Downloads/cloudera-manager-centos7-cm5.16.1_x86_64.tar.gz .

在这里插入图片描述
2.第2步只在主节点master上进行配置,创建Cloudera Manager服务本地数据存储目录,在终端依次执行下面的命令即可。

	sudo mkdir /var/lib/cloudera-scm-server
	sudo chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server

3.在所有节点上进行配置,首先是创建用户cloudera-scm,由于Cloudera Manager和Managed Services默认使用cloudera-scm,所以需要创建此用户。其次是修改Agent,即修改/opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini文件,将文件中的server_host修改成主节点的主机名master,修改后的结果如下图所示。

	sudo useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
	sudo vim /opt/cloudera-manager/cm-5.16.1/etc/cloudera-scm-agent/config.ini

在这里插入图片描述
4.在主节点master上初始化cloudera manager,依次执行下面的命令,如果出现了如下图所示的结果,那么说明cloudera manager已经安装成功。

	cd /opt/cloudera-manager/cm-5.16.1/share/cmf/schema/
	sudo ./scm_prepare_database.sh mysql scm scm scm_password	# 第一个scm指的是MySQL用户,第二个scm指的是数据库名

在这里插入图片描述
5. 移动CDH安装包到相应目录,首先在主节点master上,将CDH安装包移至 /opt/cloudera/parcel-repo 目录下,待移动完成后,修改该目录所属的用户组和用户都是之前创建的cloudera-scm用户。

	sudo mkdir /opt/cloudera/parcel-repo
	cd /opt/cloudera/parcel-repo/
	sudo mv ~/Downloads/CDH* .
	sudo mv ~/Downloads/manifest.json .
	# 下面的改名是必须的,否则配置集群的时候会重新下载CDH安装包
	sudo mv CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha
	sudo chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo		# 修改权限

6.在从节点branch1、branch2上,移动CDH安装包到 /opt/cloudera/parcels 目录下,执行的操作与上一步完全相同,在终端执行下面的命令即可。

	sudo mkdir /opt/cloudera/parcels
	cd /opt/cloudera/parcels
	sudo mv ~/Downloads/CDH* .
	sudo mv ~/Downloads/manifest.json .
	# 下面的改名是必须的,否则配置集群的时候会重新下载CDH安装包
	sudo mv CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha1 CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel.sha
	sudo chown cloudera-scm:cloudera-scm /opt/cloudera/parcels		# 修改权限

7.启动cloudera-manger,在主节点master上,必须启动cloudera-scm-server和cloudera-scm-agent,而在从节点branch1、branch2上,只需要启动cloudera-scm-agent即可,执行的命令如下所示。

	cd /opt/cloudera-manager/cm-5.16.1/etc/init.d/
	sudo ./cloudera-scm-server start	# 仅master启动
	sudo ./cloudera-scm-agent start		# master, branch 1-2 均启动

在这里插入图片描述

七、CDH集群的配置

1.cloudera-manager的启动需要花3-6分钟的时间,启动完成后在浏览器中打开 http://localhost:7180/ 网址(如果是Centos服务器,则访问 http://公网IP:7180/ 即可,不过服务器注意要开放7180端口),之后会出现cloudera-manager的登录界面,初始的用户名和密码都是admin,登录成功后如下图所示,选择要安装的版本。
在这里插入图片描述
2.第二步则是选择要作为集群的主机,如下图所示。如果在这里没有出现你的所有主机,第一是确认你的Agent是否都已经配置为了master,第二确认cloudera-scm-agent是否成功启动。
在这里插入图片描述
3.下一步就是集群的安装,如下图所示,如果你那里没有出现预先下载好的CDH版本,则点击更多选项,见后面图中进行Parcel存储库的设置,应用更改后刷新下网页则会出现CDH版本。

在这里插入图片描述
在这里插入图片描述
4.接着就是在所有主机上安装CDH,如下第一张图所示,如果所有配置都正确,那么会显示 已下载:100%(如果出现 正在下载:0%,那往回检查看哪里配置出了问题)。接着让它自己执行完就行,如下第二张图所示。
在这里插入图片描述
在这里插入图片描述
5.待安装完成后,会自动运行主机正确性检查,检查完后的结果如下图所示。如果出现图中所示的警告,按照上面的提示,运行提示中的命令,进行修改即可。
在这里插入图片描述
6.下一步是根据自己的需要,安装所需的集群服务,笔者这里是选择了安装所有服务。

在这里插入图片描述
7.接着根据你上一步选择的服务,会进行相应的角色分配,系统会自动分配一些角色,如果你有其他的需求,自行更改即可。

在这里插入图片描述
8. 然后是进行数据库的配置,如果你也是同笔者一样安装的全部服务,千万不要忘了创建hive、oozie、hue这三个数据库哦!
在这里插入图片描述
9.下一步是HDFS、HBase的配置,如果没有特殊要求,默认即可。
在这里插入图片描述
10.接着是自动运行所有服务,这里需要等待10-15分钟的时间,具体取决于根据你安装的服务项。
在这里插入图片描述
11.最后当上面的所有命令运行完成后,会进入如下的主页面。至此,CDH的配置已经完成。
在这里插入图片描述
关于图中cloudera-manager主页出现的错误,笔者也在抓紧时间修复中,并会发布一篇解决方案,如感兴趣还请持续关注笔者的博客。

[1]: https://www.cloudera.com/documentation/enterprise/5-16-x/topics/installation.html (官方文档)

猜你喜欢

转载自blog.csdn.net/jackandsnow/article/details/88370741
今日推荐