CentOS7.7(2019年8月发布)搭建完全分布CDH6.3.2(2019年11月发布) 操作记录

CentOS7.7(2019年8月发布)搭建完全分布CDH6.3.2(2019年11月发布) 操作记录

18 11月, 2019 CDH 0 Comments11

一、前言

1.1 CDH简介

  • 官网 https://www.cloudera.com/
  • CDH,全称Cloudera's Distribution, including Apache Hadoop。是Hadoop众多分支中对应中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,提供了Hadoop的核心(可扩展存储、分布式计算),最为重要的是提供基于web的用户界面。
  • CDH的优点:版本划分清晰,更新速度快,支持Kerberos安全认证,支持多种安装方式(如Yum、rpm等)。
  • CDH分为Cloudera Manager管理平台和CDH parcel(parcel包含各种组件的安装包)。这里采用CM6.3.1(2019-10-11)和CDH6.3.2(2019-11-12更新)。

1.2 安装前的准备

1.2.1 下载

  • Cloudera Manger下载

下载地址为 https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/

 

  • CDH下载

下载地址为 https://archive.cloudera.com/cdh6/6.3.2/parcels/

 

二、安装

2.1 环境准备

2.1.1 安装机器

  • 本例中
    • 采用VMWare Workstation Pro 15.5.0 build-14665864作为虚拟化载体
    • 采用CentOS-7-x86_64-DVD-1908.iso作为系统镜像
    • 采用一个master三个slave的四节点集群架构

操作系统

cpu

内存

硬盘

ip

主机名

Centos7

2核

2G

100G

192.168.222.50

cdh00

Centos7

4核

6G

100G

192.168.222.51

cdh01

Centos7

4核

6G

100G

192.168.222.52

cdh02

Centos7

4核

6G

100G

192.168.222.53

cdh03

 

注:具体配置请根据自己的搭建环境进行调整

  • 安装完成后使用XShell或CRT连接所有机器

 

2.1.2 设置主机名映射(所有节点)

查看:

  • 在所有机器查看/etc/hosts文件内容如下图所示

cat /etc/hostsCOPY

 

操作:

  • 在所有机器执行如下命令,添加集群映射

echo -e "192.168.222.50 cdh00 192.168.222.51 cdh01 192.168.222.52 cdh02 192.168.222.53 cdh03" >> /etc/hostsCOPY

验证:

  • 在所有机器查看/etc/hosts文件内容如下图所示

cat /etc/hostsCOPY

 

2.1.3 关闭并禁用防火墙(所有节点)

查看:

  • 查看防火墙服务运行状态

systemctl status firewalldCOPY

 

操作:

  • 关闭防火墙

systemctl stop firewalldCOPY

  • 禁用防火墙开机自启

systemctl disable firewalldCOPY

 

验证:

  • 查看防火墙状态为关闭状态

systemctl status firewalldCOPY

 

2.1.4 关闭SELINUX(所有节点)

查看:

  • 查看SELinux服务的运行状态

getenforceCOPY

 

操作:

  • 临时关闭

setenforce 0COPY

  • 永久关闭

sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/configCOPY

验证:

cat /etc/selinux/configCOPY

 

2.1.5 设置SSH免密登陆(所有节点)

操作:

  • 生成密钥:

ssh-keygen -t rsaCOPY

 

  • 分发密钥:
  • ssh-copy-id cdh00
  • yes
  • 密码
  • ssh-copy-id cdh01
  • yes
  • 密码

...COPY

 

验证:

  • 在任意机器上对集群其他节点进行进行ssh登陆
  • 不需要使用密码则为配置成功

 

2.1.6 禁用透明大页(所有节点)

查看:

  • 查看透明大页的设置和启动状态
  • cat /sys/kernel/mm/transparent_hugepage/defrag

cat /sys/kernel/mm/transparent_hugepage/enabledCOPY

操作:

  • 临时关闭
  • echo never > /sys/kernel/mm/transparent_hugepage/defrag

echo never > /sys/kernel/mm/transparent_hugepage/enabledCOPY

  • 永久关闭
    • 将临时关闭命令添加到/etc/rc.d/rc.local文件中,并赋予执行权限
    • echo 'echo never > /sys/kernel/mm/transparent_hugepage/defrag' >> /etc/rc.d/rc.local
    • echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.d/rc.local

chmod +x /etc/rc.d/rc.localCOPY

验证:

cat /etc/rc.d/rc.localCOPY

2.1.8 修改Linux swappiness参数(所有节点)

  • 为了避免服务器使用swap功能而影响服务器性能,一般都会把vm.swappiness修改为0(cloudera建议10以下)
  • 查看
  • cd /usr/lib/tuned

grep "vm.swappiness" * -RCOPY

  • 操作

sed -i s/"vm.swappiness = 30"/"vm.swappiness = 10"/g  /usr/lib/tuned/virtual-guest/tuned.confCOPY

2.1.7 安装JDK(所有节点)

注意:CDH的安装要求使用指定版本的oracle-j2sdk1.8

  • 查询是否有已经安装的jdk

rpm -qa | grep javaCOPY

  • 如果之前安装过Java组件,先将其卸载

yum remove java*COPY

  • 上传安装包oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm到/opt目录
  • cd /opt

lsCOPY

 

  • 启动安装

rpm -ivh oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpmCOPY

  • 查找jdk安装路径

find / -name javaCOPY

 

  • 配置环境变量

echo 'export JAVA_HOME=/usr/java/jdk1.8.0_181-cloudera' >> /etc/profile

echo 'export PATH=.:$JAVA_HOME/bin:$PATH' >> /etc/profile

source /etc/profileCOPY

  • 验证

java -versionCOPY

 

2.1.8 上传JDBC依赖包(所有节点)

  • 创建目录

mkdir -p /usr/share/javaCOPY

  • 将mysql-connector-java-8.0.12.jar重命名为mysql-connector-java.jar

mv mysql-connector-java-8.0.12.jar mysql-connector-java.jarCOPY

  • 将mysql-connector-java.jar移动或复制到每个节点的/user/share/java
  • cp mysql-connector-java.jar /usr/share/java/
  • scp mysql-connector-java.jar  cdh01:/usr/share/java/

...COPY

2.1.9 安装MySQL(master节点,本例中cdh00)

  • 查询出来已安装的mariadb

rpm -qa|grep mariadbCOPY

  • 卸载mariadb,文件名为上述命令查询出来的文件

rpm -e --nodeps 文件名COPY

  • 上传安装包到/opt目录

 

  • 解压安装包

tar Jxvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xzCOPY

  • 重命名
  • mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql

mv mysql /usr/localCOPY

  • 创建数据目录

mkdir /usr/local/mysql/dataCOPY

  • 创建并编辑my.cnf文件

vim /etc/my.cnfCOPY

  • 填入以下内容
  • [client]
  • port=3306
  • socket=/tmp/mysql.sock
  • [mysqld]
  • port=3306
  • user=mysql
  • socket=/tmp/mysql.sock
  • basedir=/usr/local/mysql
  • datadir=/usr/local/mysql/data
  • log-error=/usr/local/mysql/error.log
  • pid-file = /usr/local/mysql/mysql.pid
  • transaction_isolation = READ-COMMITTED
  • character-set-server = utf8
  • collation-server = utf8_general_ci
  • lower_case_table_names = 1

sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"COPY

  • 创建组

groupadd mysqlCOPY

  • 创建用户

useradd -g mysql mysqlCOPY

  • 修改目录权限
    • 将 /opt/mysql给予mysql用户

chown -R mysql:mysql /usr/local/mysqlCOPY

  • 将/opt/mysql权限设置为755

chmod -R 755 /usr/local/mysqlCOPY

  • 初始化mysql
  • cd /usr/local/mysql

./bin/mysqld --initialize --user=mysqlCOPY

  • 尝试启动mysql
  • cd /usr/local/mysql

./support-files/mysql.server startCOPY

 

  • 将mysql添加为服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqlCOPY

  • 设置开机启动
  • cd /etc/init.d
  • chmod 755 /etc/init.d/mysql
  • chkconfig --add mysql
  • chkconfig --level 345 mysql on

service mysql restartCOPY

  • 配置环境变量
  • echo 'export MYSQL_HOME=/usr/local/mysql' >> /etc/profile
  • echo 'export PATH=.:$MYSQL_HOME/bin:$PATH' >> /etc/profile

source /etc/profileCOPY

  • 使用默认密码登陆mysql

 

mysql -uroot -p ...COPY

  • 在MySQL8中第一次登陆需要重新设置root密码

ALTER user 'root'@'localhost' IDENTIFIED BY '123456';

  • 开启远程访问
  • CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password  BY '123456';
  • GRANT ALL ON *.* TO 'root'@'%';

FLUSH PRIVILEGES;COPY

2.1.10 安装Apache Httpd服务(master节点,本例中cdh00)

  • 安装

yum install httpd -yCOPY

  • 启动

systemctl start httpdCOPY

  • 设置开机自启

systemctl enable httpdCOPY

2.1.11 配置Cloudera Manager安装包yum(master节点,本例中cdh00)

  • 创建目录

mkdir -p /var/www/html/cloudera-repos/cm6COPY

  • 将下载好的rmp安装包上传到/var/www/html/cloudera-repos/cm6
  • 创建仓库
  • cd /var/www/html/cloudera-repos/cm6
  • yum install -y createrepo

createrepo .COPY

  • 创建repo文件(所有节点)

vim /etc/yum.repos.d/cloudera-manager.repoCOPY

[cloudera-manager]

name=Cloudera Manager 6.3.1

baseurl=http://cdh00/cloudera-repos/cm6

gpgkey=https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPM-GPG-KEY-cloudera

gpgcheck=1

enabled=1

autorefresh=0

type=rpm-mdCOPY

  • 清理并缓存(所有节点)
  • yum clean all

yum makecacheCOPY

 

2.1.12 安装 Cloudera Manager(master节点,本例中cdh00)

  • 执行安装

yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-serverCOPY

  • 安装完CM后/opt/ 下会出现cloudera目录

 

  • 上传CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel到/opt/cloudera/parcel-repo目录

 

  • 执行校验

sha1sum CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel | awk '{ print $1 }' > CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.shaCOPY

  • 执行CM初始化脚本

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql cmserver root 123456COPY

  • 启动服务

systemctl start cloudera-scm-server.serviceCOPY

  • 查看服务状态为启动

systemctl status cloudera-scm-server.serviceCOPY

 

2.2 其他服务安装

 

  • WELCOME 继续

 

  • Accept License 同意协议,继续

 

  • Select Edition 勾选免费版,继续

 

  • Welcome (Add Cluster - Installation) 创建集群

 

  • Cluster Basics 集群起名

 

  • Specify Hosts 添加节点

 

  • Select Repository 选择安装方式

 

  • JDK 安装选项

 

  • 提供 SSH 登录凭据。

 

  • Install Agents 安装agent

 

  • Install Parcels 安装数据包

 

  • Inspect Cluster 检查集群

 

原文地址:https://www.cnblogs.com/yaoyangding/p/14647176.html