安装准备工作
系统环境:REDHAT 7
CDH版本:CDH6.0.0
安装包地址:CM6安装包( https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/)
1、CDH6安装包:https://archive.cloudera.com/cdh6/6.0.0/parcels/
下载对应系统版本的Parcel包
下载对应系统版本Parcel包的Sha文件
下载manifest.json
保存到服务器/opt/cloudera/parcel-repo
2、下载libtidy组件(这是HUE需要的一个插件,但并没有在CDH的Parcel包里,在HUE安装过程中如果没安装这个插件会报错)
http://rpmfind.net/linux/epel/7/x86_64/Packages/l/libtidy-5.4.0-1.el7.x86_64.rpm
3、下载JAVA JDK 1.8,目前Cloudera 推荐使用的最高版本为8u162
http://download.oracle.com/otn/java/jdk/8u162-b12/0da788060d494f5095bf8624735fa2f1/jdk-8u162-linux-x64.tar.gz
4、下载mysql-connector-java
https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.47.tar.gz
解压,找到里面的mysql-connector-java-5.1.47\mysql-connector-java-5.1.47-bin.jar文件,改名为mysql-connector-java.jar, 存放在服务器的 /usr/share/java 中
系统初始化工作
1. 修改所有节点的HOSTNAME,HOSTNAME必须为FQDN(fully qualified domain name),如:cdhm.test.com, 执行以下命令修改,修改每个节点为不同的名字。
2. 修改所有节点的网络名,/etc/sysconfig/network,注意每个节点的名称对应上一步修改的HOSTNAME,内容如下:
HOSTNAME=cdh.local.com 执行该命令更改Linux系统的主机名:sudo hostnamectl set-hostname cdh.local.com
3. 修改所有节点的hosts 文件, /etc/hosts,注意每个HOST的名称也必须为FQDN格式,如下,(注意:本手册后面提到主服务器即表示cdh.local.com这台服务器,其余为从服务器):
192.168.1.14 cdh.local.com cdh0
192.168.1.10 cdh.local1.com cdh1
192.168.1.11 cdh.local2.com cdh2
192.168.1.12 cdh.local3.com cdh3
4. 验证HOSTNAME
- 执行uname –a 查看输出是否为设定的HOSTNAME,
- 执行 ifconfig 查看eth0的inet addr显示的主机IP地址与HOSTS里配置的一样
- 执行host -v -t A $(hostname) 确认输出为设定的HOSTNAME 及IP 与ifconfig 的inet addr一致
5. 关闭防火墙
- 查看防火墙状态:systemctl status firewalld.service
- 关闭防火墙:systemctl stop firewalld
- 禁用防火墙:systemctl disable firewalld
6. 关闭SElinux
- 修改SElinux配置文件 /etc/selinux/config, (某些系统可能是/etc/sysconfig/selinux)
- 找到SELINUX, 将它改为permissive 或者disabled
- 6.3 执行setenforce 0 对SElinux 进行立即关闭
7. 安装NTP,设置时钟同步,在所有节点上安装NTP,执行命令如下:
yum –y install NTP
- 其中一台服务器作为NTP主服务器,修改NTP主服务器文件 /etc/ntp.conf,修改server 部发如下,表示这台服务器的时钟与自身同步:
server 127.127.1.0
furge 127.127.1.0 stratum 10
- 修改其它服务器的NTP配置文件/etc/ntp.conf,将server 修改为NTP主服务器的IP地址,比如cdhm.test.com 作为NTP主服务器,IP为192.17.1.111,则修改为 server 172.17.1.111
- NTP主服务器重启ntp 服务:service ntpd restart
- 调整从服务器的时钟与NTP主服务器同步, 在其它NTP从服务器上执行:ntpdate cdh.local.com
8. 在所有节点上安装libtidy 插件,在放置libtidy 安装包的位置执行,例如 /var/www/html,执行
rpm -ivh /var/www/html/libtidy-5.4.0-1.el7.x86_64.rpm
9. SSH无密登陆
- 在主机器执行 ssh-keygen -t rsa
- 在master机器执行命令如:将公钥文件传输的其它机器,并生效
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cdh.local1.com
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cdh.local2.com
ssh-copy-id -i ~/.ssh/id_rsa.pub root@cdh.local3.com
- 验证免密登陆: ssh root@cdh.local.com,如果不需要输入密码,则免密登陆配置完成(注意,这时候你已经不在主服务器上,而是远程登陆到cdh1服务器上了,确保跳回主服务器再继续下面的操作)
10. 主服务器及所有节点安装JDK
- 在usr目录下建立java安装目录, mkdir /usr/java
- 进入刚建立的JAVA目录,cd /usr/java
- 将java包FTP传到刚建立的java目录下,或从java 包所在位置拷贝到刚建立的java目录,如 cp /software/ jdk-8u162-linux-x64.tar.gz /usr/java/
- 解压jdk到当前目录tar -zxvf jdk-8u162-linux-x64.tar.gz
- 得到文件夹 jdk1.8.0_162
- 将JAVA拷步到其它服务器 scp –r /usr/java/jdk1.8.0_162 root@cdh.local1.com:/usr/java/
scp –r /usr/java/jdk1.8.0_162 root@cdh.local1.com:/usr/java/
scp –r /usr/java/jdk1.8.0_162 root@cdh.local2.com:/usr/java/
scp –r /usr/java/jdk1.8.0_162 root@cdh.local3.com:/usr/java/
11. SWAP 设置,CDH 推荐设置为10, vim /etc/sysctl.conf, 加入如下代码
vm.swappiness = 10
12. 设置本地HTTP SERVER 安装CM
- 在主服务器上安装HTTP SERVER
yum –y install httpd
- 创建HTTP server 目录存放cm6 的文件, 如http://cdhm.test.com/cm6, 则创建如下目录
mkdir /var/cdh/cm6
- 将https://archive.cloudera.com/cm6/6.0.0/redhat7/yum/ 下载下来的所有文件及目录按原有的目录结构存放在刚建立的cm6 目录下
- 使用浏览器访问 http://cdh.local.com/cm6 ,如果能看到刚下载的文件,表示HTTP已经配置好了,注意:如果浏览器不是在同一集群中,可能无法解释cdh.local.com. 这时需使用IP进行访问,比如 http://192.168.1.10/cm6
- 设置 REPO,创建cloudera-repo.repo, vim /etc/yum.repos.d/cloudera-repo.repo, 内容如下:
[cloudera-repo]
name=cloudera-repo
baseurl=http://cdh.local.com/cm6
enabled=1
gpgcheck=0
安装 cloudrea-manager
- 安装CM6
- 如果发现找不到安装包,有可能是HTTP 或者YUM REPO没设置好,请检查上一章节的步骤 10的全部内容
- 设置 AUTO-TLS 自动认证,执行以下命令
sudo yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
sudo JAVA_HOME=/usr/java/jdk1.8.0_162 /opt/cloudera/cm-agent/bin/certmanager setup --configure-services
注意:1、如果你安装的java 目录不是/usr/java/jdk1.8.0_162, 你需要把它改成你安装JAVA的路径;2、certmanager 是随cloudera-manager-agent安装的,如果进行AUTO-TLS时出错,请确认cloudera-manager-agent 安装成功
安装Mysql
- 解压MySQL
- 主服务器上安装MySQL
- 删除InnoDB 文件
Sudo tar -zxvf MySQL-5.5.61-1.el7.x86_64.rpm-bundle.tar
Sudo rpm -ivh MySQL-server-5.5.60-1.el7.x86_64
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
- 设置MySQL开机启动
systemctl enable mysqld
- 启动MySQL
systemctl start mysqld
- 初始化MySQL
sudo /usr/bin/mysql_secure_installation
注意:MySQL 的初始密码为空,如果需要输入旧密码时直接回车,如果需要设置新的密码,则在提示输入新密码时输入新密码,如果保留空密码,则直接回车,初始化步骤如下:
[...]
Enter current password for root (enter for none):
OK, successfully used password, moving on...
[...]
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
[...]
Disallow root login remotely? [Y/n] N
[...]
Remove test database and access to it [Y/n] Y
[...]
Reload privilege tables now? [Y/n] Y
All done!
- 登录MySQL,创建数据库和用户
mysql -u root -p
- 创建数据库,在MySQL 中执行以下命令创建数据库并授权
CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '123456';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '123456';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '123456';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '123456';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '123456';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '123456';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
- 初始化Cloudera Manager 数据库, 执行以下命令
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm
注意如果MySQL 安装在别的服务器上,则使用以下命令指定远程MySQL服务器地址, 下面的db.lcoal.com是远程MySQL 服务器的地址,cdh.lcoal.com 为安装CM的服务器地址
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h db.local.com --scm-host cdh.lcoal.com scm scm
安装CDH
- 启动Cloudera manager
- 等待cloudera manager启动完成,执行以下命令可以查看启动的状态
systemctl start cloudera-scm-server
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
当看到状态显示下面的语句,说明启动完成了!
INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server.
- 登录Cloudera Manager, 使用浏览器访问 http://cdh.local.com:7180 , 这时候你应该能看到登录界面了!!!
- 用户名admin, 密码 admin
- 首先是欢迎页!
- 第二步是确认是否已经设置了AUTO-TLS,如果已经在前面设置了,会看到如下的提示,然后进入下一步
- 输入节点的列表,如果是连续的IP地址,可以像截图那样写,172.17.1.[142-145],表示总共是4个节点,IP分别为142,143,144,145,点Search进行扫描,扫描成功后,进入下一步
- 这里是指定安装包的位置,Cloudera Manager Agent 选择Custom Repository, 使用之前安装CM6的地址,如 http://cdh.local.com
- 安装JDK, 前面的步骤已经安装JDK了,所以这里直接点下一步就可以了
- 输入各节点的root 密码,注意: 所有节点的root 密码需一致,然后点击下一步就开始安装了!
- 耐心等待安装完成
- 安装完成后等待健康检查,检查没问题进入下一步
- 指定节点模版,因为是新装的,所以没有模版,下一步就可以了
- 执行设置脚本,这一步是对节点的某些role 进行配置,例如HBase, HDFS, Hive, MapReduce, and YARN,因为是新装并没有分配角色,所以配置无法执行,直接结束就好了
- 添加服务及分配角色
- 点击上方菜单Clusters-> Add Services
- 根据不同的场景选择,默认为Essentials
- 这是点击Esstials 方案后,系统自动为每个节点给了的角色分配方案,需根据实时项目情况调整,这里以默认为例,进入下一步
- 这一步填入MYSQL所在的服务器,及对应数据库的名字,用户名及密码,然后点击下方的“TEST CONNECTION” 进行测试
- 对节点的参数进行设置,本手册以默认配置作为示例
- 这一步会对各节点进行设置,请耐心等待配置结束然后进入下一步
- 到这一步说明节点配置引导已经全部完成了,点击“Finish”关闭
这时会返回主界面,并能查看各服务的状态,至此,CDH6 的安装完成!!!
注意:过程中可能存在误操作等,请报错后根据详细信息去定位解决问题即可,总体安装情况如上文。