CDH5.10.1集群安装文档
前置条件
由于部署集群需要在服务器上面安装较多东西,包含很多工具和mysql、jdk等组件,那么需要在服务器确认的时候需要跟客户确认在服务器上面是否已经安装有此类组件并且已经在使用。如果已经安装并使用,那么需要等确认清楚才可以进行后续的步骤。
CDH集群主机安装软硬件需求,如下:
操作系统 |
Centos7.3 |
集群机器数量 |
10台 |
集群网络 |
集群主机应在在同一网关内,能互相ping的通 |
端口 |
22 |
由于CDH集群安装不是直接在集群主机上安装,而是通过远程安装。所以安装时需要一台能够连接到集群主机装有windows操作系统的主机。安装主机情况:
操作系统 |
Windows 10 |
网络要求 |
能ping的通集群主机 |
远程连接工具 |
Xshell |
ftp工具 |
xftp |
部署清单
所有的部署组件都具有操作系统版本适用性,仅适用于某一些特定版本的特定操作系统上,所以需要根据具体实施现场的情况来获取相应的软件安装版本,官网上有详细的版本说明。
软件名称 |
包名称 |
版本号 |
依赖关系 |
CM Server |
cloudera-manager-el7-cm5.10.1_x86_64.tar.gz |
5.10.1 |
|
CM Agent |
cloudera-manager-el7-cm5.10.1_x86_64.tar.gz |
5.10.1 |
|
CM parcel |
CDH-5.10.1-1.cdh5.10.1.p0.10-el6.parcel |
5.10.1 |
|
jdk |
jdk-7u67-linux-x64.rpm |
1.7.67 |
|
Mysql驱动 |
mysql-connector-java-5.7.17-bin.jar |
5.7.17 |
准备工作
准备部署文档,确认集群主机的IP、主机名称,以及网络是否符合前置条件中列出的要求。
检查网络:使用ping命令查看网络是否在同一个网络
Ping命令格式:ping ip地址
确认安装主机和集群主机在同一个网关内。然后再在安装集群的主机上安装xshell软件,以及xftp(xftp主要是用来将我们的安装包上传到cloudera manager上)。
集群环境
本次集群使用3台主机,操作系统都采用centos7.3版本,虚拟主机信息列表如下:
序号 |
主机名 |
IP |
主要功能 |
1 |
h01 |
- |
CM-server/CM-agent |
2 |
h02 |
- |
CM-agent |
3 |
h03 |
- |
CM-agent |
4 |
h04 |
- |
CM-agent |
5 |
h05 |
- |
CM-agent |
6 |
h06 |
- |
CM-agent |
7 |
h07 |
- |
CM-agent |
8 |
h08 |
- |
CM-agent |
9 |
h09 |
- |
CM-agent |
10 |
h10 |
- |
CM-agent |
创建账户(所有主机)
首先获得linux操作系统的root的密码,使用xshell4终端软件连接到linux操作系统上。
然后,给app_use用户添加sudo权限(所有主机):
cd /etc
首先需要增加写权限:chmodu+w sudoers
[root@h01 ~]#vim /etc/sudoers (只读文件需赋权限)
按箭头向下找到"rootALL=(ALL) ALL"这一行,光标放在下一行的空行开头,按“I”执行插入:" app_user ALL=(ALL) NOPASSWD: ALL " (无密码sudo)
按ESC,再按“:”,输入“wq”,保存文档退出。
将权限去掉:chmod u-wsudoers
操作使用账户
接下来操作均使用app_user账号进行操作。
[root@h01 ~]# su -app_user
结果验证(所有主机)
我们用sudo来检查一下防火墙状态
[app_user@h01 ~]# sudo service iptables status
如果sudo没有添加成功,会报如下错误
app_user is not in the sudoers file. This incident will be reported.
没有上面这个信息则说明sudo用户添加成功。
配置/etc/hosts(所有主机)
/etc/hosts文件存储着集群中可访问服务器的主机名称和IP的对应映射表。整个集群的主机的/etc/hosts的配置是一样的。
修改/etc/hosts
这里每台主机做同样操作
[app_user@h01 ~]# sudo vim /etc/hosts
此集群的/etc/hosts最终文本内容如下:
修改/etc/sysconfig/network中的hostname
以h01为例(其他主机同样操作)
关闭SELINUX
执行命令:sudo vi/etc/selinux/config
找到“SELINUX”行,修改“=”后内容为“disabled”,保存并退出。
注意:关闭Selinux需要重新启动生效。
关闭防火墙
使用以下命令关闭防火墙:
sudo serviceiptables stop
sudo chkconfigiptables off
服务器重启
为了使服务器配置生效,在此步骤需要重启服务器:
sudo init 6
免密钥(所有主机)
生成公钥id_dsa.pub(所有节点都做)
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
将自己的公钥追加到私钥中(所有节点都做)
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cd ~/.ssh/到这个文件夹下,它里边是产生的公钥和私钥
cd ~/.ssh
将自己生成的公钥发送给需要做免密钥的节点,比如发送到tmp下(h01发送到h02~h10)
scp id_dsa.pub h02:/tmp
h02~h-cs10中,将h01发送过来的公钥追加到私钥中
cat /tmp/id_dsa.pub >>~/.ssh/authorized_keys
需修改权限(三个节点都做)
chmod 600 /home/app_user/.ssh/authorized_keys
chmod 700 /home/app_user/.ssh
配置jdk环境(所有主机)
卸载自带JDK:
查询是否已经安装了JDK,若安装则卸载
sudo rpm -qa | grep java
显示如下,说明自带安装了JDK
java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64
java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64
如果存在,卸载它们
安装JDK并配置路径
安装JDK[hdfs@Hadoop-NN1 ~]#
sudo rpm -ivh jdk*
成功安装结果如下:
2. 配置JAVA_HOME
执行以下命令:
sudo vi /etc/profile
在文件最后追加:
export JAVA_HOME=/usr/java/jdkxxx
export PATH=$JAVA_HOME/bin:$PATH
保存并退出:按ESC,再按“:”,输入“wq”,保存文档退出。
使之免启动生效:
source /etc/profile
3. 检查是否安装成功
[app_user@h01 ~]# java -version
出现以下类似java信息说明安装成功
MySQL元数据节点安装
安装Mysql server
1.安装(若无)
sudo yum install mysql-server
2.启动mysql:
service mysqld start
3.设置开机启动并查看:
chkconfig mysqld on
chkconfig –list mysqld
4.修改权限(需使用root用户操作)
进入:
[app_user@h01 ~]# mysql
mysql> show databases;
mysql> use mysql;
mysql> show tables;
mysql> select host,user from user;
修改权限:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'app_user'@'%' IDENTIFIED BY'123' WITH GRANT OPTION;
刷新:
mysql> flush privileges
查看:
mysql> select host,user from user;
把多余的其他删掉:
mysql> delete from user where host != ‘%’;
刷新:
mysql> flush privileges;
退出再登陆测试是否生效:
[app_user@h01 ~]# mysql –u app_user –p (密码123)
进入mysql说明成功,输入“exit”退出。
下载第三方依赖包(所有节点)
所需的依赖:
chkconfig、python、bind-utils、psmisc、libxslt、zlib、sqlite、cyrus-sasl-plain、 • cyrus-sasl-gssapi、fuse、fuse-libs、redhat-lsb
在所有主机上执行以下脚本:
sudo yum install chkconfig python bind-utilspsmisclibxsltzlibsqlitecyrus-sasl-plaincyrus-sasl-gssapi fuse fuse-libs redhat-lsb -y
安装Cloudera Manager
给集群安装之前再次确认时间是否同步(用date查看),以及防火墙;NTP和防火墙是集群安装最常见的两个问题;如果集群安装或启动报错请优先检查这两个。
安装cloudera Manager 所需要的介质:
cloudera-manager-el7-cm5.10.1_x86_64.tar.gz
下载地址:
https://www.cloudera.com/documentation/enterprise/release-notes/topics/cm_vd.html#cmvd_topic_1
1.所有节点创建cloudera-manager文件存放目录
sudo mkdir /opt/cloudera-manager
(此目录为默认目录,不能修改路径和名称)
2.将cloudera-manager压缩文件解压到/opt/cloudera-manager
sudo tar xvzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
3. 创建用户 cloudera-scm(所有节点)
cloudera-scm 用户说明,摘自官网: Cloudera Manager Server and managed services are configured to usethe user account cloudera-scm by default, creating a user with this name is thesimplest approach. This created user, is used automatically after installationis complete.
执行:
sudo useradd --system --no-create-home --shell=/bin/false --comment"Cloudera SCM User" cloudera-scm
4.配置CM Agent相关配置文件
修改所有agent节点,目的让agent知道自己归谁管理
sudo vi /opt/cloudera-manager/cm-5.10.1/etc/cloudera-scm-agent/config.ini
指定server_host为server节点。
5.配置cloudera-mananger数据库(server端操作)
①拷贝mysql jar文件到目录 /usr/share/java/ (固定目录,系统会默认来这找文件)
②注意jar包名称固定为:mysql-connector-java.jar。(系统默认找此文件名)
③配置 CM Server 的数据库(命令行或者navicat操作即可)
grant all on *.* to 'h'@'%' identified by 'h' with grant option;
④进入文件执行命令:
cd /opt/cloudera-manager/cm-5.10.1/share/cmf/schema/
sudo ./scm_prepare_database.sh mysql h -h h01 –u h –p h --scm-host h01 scmscm scm
格式:数据库类型、数据库、数据库服务器、用户名、密码、cm server服务器
出现这句话代表以上执行成功:
6.创建Parcel目录
一台server节点:
mkdir -p /opt/cloudera/parcel-repo
并修改权限:
chown cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo
三台agent节点:
mkdir -p /opt/cloudera/parcels
并修改权限:
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
7. 制作CDH本地源
将两个parcel文件和一个json文件拷贝到server节点的/opt/cloudera/parcel-repo下
(系统默认寻找此目录,并分发给其他所有的agent节点)
8.分别启动CM Server、和CM Agent
cd /opt/cloudera-manager/cm-5.10.1/etc/init.d/
./cloudera-scm-server start
./cloudera-scm-agent start
(首次启动会自动创建表以及数据,不要立即关闭或重启,否则需要删除所有表及数据重新安装)
结果验证
在安装集群的客户机上,打开浏览器输入http://ip:7180/
备注:浏览器支持版本IE 9以上、Firefox 11以上、Safari 5以上、Google Chrome(建议)
浏览结果如下:(默认登录用户名和密码为admin/admin)