CDH用于管理hadoop生态环境的各个组件,提供安装和管理的功能,强烈推荐
下面是CDH5.5的安装环境搭建(6台服务器Centos7,2台主节点机性能好,32G内存)
离线包下载
1.1 cloudera-manager下载
下载地址
cloudera-manager-centos7-cm5.5.0_x86_64.tar.gz
//放入/opt/cloudera-manager
#tar -zxf cloudera-manager-centos7-cm5.5.0_x86_64.tar.gz
1.2 离线安装包下载
下载地址
CDH-5.5.0-1.cdh5.5.0.p0.8-el7.parcel
CDH-5.5.0-1.cdh5.5.0.p0.8-el7.parcel.sha1
manifest.json
//放入目录/opt/cloudera/parcel-repo
安装
2.1 jdk1.8安装
rpm -qa|grep java
删除原生依赖
yum -y remove ...
rpm -ivh jdk-8u65-linux-x64.rpm
2.2 依赖安装
yum install -y chkconfig
yum install -y Python
yum install -y bind-utils
yum install -y psmisc
yum install -y libxslt
yum install -y zlib
yum install -y sqlite
yum install -y cyrus-sasl-plain
yum install -y cyrus-sasl-gssapi
yum install -y fuse
yum install -y portmap
yum install -y fuse-libs
yum install -y redhat-lsb
yum install -y bind-utils
yum install -y libxslt
yum install -y sqlite
2.3 各个节点防火墙关闭
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
2.4 hosts配置
vi /etc/hosts
#根据自己机器情况修改
172.168.101.245 master245
172.168.101.246 datanode246
172.168.101.247 datanode247
172.168.101.248 datanode248
172.168.101.249 datanode249
172.168.101.250 datanode250
127.0.0.1 localhsot
各节点hostname修改
/etc/sysconfig/network
#172.168.101.245
NETWOEKING=yes
HOSTNAME=master245
#172.168.101.246
NETWOEKING=yes
HOSTNAME=datanode246
.
.
.
#172.168.101.250
NETWOEKING=yes
HOSTNAME=datanode250
2.5 ssh配置
#ssh-keygen -t rsa
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#scp ~/.ssh/* root@datanode246:~/.ssh/
#scp ~/.ssh/* root@datanode247:~/.ssh/
#scp ~/.ssh/* root@datanode248:~/.ssh/
#scp ~/.ssh/* root@datanode249:~/.ssh/
#scp ~/.ssh/* root@datanode250:~/.ssh/
2.6 ntp服务安装
yum install -y ntp
chkconfig ntpd on
ntpdate cn.pool.ntp.org
//主节点master245修改vi /etc/ntp.conf
去掉注释:restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
service ntpd start
//子节点设置
ntpdate -u master245
service ntpd start
chkconfig ntpd on
2.7 postgres数据库安装
安装postgres
yum install http://yum.postgresql.org/9.4/redhat/rhel-6-x86_64/pgdg-redhat94-9.4-1.noarch.rpm
yum install postgresql94-server postgresql94-contrib
初始化数据库
/usr/pgsql-9.4/bin/postgresql94-setup initdb
设置访问权限
vi /var/lib/pgsql/9.4/data/pg_hba.conf
添加如下设置
host all all 127.0.0.1/32 md5
host all all 172.168.101.0/24 md5
host all all 172.168.100.0/24 md5
配置修改
vi /var/lib/pgsql/9.4/data/postgresql.conf
shared_buffers - 256MB
wal_buffers - 8MB
checkpoint_segments - 16
checkpoint_completion_target - 0.9
设置开机启动
systemctl enable postgresql-9.4.service
systemctl start postgresql-9.4.service
service postgresql-9.4 restart
创建初始库
sudo -u postgres psql
CREATE ROLE scm LOGIN PASSWORD 'scm';
CREATE DATABASE scm OWNER scm ENCODING 'UTF8';
创建用户实例
#Activity Monitor
CREATE ROLE amon LOGIN PASSWORD 'amon_password';
CREATE DATABASE amon OWNER amon ENCODING 'UTF8';
#Reports Manager
CREATE ROLE rman LOGIN PASSWORD 'rman_password';
CREATE DATABASE rman OWNER rman ENCODING 'UTF8';
#Hive Metastore Server
CREATE ROLE hive LOGIN PASSWORD 'hive_password';
CREATE DATABASE metastore OWNER hive ENCODING 'UTF8';
#Sentry Server
CREATE ROLE sentry LOGIN PASSWORD 'sentry_password';
CREATE DATABASE sentry OWNER sentry ENCODING 'UTF8';
#Cloudera Navigator Audit Server
CREATE ROLE nav LOGIN PASSWORD 'nav_password';
CREATE DATABASE nav OWNER nav ENCODING 'UTF8';
#Cloudera Navigator Metadata Server
CREATE ROLE navms LOGIN PASSWORD 'navms_password';
CREATE DATABASE navms OWNER navms ENCODING 'UTF8';
#For PostgreSQL 8.2.23 or later, also run:
ALTER DATABASE Metastore SET standard_conforming_strings = off;
在主节点初始化CM5的数据库:
/opt/cloudera-manager/cm-5.5.0/share/cmf/schema/scm_prepare_database.sh -h localhost postgresql scm scm scm
2.8 同步Agent到其他节点
修改/opt/cloudera-manager/cm-5.1.3/etc/cloudera-scm-agent/config.ini中的server_host为主节点的主机名(master245)。
```
scp -r /opt/cloudera-manager/cm-5.5.0 root@datanode246:/opt/cloudera-manager
scp -r /opt/cloudera-manager/cm-5.5.0 root@datanode247:/opt/cloudera-manager
scp -r /opt/cloudera-manager/cm-5.5.0 root@datanode248:/opt/cloudera-manager
.
.
.
```
2.9 在所有节点创建cloudera-scm用户
useradd --system --home=/opt/cm-5.5.0/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
2.10 主机准备Parcels,用以安装CDH5
将CHD5相关的Parcel包放到各个节点机的/opt/cloudera/parcel-repo/目录中(parcel-repo需要手动创建)。
并授权 chown cloudera-scm:cloudera-scm parcel-repo
相关的文件如下:
CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel
CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1
manifest.json
最后将CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha1,重命名为CDH-5.1.3-1.cdh5.1.3.p0.12-el6.parcel.sha
2.11 创建目录
rm -rf /dfs
rm -rf /var/lib/zookeeper
rm -rf /opt/cloudera-manager/cm-5.5.0/lib/cloudera-scm-agent/*
rm -rf /var/lib/cloudera-scm-headlamp
rm -rf /var/lib/cloudera-scm-firehose
rm -rf /var/lib/cloudera-scm-alertpublisher
rm -rf /var/lib/cloudera-scm-eventserver
rm -rf /var/lib/cloudera-scm-server
rm -rf /var/log/cloudera-scm-headlamp
rm -rf /var/log/cloudera-scm-firehose
rm -rf /var/log/cloudera-scm-alertpublisher
rm -rf /var/log/cloudera-scm-eventserver
rm -rf /var/log/cloudera-scm-server
rm -rf /hbase
mkdir -p /var/lib/cloudera-scm-headlamp
mkdir -p /var/lib/cloudera-scm-firehose
mkdir -p /var/lib/cloudera-scm-alertpublisher
mkdir -p /var/lib/cloudera-scm-eventserver
mkdir -p /var/lib/cloudera-scm-server
mkdir -p /var/log/cloudera-scm-headlamp
mkdir -p /var/log/cloudera-scm-firehose
mkdir -p /var/log/cloudera-scm-alertpublisher
mkdir -p /var/log/cloudera-scm-eventserver
mkdir -p /var/log/cloudera-scm-server
mkdir -p /opt/cloudera-manager
mkdir -p /opt/cloudera/parcel-repo
mkdir /hbase
chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-headlamp
chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-firehose
chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-alertpublisher
chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-eventserver
chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-headlamp
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-firehose
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-alertpublisher
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-eventserver
chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-server
chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager
chown cloudera-scm:cloudera-scm /hbase/
sudo chown -R root:root /opt/cloudera/parcel-repo
master主机上
rm -rf /user/hive/warehouse
mkdir -p /user/hive/warehouse
chown cloudera-scm:cloudera-scm /user/hive/warehouse
rm -rf /var/lib/cloudera-host-monitor
mkdir -p /var/lib/cloudera-host-monitor
chown cloudera-scm:cloudera-scm /var/lib/cloudera-host-monitor
rm -rf /var/lib/cloudera-service-monitor
mkdir -p /var/lib/cloudera-service-monitor
chown cloudera-scm:cloudera-scm /var/lib/cloudera-service-monitor
2.11 启动服务
chown -R cloudera-scm:cloudera-scm /opt/cloudera-manager
/opt/cm-5.1.3/etc/init.d/cloudera-scm-server start
/opt/cm-5.1.3/etc/init.d/cloudera-scm-agent start
开机启动service
cp /opt/cloudera-manager/cm-5.5.0/etc/init.d/cloudera-scm-server /etc/init.d/cloudera-scm-server
chkconfig cloudera-scm-server on
开机启动agents
cp /opt/cloudera-manager/cm-5.5.0/etc/init.d/cloudera-scm-agent /etc/init.d/cloudera-scm-agent
chkconfig cloudera-scm-agent on
异常情况处理
3.1异常1
已启用“透明大页面”,它可能会导致重大的性能问题。版本为“CentOS release 6.3 (Final)”且版本为“2.6.32-279.el6.x86_64”的 Kernel 已将 enabled 设置为“[always] never”,并将 defrag 设置为“[always] never”。请运行“echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag”以禁用此设置,然后将同一命令添加到一个 init 脚本中,如 /etc/rc.local,这样当系统重启时就会设置它
(每个节点)
解决方案
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.local
3.2异常2
Cloudera 建议将 /proc/sys/vm/swappiness 设置为 0。当前设置为 60。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf 以在重启后保存该设置。您可以继续进行安装,但可能会遇到问题,Cloudera Manager 报告您的主机由于交换运行状况不佳。以下主机受到影响:
解决方案:
echo 0 > /proc/sys/vm/swappiness
sysctl vm/swappiness
echo 'vm.swappiness = 0'>/etc/sysctl.conf
sysctl -p
3.3异常3
pstree: 未找到命令
解决方案
yum install -y psmisc