目录
一、CDH 安装概述
有三种方式安装 CDH:
- Path A - 通过 Cloudera Manager 自动安装
- Path B - 使用 Cloudera Manager Parcels 或 Packages 安装
- Path C - 使用 Cloudera Manager Tarballs 手工安装
不同方式的安装步骤总结如下:
步骤 | |||
步骤 1: 安装 JDK Cloudera Manager Server、Management Service和CDH需要安装JDK。 | 有两个选项: . 使用Cloudera Manager安装程序在集群中的所有主机的/usr/java下安装一个Oracle JDK的支持版本。 . 使用命令行在所有主机上安装一个Oracle JDK的支持版本,并且设置JAVA_HOME环境变量为JDK的安装目录。 | ||
步骤 2: 设置数据库 Cloudera Manager Server、Cloudera Management Service和某些CDH的可选服务需要安装、配置和启动数据库。 | 有两个选项: 使用Cloudera Manager安装程序安装、配置和启动一个内嵌的PostgresSQL数据库。 使用诸如yum这样的命令行包安装工具安装、配置和启动数据库。 | ||
Path A | Path B | Path C | |
步骤 3: 安装Cloudera Manager服务器 在一台主机上安装和启动Cloudera Manager服务器。 | 使用Cloudera Manager安装程序安装它的包和服务器。需要该主机的sudo权限并能访问互联网。 | 使用Linux包安装命令(如yum)安装Cloudera Manager服务器。 修改数据库属性。 使用服务命令启动Cloudera Manager服务器。 | 使用Linux命令解包,并且使用服务命令启动服务。 |
Phase 4: 安装Cloudera Manager 代理 在所有主机上安装并启动 Cloudera Manager 代理。 | 使用Cloudera Manager安装向导在所有主机上安装代理。 | 有两个选项: . 使用Linux包安装命令(如yum)在所有主机上安装Cloudera Manager代理。 . 使用Cloudera Manager安装向导在所有主机上安装代理。 | 使用Linux命令在所有主机上解包并启动代理。 |
Phase 5: 安装CDH和受管服务的软件 在所有主机上安装、配置并启动CDH和受管服务。 | 使用Cloudera Manager安装向导安装CDH和其他受管服务。 | 有两个选项: . 使用Cloudera Manager安装向导安装CDH和其他受管服务。 . 使用Linux包安装命令(如yum)在所有主机上安装CDH和其他受管服务。 | 使用Linux命令在所有主机上解包,并使用服务命令启动CDH和受管服务。 |
Phase 6: 建立、配置并启动CDH和受管服务 配置并启动CDH和受管服务。 | 使用Cloudera Manager安装向导安装CDH和其他受管服务,给主机赋予角色并配置集群。许多配置是自动的。 | 使用Cloudera Manager安装向导安装CDH和其他受管服务,给主机授予角色并配置集群。 许多配置是自动的。 | 使用Cloudera Manager安装向导安装CDH和其他受管服务,给主机赋予角色并配置集群。 许多配置是自动的。 也可以使用Cloudera Manager API管理一个集群,这对于脚本预配置部署是很有用的。 |
二、实验环境
1. IP 和主机名,所有主机都可以连接互联网
- 172.16.1.101 cdh1
- 172.16.1.102 cdh2
- 172.16.1.103 cdh3
- 172.16.1.104 cdh4
2. 硬件资源
每个机器:CPU 4核、内存 8GB、硬盘 100GB。
3. 操作系统
CentOS release 6.4 (Final) 64位
三、安装步骤
1. 安装前准备
都是使用 root 用户在集群中的所有主机配置。
(1)下载安装文件
从以下地址下载所需要的安装文件:
- http://archive.cloudera.com/cm5/cm/5/cloudera-manager-el6-cm5.7.0_x86_64.tar.gz
- http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel
- http://archive.cloudera.com/cdh5/parcels/5.7/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1
- http://archive.cloudera.com/cdh5/parcels/5.7/manifest.json
(2)检查依赖包
使用下面的命令检查操作系统依赖包,xxxx换成包名。
rpm -qa | grep xxxx
以下这些包必须安装:
chkconfigB
python (2.6 required for CDH 5)
bind-utils
psmisc
libxslt
zlib
sqlite
cyrus-sasl-plain
cyrus-sasl-gssapi
fuse
portmap (rpcbind)
fuse-libs
redhat-lsb
(3)配置域名解析
vi /etc/hosts
# 添加如下内容
172.16.1.101 cdh1
172.16.1.102 cdh2
172.16.1.103 cdh3
172.16.1.104 cdh4
(4)安装 JDK
CDH 5 推荐的 JDK 版本是 1.7.0_67、1.7.0_75、1.7.0_80,这里安装 1.7.0_80。注意:
- 所有主机要安装相同版本的 JDK
- 安装目录为 /usr/java/jdk-version
mkdir /usr/java/
mv jdk-7u80-linux-x64.tar.gz /usr/java/
cd /usr/java/
tar -zxvf jdk-7u80-linux-x64.tar.gz
chown -R root:root jdk1.7.0_80/
echo "export JAVA_HOME=/usr/java/jdk1.7.0_80;" >> /etc/profile.d/java.sh
echo "export CLASSPATH=.:$JAVA_HOME/jre/lib/*:$JAVA_HOME/lib/*;" >> /etc/profile.d/java.sh
echo "export PATH=$PATH:$JAVA_HOME/bin" >> /etc/profile.d/java.sh
source /etc/profile.d/java.sh
echo $JAVA_HOME
(5)安装启动 NTP 服务(NTP 配置步骤略)
service ntpd start
(6)建立 CM 用户
useradd --system --home=/opt/cm-5.7.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
usermod -a -G root cloudera-scm
echo USER=\"cloudera-scm\" >> /etc/default/cloudera-scm-agent
echo "Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin" >> /etc/sudoers
(7)安装配置 MySQL 数据库
为了后面配置方便,这里每个主机都装了。
# 安装MySQL-5.6.14
rpm -ivh MySQL-5.6.14-1.el6.x86_64.rpm
# 设置PATH
echo "export PATH=$PATH:/home/mysql/mysql-5.6.14/bin" >> /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
# 修改root密码
mysqladmin -u root password
# 编辑配置文件
vi /etc/my.cnf
# 内容如下
[mysqld]
transaction-isolation = READ-COMMITTED
log_bin=/data/mysql_binary_log
binlog_format = mixed
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
key_buffer = 16M
key_buffer_size = 32M
max_allowed_packet = 32M
thread_stack = 256K
thread_cache_size = 64
query_cache_limit = 8M
query_cache_size = 64M
query_cache_type = 1
max_connections = 550
read_buffer_size = 2M
read_rnd_buffer_size = 16M
sort_buffer_size = 8M
join_buffer_size = 8M
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 64M
innodb_buffer_pool_size = 4G
innodb_thread_concurrency = 8
innodb_log_file_size = 512M
[mysqld_safe]
log-error=/data/mysqld.err
pid-file=/data/mysqld.pid
sql_mode=STRICT_ALL_TABLES
# 添加开机启动
chkconfig mysql on
# 启动MySQL
service mysql restart
# 根据需要建立元数据库
mysql -u root -p -e "create database hive DEFAULT CHARACTER SET utf8;create database rman DEFAULT CHARACTER SET utf8;create database oozie DEFAULT CHARACTER SET utf8;grant all on *.* TO 'root'@'%' IDENTIFIED BY '123456';"
(8)安装 MySQL JDBC 驱动
tar -zxvf mysql-connector-java-5.1.38.tar.gz
cp ./mysql-connector-java-5.1.38/mysql-connector-java-5.1.38-bin.jar /usr/share/java/mysql-connector-java.jar
(9)配置免密码 ssh
这里配置了任意两台机器都免密码。
# 分别在四台机器上生成密钥对:
cd ~
ssh-keygen -t rsa
# 然后一路回车
# 在cdh1上执行:
cd ~/.ssh/
ssh-copy-id cdh1
scp /root/.ssh/authorized_keys cdh2:/root/.ssh/
# 在cdh2上执行:
cd ~/.ssh/
ssh-copy-id cdh2
scp /root/.ssh/authorized_keys cdh3:/root/.ssh/
#在cdh3上执行:
cd ~/.ssh/
ssh-copy-id cdh3
scp /root/.ssh/authorized_keys cdh4:/home/grid/.ssh/
#在cdh4上执行:
cd ~/.ssh/
ssh-copy-id cdh4
scp /root/.ssh/authorized_keys cdh1:/root/.ssh/
scp /root/.ssh/authorized_keys cdh2:/root/.ssh/
scp /root/.ssh/authorized_keys cdh3:/root/.ssh/
2. 安装 Cloudera Manager
在 cdh1 上安装 Cloudera Manager。
tar -xzvf cloudera-manager*.tar.gz -C /opt/
# 建立cm数据库
/opt/cm-5.7.0/share/cmf/schema/scm_prepare_database.sh mysql cm -hlocalhost -uroot -p123456 --scm-host localhost scm scm scm
# 配置cm代理
vi /opt/cm-5.7.0/etc/cloudera-scm-agent/config.ini
# 将cm主机名改为cdh1
server_host=cdh1
# 将Parcel相关的三个文件拷贝到/opt/cloudera/parcel-repo
cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel /opt/cloudera/parcel-repo/
cp CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/
cp manifest.json /opt/cloudera/parcel-repo/
# 改名
mv /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha1 /opt/cloudera/parcel-repo/CDH-5.7.0-1.cdh5.7.0.p0.45-el6.parcel.sha
# 修改属主
chown -R cloudera-scm:cloudera-scm /opt/cloudera/
chown -R cloudera-scm:cloudera-scm /opt/cm-5.7.0/
# 将/opt/cm-5.7.0目录拷贝到其他三个主机
scp -r -p /opt/cm-5.7.0 cdh2:/opt/
scp -r -p /opt/cm-5.7.0 cdh3:/opt/
scp -r -p /opt/cm-5.7.0 cdh4:/opt/
3. 建立 parcels 目录
在每个主机上建立/opt/cloudera/parcels目录,并修改属主。
mkdir -p /opt/cloudera/parcels
chown cloudera-scm:cloudera-scm /opt/cloudera/parcels
4. 启动 cm server
在 cdh1 上启动 cm server。
/opt/cm-5.7.0/etc/init.d/cloudera-scm-server start
# 此步骤需要运行一些时间,用下面的命令查看启动情况
tail -f /opt/cm-5.7.0/log/cloudera-scm-server/cloudera-scm-server.log
5. 启动 cm agent
在所有主机上启动 cm agent。
mkdir /opt/cm-5.7.0/run/cloudera-scm-agent
chown cloudera-scm:cloudera-scm /opt/cm-5.7.0/run/cloudera-scm-agent
/opt/cm-5.7.0/etc/init.d/cloudera-scm-agent start
6. 安装 CDH5
登录 cm 控制台,安装 CDH5。打开控制台:http://172.16.1.101:7180/,页面如图1 所示。
图1
缺省的用户名和密码都是 admin,登录后进入欢迎页面。勾选许可协议,如图2 所示,点继续。
图2
进入版本说明页面,如图3 所示,点继续。
图3
进入服务说明页面,如图4 所示,点继续。
图4
进入选择主机页面,如图5 所示,全选四个主机,点继续。
图5
进入选择存储库页面,如图6 所示,点继续。
图6
进入集群安装页面,如图7 所示,点继续。
图7
进入验证页面,如图8 所示,点完成。
图8
进入集群设置页面,如图9 所示,根据需要选择服务,点继续。
图9
进入自定义角色分配页面,如图10 所示,保持不变,点继续。
图10
进入数据库设置页面,填写相关信息,点测试连接,如图11 所示,点继续。
图11
进入审核更改页面,保持不变,点继续。
进入首次运行页面,等待运行完,如图12 所示,点继续。
图12
进入安装成功页面,如图13 所示,点完成。
图13
进入安装成功页面,如图14 所示。
图14