Skip to content

Instantly share code, notes, and snippets.

@banjin
Created August 21, 2020 10:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save banjin/55058f5f4129467d6810d364de0852c7 to your computer and use it in GitHub Desktop.
Save banjin/55058f5f4129467d6810d364de0852c7 to your computer and use it in GitHub Desktop.
所有的操作都是在root权限下进行
硬件环境
一台master
内存: 14G
操作系统 ubuntu 16.04 xenial
硬盘: 500G
两台slave
内存: 8G
操作系统 ubuntu 16.04 xenial
硬盘: 500G
安装CDH:
1. 下载源码包
cloudera-manager-xenial-cm5.12.1_amd64.tar.gz(Cloudera Manager 安装包,约703M)
CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel(CDH离线资源包,约1.6GB)
CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1(CDH离线包验证文件,约41B)
manifest.json(CDH离线包内的组件描述文件,约71KB)
jdk-7u80-linux-x64.tar.gz(JDK7安装包,约150MB)(CDH5.12.1只支持到java1.7版本,不知道1.8版本)
下载时需要确定自己系统的版本名称,Ubuntu16.04的对应的版本名称为xenial,下面为对应文件的下载地址:
Cloudera Manager: http://archive.cloudera.com/cm5/cm/5/_index.html
上面有关CDH资源包、CDH校验文件、manifest.json等文件下载地址:http://archive.cloudera.com/cdh5/parcels/5.12.1/
JDK文件下载地址:http://download.oracle.com/otn/java/jdk/7u80-b15/jdk-7u80-linux-x64.tar.gz
以下操作均以root身份执行
2. 修改主机名hostname(所有节点)
vi /etc/hostname
# master主机修改为master,
# slave[1-2]则修改为slave1,slave2
3. 修改hosts(所有节点)
vi /etc/hosts
# 所有节点(使用内网ip)
127.0.0.1 localhost
10.10.20.4 slave1
10.10.20.5 slave2
10.10.20.6 master
4. 配置master到slave[1-2]免密登录(所有节点)
配置主机可root远程ssh登录:用下面命令,编辑配置文件,将PermitRootLogin prohibit-password修改为PermitRootLogin yes
# 所有节点
vim /etc/ssh/sshd_config
PermitRootLogin yes
service ssh restart # 重启ssh服务
# 或者
/etc/init.d/ssh restart
生成master密钥并配置信任:master节点上,执行ssh-keygen -t rsa 一直回车,会在当前用户目录下生成.ssh文件夹,里面存放了公钥和私钥。然后将公钥添加到master和slave[1-2]主机里
# master节点上
ssh-keygen -t rsa
# 需要设置root用户密码 passwd
ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2
或者直接手动将主机master上的id_rsa.pub内容拷贝到所有主机的authorized_keys中
测试master免密登录:master节点上,ssh [hostname],若不需要密码即可登录,则成功:
# master节点
ssh master
ssh slave1
ssh slave2
4. 关闭防火墙(所有主机上)
ufw disable
5. 配置jdk环境(所有主机上)
tar -zxf jdk-7u80-linux-x64.tar.gz -C /opt
mv /opt/jdk1.7.0_80 /opt/jdk7
# 配置JAVA_HOME和PATH环境变量
# 所有节点
vi /etc/profile # 加入下面环境
export JAVA_HOME=/opt/jdk7
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# 所有节点
vi /etc/environment # 添加如下,注意此处无需export关键字
JAVA_HOME=/opt/jdk7
# 所有节点
vi ~/.bashrc # 添加如下
export JAVA_HOME=/opt/jdk7
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
# 所有节点
source /etc/profile
source /etc/environment
source ~/.bashrc
测试java:输入 java -version ,显示java版本即可。
6. 安装mysql(master节点)
apt-get install mysql-server mysql-client
修改数据看配置 /etc/mysql/my.cnf
注释掉 bind-server 127.0.0.1
重启 /etc/init.d/mysql restart
7. 正式部署–安装Manager(如果没有特别说明,下面操作在所有主机上同样执行)
这里先需要将需要的软件上传到所有节点根目录,文件包含:
cloudera-manager-xenial-cm5.12.1_amd64.tar.gz(Cloudera Manager 安装包,约703M)
CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel(CDH离线资源包,约1.6GB)
CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1(CDH离线包验证文件,约41B)
manifest.json(CDH离线包内的组件描述文件,约71KB)
jdk-7u80-linux-x64.tar.gz
# 将CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1修改成CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha
mv CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha1 CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha
# 创建文件夹,用以存放解压后的cloudera-manager
mkdir /opt/cloudera-manager
tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
# 为所有节点创建cloudera-scm用户
useradd --system --home=/opt/cloudera-manager/cm-5.12.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
# 创建Cloudera Manager Server 本地数据存放目录(master)
mkdir /var/lib/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
# 为Cloudera Manager连接MySQL 安装mysql-connector-java包,并链接到CM库
# 所有节点安装库
apt-get install libmysql-java
# 链接mysql连接库到cm库中给平台使用
ln -s /usr/share/java/mysql-connector-java.jar /opt/cloudera-manager/cm-5.12.1/share/cmf/lib/mysql-connector-java.jar
#创建cm5的数据库
# master节点
cd /opt/cloudera-manager/cm-5.12.1/share/cmf/schema
./scm_prepare_database.sh mysql -uroot -p123456 scm scm scm
# 配置Agent 修改配置文件的server,指向master
# 所有节点
vi /opt/cloudera-manager/cm-5.12.1/etc/cloudera-scm-agent/config.ini
# 将server_host修改为master
server_host=master
8.配置Parcels,用以安装CDH5(在master节点)
mkdir -p /opt/cloudera/parcel-repo
# 传入三个文件:
CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel
CDH-5.12.1-1.cdh5.12.1.p0.3-xenial.parcel.sha
manifest.json
# 所有主机
mkdir -p /opt/cloudera/parcels
9. 创建数据库(master)
create database oozie default character set utf8 collate utf8_general_ci;
create database rman DEFAULT CHARSET utf8 collate utf8_general_ci;
create database hive DEFAULT CHARSET utf8 collate utf8_general_ci;
create database hue DEFAULT CHARSET utf8 collate utf8_general_ci;
# 创建四个用户名
grant all on hive.* TO 'hive'@'%' IDENTIFIED BY '123456';
grant all on rman.* TO 'rman'@'%' IDENTIFIED BY '123456';
grant all on oozie.* TO 'oozie'@'%' IDENTIFIED BY '123456';
grant all on hue.* TO 'hue'@'%' IDENTIFIED BY '123456';
# grant all privileges on oozie.* to 'oozie'@'localhost' identified by '123456';
flush privileges;
10. 启动Manager的Server和Agent
# 在master节点启动Server进程
cd /opt/cloudera-manager/cm-5.12.1/etc/init.d
./cloudera-scm-server start
# 在所有节点上启动agent
./cloudera-scm-agent start
# 这里假如大家有错误,可以查看对应进程的日志
Server进程log日志文件:/opt/cloudera-manager/cm-5.12.1/log/cloudera-scm-server/cloudera-scm-server.log
Agent进程log日志文件:/opt/cloudera-manager/cm-5.12.1/log/cloudera-scm-agent/cloudera-scm-agent.log,
如果没有.log文件,可以试试.out文件
11 接下来需要再浏览器中安装配置
# 查看主机master的外网IP
curl ip.sb
# 在浏览器中
masterIP:7180
注意:在安装过程中
#需要再各个主机上执行
echo 10 > /proc/sys/vm/swappiness
# master主机上
# 如果出现hue测试连接数据库时失败,仅master主机
apt-get install python-mysqldb
apt-get install libxslt1.1
apt-get install apache2
apt-get install libssl-dev
安装过程基本上都是默认选项即可,只是在选择parcel时候,选择自己上传的parcel版本。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment