以下安装流程为CDH版本的集群安装流程,基本适用于所有CDH版本在ubuntu14.04下的安装
- 三台4核8G的Ubuntu14.04服务器(内存最低8G)
-
CDH安装文件准备
CDH-5.11.0-1.cdh5.11.0.p0.34-trusty.parcel
CDH-5.11.0-1.cdh5.11.0.p0.34-trusty.parcel.sha1
cloudera-manager-trusty-cm5.11.0_amd64.tar.gz
manifest.json
下载地址:
- JDK安装包准备(最好是1.8,以支持其他组件)
jdk-8u144-linux-x64.tar.gz
-
ssh-****** -t rsa (一路回撤,三台机器都要执行),生成对应每台机器的**文件,目录:/root/.ssh
-
创建authorized_keys文件,将三台服务的公钥即id_rsa.pub内容copy paste到authorized_keys,最后分发大三台机器的/root/.ssh目录
- 解压java安装包到指定安装文件 tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/lib/jvm/
-
配置环境变量,修改/etc/profile文件
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/li
- 使配置环境变量生效 source /etc/profile
-
测试是否安装成功
java –version
注:java环境安装配置步骤需要在三台机器上都执行所有步骤并验证
- 安装ntp apt-get install ntp
-
配置crontab
vi /etc/crontab,添加如下定时操作
*/30 * * * * root ntpdate cn.pool.ntp.org > /opt/shell/ntp_date/ntp_date.log 2>&1 &
注:三台机器都要配置
- mysql在这里旨在提供CDH集群的元数据管理服务,当然也可以选择其数据,如PG,如果选择其它数据库,请自动忽略这一步,其它数据库配置请参考官方链接: https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_mysql.html?scroll=cmig_topic_5_5_2_unique_1
- 安装mysql apt-get install mariadb-server-5.5
- 启动MySQL service mysql restart
- 修改mysql用户名密码 sudo mysqladmin -u root password newpassword
-
修改mysql配置文件
sudo vi /etc/mysql/my.cnf
bind-address = 127.0.0.1 //找到此内容并且注释
-
为各个服务创建元数据库并赋权
create database amon DEFAULT CHARACTER SET utf8;
grant all on amon.* TO 'amon'@'%' IDENTIFIED BY 'amon';
grant all on amon.* TO 'amon'@'CDH' IDENTIFIED BY 'amon';
create database smon DEFAULT CHARACTER SET utf8;
grant all on smon.* TO 'smon'@'%' IDENTIFIED BY 'smon';
grant all on smon.* TO 'smon'@'CDH' IDENTIFIED BY 'smon';
create database rman DEFAULT CHARACTER SET utf8;
grant all on rman.* TO 'rman'@'%' IDENTIFIED BY 'rman';
grant all on rman.* TO 'rman'@'CDH' IDENTIFIED BY 'rman';
create database hmon DEFAULT CHARACTER SET utf8;
grant all on hmon.* TO 'hmon'@'%' IDENTIFIED BY 'hmon';
grant all on hmon.* TO 'hmon'@'CDH' IDENTIFIED BY 'hmon';
create database hive DEFAULT CHARACTER SET utf8;
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';
grant all on hive.* TO 'hive'@'CDH' IDENTIFIED BY 'hive';
create database oozie DEFAULT CHARACTER SET utf8;
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY 'oozie';
grant all on oozie.* TO 'oozie'@'CDH' IDENTIFIED BY 'oozie';
create database hue DEFAULT CHARACTER SET utf8;
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY 'hue';
grant all on hue.* TO 'hue'@'CDH' IDENTIFIED BY 'hue';
create database metastore DEFAULT CHARACTER SET utf8;
grant all on metastore.* TO 'hive'@'%' IDENTIFIED BY 'hive';
grant all on metastore.* TO 'hive'@'CDH' IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root'
WITH GRANT OPTION;
flush privileges;
注:mysql安装在3台机器的任意一台即可,当然能做个主从最好
-
安装命令
apt-get install libmysql-java
注:3台都装上吧,反正没什么坏处
八、安装Cloudera Manager Server 和Agents
- 在主节点opt目录下创建目录(单节点:主节点) mkdir /opt/cloudera-manager
- 将下载好的cloudera-manager-trusty-cm5.11.0_amd64.tar.gz解压到/opt/cloudera-manager中(单节点:主节点)
- 创建cs用户(单节点:主节点) sudo useradd --system --home=/opt/cloudera-manager/cm-5.11.0/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
- 使用cloudera脚本完成mysql配置(单节点:主节点) /opt/cloudera-manager/cm-5.11.0/share/cmf/schema/scm_prepare_database.sh mysql -uroot -p --scm-host localhost scm scm scm_password
-
创建cloudera manager sever的本地数据存储目录(单节点:主节点)
mkdir /var/log/cloudera-scm-server
sudo chown cloudera-scm:cloudera-scm /var/log/cloudera-scm-serve
-
先在主节点进行配置server_host,因为主节点的clouder-manager要发送到其他机器,所以配置一台即可,其他机器需要简历opt文件夹vim /opt/cloudera-manager/cm-5.11.0/etc/cloudera-scm-agent/config.ini,修改server_host参数为主节点IP(单节点:主节点)
-
向其他节点发送cloudera-manager
scp –r /opt/cloudera-manager [email protected]:/opt
scp –r /opt/cloudera-manager [email protected]:/opt
- 在主节点上创建文件夹(单节点:主节点) mkdir -p /opt/cloudera/parcel-repo
-
把跟CDH相关的文件包放到/opt/cloudera/parcel-repo中(单节点:主节点),放以下文件
CDH-5.11.0-1.cdh5.11.0.p0.34-trusty.parcel
-
重命名CDH-5.11.0-1.cdh5.11.0.p0.34-trusty.parcel.sha1,去掉最后的1(单节点:主节点)
-
在从节点上创建(主节点以外的节点) mkdir –p /opt/cloudera/parcels
-
在各个节点上安装依赖(所有节点) apt-get install lsb-base psmisc bash libsasl2-modules libsasl2-modules-gssapi-mit zlib1g libxslt1.1 libsqlite3-0 libfuse2 fuse rpcbind
-
内存交换区警告解决 echo 0 > /proc/sys/vm/swappiness
-
/opt/cloudera-manager/cm-5.11.0/etc/init.d/cloudera-scm-server restart
/opt/cloudera-manager/cm-5.11.0/etc/init.d/cloudera-scm-agent restart
/opt/cloudera-manager/cm-5.11.0/etc/init.d/cloudera-scm-agent restart
-
在第9大步完成之后,30s后(由于服务启动可能有延迟),访问主节点外网IP的7180端口
http://主节点外网IP:7180
初始用户名:admin 密码:admi
配置到这里已基本全部结束,后续的界面化安装都有文字提示,跟着一步步走就可以,这套流程我走了不下40遍,只要熟练,一个小集群几十分钟就能完成!