CentOS 7 CDH 6.3.1 Cloudera Manager 6.3.1 企业级离线安装简易版

👌 2020-03-02 CentOS 7 CDH 6.3.1 Cloudera Manager 6.3.1 企业级离线安装简易版

FileInfo Filename - 2020-03-02 CentOS 7 CDH 6.3.1 Cloudera Manager 6.3.1 企业级离线安装简易版 Version - v1.1.2003(2020/03/02 ~ 2020/03/02) Author - standuke Email - shadowdoker@gmail.com DescriptionKey - CDH install quick version

本文约定

在文中将有以下提示符对重点进行标注说明,请注意文中提示。

⚠️ - 文中出现此标记,代表重要提示,指需要格外注意的地方 🔘 - 文中出现此标记,代表可选配置,建议配置,但不必要 ✅ - 文中出现此标记,代表检查项目,需要检查对应的配置文件 ❗️ - 文中出现此标记,代表该操作不可随意修改,如更改此步操作,请预先测试

CDH 简单介绍

Cloudera Distribution including Apache Hadoop - CDH 为 Cloudera 的开源 Apache Hadoop 发行版,面向 Hadoop 企业级部署。 Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称"CDH"),基于 Web 的用户界面,支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、Hbase、Zookeeper、Sqoop,简化了大数据平台的安装和使用难度。 除此 Apache Hadoop 发行版本之外,还有如下发行版:

  • Cloudera’s Distribution Including Apache Hadoop(CDH)「本文采用」
  • Hortonworks Data Platform (HDP)
  • MapR
  • EMR

组件介绍

Cloudera Manager 是用于管理 CDH 集群的端到端应用程序,统一管理和安装。CDH 除了可以通过 CM 安装也可以通过 YUM、TAR、RPM 安装。主要由如下几部分组成:

  • Server:Cloudera Manager 的核心。主要用于管理 web server 和应用逻辑。它用于安装软件,配置,开始和停止服务,以及管理服务运行的集群。
  • agent:安装在每台主机上。它负责启动和停止进程,部署配置,触发安装和监控主机。
  • Database:存储配置和监控信息。通常可以在一个或多个数据库服务器上运行的多个逻辑数据库。例如,所述的 Cloudera 管理器服务和监视,后台程序使用不同的逻辑数据库。
  • Parcel(Cloudera Repository):由 Cloudera 提供的软件分发库。
  • Clients:提供了一个与 Server 交互的接口。

节点介绍

NAME NUMBER 描述
Server 1 CM 中 Manager 节点
Agent 1+N CM 中 其余 Node 节点

ALL 所有节点

  • ❗️关闭并禁止开机自启如下服务:系统防火墙(Firewalldiptables)、NetworkManager
systemctl stop firewalld
systemctl stop iptables
systemctl stop NetworkManager

systemctl disable firewalld
systemctl disable iptables
systemctl disable NetworkManager
  • ❗️关闭并禁用 SELinux
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
  • ❗️永久修改各节点的 Hostname 必须防止变回默认
hostnamectl set-hostname $HOSTNAME
  • ❗️添加服务器之间本地域名解析 /etc/hosts
vi /etc/hosts
# incloud itself
# 192.168.10.1 localhost localhost.localhost
  • ❗️配置仅使用物理内存,所有主机都需要
echo "vm.swappiness=0" >>/etc/sysctl.conf && sysctl -p
  • ❗️禁用透明页压缩,所有主机都需要
echo "never" > /sys/kernel/mm/transparent_hugepage/defrag
echo "never" > /sys/kernel/mm/transparent_hugepage/enabled
chmod +x /etc/rc.local
echo "echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.local
echo "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled" >> /etc/rc.local
tail ‐2f /sys/kernel/mm/transparent_hugepage/defrag
tail ‐2f /sys/kernel/mm/transparent_hugepage/enabled
tail ‐2f /etc/rc.local

echo never > /sys/kernel/mm/transparent_hugepage/defrag echo never > /sys/kernel/mm/transparent_hugepage/enabled

  • ❗️⚠️ 配置个节点时间同步,确保各个节点时间误差最大不得高于 2s
yum -y install ntp

server

# 管理节点使用本地时钟源,执行以下语句即可
cat <<EOF>/etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server 127.127.1.0 iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
EOF

agent

# 其他节点的时钟源为管理节点,执行以下语句即可
cat <<EOF>/etc/ntp.conf
driftfile /var/lib/ntp/drift
restrict default kod nomodify notrap nopeer noquery
restrict -6 default kod nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict -6 ::1
server node1  iburst
includefile /etc/ntp/crypto/pw
keys /etc/ntp/keys
EOF

强制设置时间,写入硬件时钟

# 修改各节点时间,时间为当前时间
date -s "2020-04-16 23:11:07"
# 写入硬件时钟
hwclock -w

启动服务,并设置开机自启动

# 各节点启动服务
systemctl start ntpd && systemctl enable ntpd
  • 🔘配置 Java 运行环境,建议安装 JDK 1.8.0_161(亦可选择安装 CDH 时,选择安装 CDH 自带的 Oracle JDK)
# JDK 安装路径
mkdir -p /usr/local/java

若操作系统安装有 OpenJDK 则移除系统原有的 JDK

# 各节点都需要进行
# 查找JDK
rpm -aq|grep java
rpm -aq|grep jdk
# 卸载JDK
yum -y remove [上述查找结果的包名]

安装 Oracle JDK 1.8

# 在各节点上进行安装
# 创建java目录
mkdir /usr/java/
# 上传jdk目录下jdk-8u161-linux-x64.tar.gz到/usr/java目录 并解压
cd /usr/java/
tar -zxvf jdk-8u161-linux-x64.tar.gz
# ⚠️ 修改 jdk 所属用户用户组
chown root:root jdk-8u161-linux-x64
# 配置环境变量
vi /etc/profile
# 在后面追加下面三行
export JAVA_HOME=/usr/java/jdk1.8.0_161
export CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=${JAVA_HOME}/bin:${PATH}
# 最后刷新环境变量
source /etc/profile
# 查看 Java 是否安装成功
java -version

Server 节点

🔘 若操作系统安装有 mariadb 则手工移除mariadb数据库 ⚠️ 亦可不移除,在安装 mysql 是会自动处理

  rpm -qa | grep mariadb
# 结果应为 mariadb-libs-5.5.56-2.el7.x86_64
# 卸载
  rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

安装 MySql 服务

# 在 server 上安装 mysql 服务
# 上传repo目录下mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar安装包到 /home/cdh/ 目录 并解压
  tar -xvf mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
# 进入解压目录 安装 mysql
  yum install net-tools
  rpm -ivh mysql-community-server-5.7.25-1.el7.x86_64.rpm mysql-community-client-5.7.25-1.el7.x86_64.rpm mysql-community-common-5.7.25-1.el7.x86_64.rpm mysql-community-libs-5.7.25-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.25-1.el7.x86_64.rpm

启动 mysql 服务,设置自启动

# 在 server上启动 mysql 服务,并设置自启动
  systemctl start mysqld
  systemctl enable mysqld

初始化 mysql 数据库

# 在node1 上初始化mysql
# 获得初始密码
  grep 'temporary password' /var/log/mysqld.log
# 使用初始密码登录
  mysql -u root -p
# 修改初始密码
  # show variables like 'validate_password%';# 查看密码验证策略
  set global validate_password_policy=0;# 设置密码验证策略为低
  set global validate_password_mixed_case_count=0;# 设置密码至少要包含的大小写字母个数
  set global validate_password_number_count=0;# 设置密码至少要包含的数字个数
  set global validate_password_special_char_count=0;# 设置密码至少要包含的特殊字符个数
  set global validate_password_length=2; # 设置密码最小长度为2
  ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
  grant all privileges on *.* to 'root'@'localhost' identified by '123456' with grant option;
  grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
  flush privileges;
  quit;
  • 配置 mysql jdbc 驱动
# 在各节点上执行
# 上传 repo 目录下 mysql 连接 mysql-connector-java-5.1.47.jar 到 /usr/share/java
  ⚠️ mkdir -p /usr/share/java
# 重命名
  ⚠️ mv mysql-connector-java-5.1.47.jar mysql-connector-java.jar
# 授权
  ⚠️ chmod 777 mysql-connector-java.jar
  • 安装 daemons agent server
  yum -y install cloudera-manager-agent cloudera-manager-daemons cloudera-manager-server
  • 初始化 CM 相关数据库
  ##执行数据库脚本
  cd /opt/cloudera/cm/schema
  ./scm_prepare_database.sh mysql -uroot -p scm scm scm
  • 修改 agent 配置文件
vi /etc/cloudera-scm-agent/config.ini
server=$SERVERHOSTNAME

Agent 节点

  • 安装 daemons agent
yum -y install cloudera-manager-agent cloudera-manager-daemo
  • 修改 agent 配置文件
vi /etc/cloudera-scm-agent/config.ini
server=$SERVERHOSTNAME

开始启动服务

server

systemctl start cloudera-scm-server
systemctl enable cloudera-scm-server
systemctl start cloudera-scm-agent
systemctl enable cloudera-scm-agent

agent

systemctl start cloudera-scm-agent
systemctl enable cloudera-scm-agent

网页操作

http://server:7180 默认用户名为 admin 默认密码为 admin

附录

组件建表语句

mysql -uroot -p123456

  ##给scm授权
  grant all privileges on *.* to 'scm'@'localhost' identified by 'scm' with grant option;
  grant all privileges on *.* to 'scm'@'%' identified by 'scm' with grant option;

  ##创建hive数据库
  create database hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  ##给hive授权
  grant all privileges on *.* to 'hive'@'localhost' identified by 'hive' with grant option;
  grant all privileges on *.* to 'hive'@'%' identified by 'hive' with grant option;

  ##创建oozie数据库
  create database oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  ##给oozie授权
  grant all privileges on *.* to 'oozie'@'localhost' identified by 'oozie' with grant option;
  grant all privileges on *.* to 'oozie'@'%' identified by 'oozie' with grant option;

  ##创建hue数据库
  create database hue DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  ##给hub授权
  grant all privileges on *.* to 'hue'@'localhost' identified by 'hue' with grant option;
  grant all privileges on *.* to 'hue'@'%' identified by 'hue' with grant option;
  
  ##创建AM数据库
  create database am DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

  ##给AM授权
  grant all privileges on *.* to 'am'@'localhost' identified by 'am' with grant option;
  grant all privileges on *.* to 'am'@'%' identified by 'am' with grant option;

  ##刷新权限
  flush privileges;

  ##退出
  quit;

附录结束

版本修订记录

版本号 修订日期 修订人 备注
v1.1.2003 2020-03-02 nuo 创建文档