一、了解CDH

在众多 Hadoop 版本中, CDH 是 Hadoop 众多分支中比较出色的版本, 它由Cloudera 发行和维护。CDH 基于 Apache 的 Hadoop 进行重新构建,提供了基于 Web 页面的群集部署和管理操作。

1.1 Hadoop

  • 属于开源软件,采用Apache 2.0许可协议
  • 官方版本称为社区版Hadoop

1.2 比较流行Hadoop版本

  • Apache Hadoop
    维护人员比较多,更新频率比较快,稳定性相对比较差
  • Cloudera Hadoop(CDH)
    Cloudera公司的发行版本,基于Apache Hadoop的二次开发,优化了组件兼容和交互接口、简化安装配置、增加Cloudera兼容特

1.3 Cloudera Hadoop(CDH)概述

  • Hadoop发行版除了社区的Apache hadoop外,Cloudera、Hortonworks、MapR、EMC、IBM、INTEL、华为等都提供自己的商业版本
  • CDH 基于 Apache 的 Hadoop 进行重新构建,提供了基于 Web 页面的群集部署和管理操作
  • CDH常用安装方式
    Cloudera Manager在线安装
    Parcel安装
    YUM安装·RPM安装

二、部署CDH

环境配置
  • 资源分配

    cdhmaster节点 至少2C6G

    cdhslave01/cdhslave02节点至少2C4G

  • 修改主机名

    hostnamectl set-hostname cdhmaster
    hostnamectl set-hostname cdhslave01
    hostnamectl set-hostname cdhslave02
    
  • 所有节点添加hosts解析

    cat >> /etc/hosts << EOF
    172.16.10.10 cdhmaster
    172.16.10.11 cdhslave01
    172.16.10.12 cdhslave02
    EOF
    
  • 关闭防火墙

    systemctl stop firewalld
    systemctl disable firewalld
    
  • 关闭内核安全机制

    sed -i "s/.*SELINUX=.\*/SELINUX=disabled/g" /etc/selinux/config
    
  • 时间同步

    yum -y install chrony
    systemctl start chronyd
    chronyc sources -v
    

2.1 安装JDK环境

  • 所有集群节点都要执行
# 解压
tar zxvf jdk-8u171-linux-x64.tar.gz -C /opt
# 改名
mv /opt/jdk1.8.0_171 /opt/jdk
# 修改环境变量
cat >> /etc/profile << EOF
export JAVA_HOME=/opt/jdk
export PATH=\$JAVA_HOME/bin:\$PATH
EOF
# 刷新环境变量
source /etc/profile
# 查看版本
java -version

2.2 配置免密登录

  • 仅在cdhmaster节点执行
  • cdhmaster 节点需要通过 SSH 对 cdhslave 节点进行管理,需要配置 SSH 免密码登录
ssh-keygen
ssh-copy-id cdhslave01
ssh-copy-id cdhslave02

2.3 交换分区和大页设置

  • 所有集群节点都要执行

  • 禁用交换分区和透明大页,否则会在安装配置 CDH 群集环境检测中报错

sysctl -w vm.swappiness=0
echo “vm.swappiness=0>> /etc/sysctl.conf
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never >/sys/kernel/mm/transparent_hugepage/enabled
echo "echo never > /sys/kernel/mm/transparent_hugepage/defrag" >> /etc/rc.d/rc.local
echo "echo never > /sys/kernel/mm/transparent_hughugepage/enabled" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

2.4 部署数据库

  • 仅在cdhmaster节点执行
#卸载mariadb
for i in $(rpm -qa | grep mariadb);do rpm -e ;done
# 安装mysql
yum -y install libaio
# 创建用户
useradd -s /sbin/nologin mysql
# 解压msyql安装
tar zxf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
# 移动安装路径
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
# 初始化数据库
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data
# 复制mysql服务启动文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 上传mysql的配置文件my.cnf(需要手写)文件并移动到/etc/下
mv my.cnf  /etc/
# 启动mysql
/etc/init.d/mysqld start
# 创建软链接,方便使用mysql命令
ln -s /usr/local/mysql/bin/mysql /usr/sbin/ 

# 登录mysql
mysql -uroot -p
# 修改密码
alter user 'root'@'localhost' identified by '123456';
# 创建数据库并授权
CREATE DATABASE hive DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
grant all privileges on *.* to 'cdh'@'localhost' identified by '123456' with grant option;
grant all privileges on *.* to 'cdh'@'%' identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'127.0.0.1' identified by '123456' with grant option;
grant all privileges on *.* to 'scm'@'127.0.0.1' identified by '123456' with grant option;
# 刷新权限
flush privileges;
#退出mysql
exit

2.5 部署CDH

2.5.1 安装依赖包

  • 所有集群节点都要执行
yum -y install psmisc libxslt libxslt-python perl

2.5.2 安装cloudera-manager

  • 仅在cdhmaster节点执行
tar zxf cloudera-manager-centos7-cm5.14.0_x86_64.tar.gz -C /opt/
# 改名
mv /opt/cm-5.14.0/ /opt/cm

2.5.3 安装JDBC驱动

  • 仅在cdhmaster节点执行
tar zxf mysql-connector-java-5.1.46.tar.gz
cd mysql-connector-java-5.1.46/
chmod +x mysql-connector-java-5.1.46-bin.jar
cp mysql-connector-java-5.1.46-bin.jar /opt/cm/share/cmf/lib/mysql-connector-java.jar
mkdir /usr/share/java
cp mysql-connector-java-5.1.46-bin.jar /usr/share/java/mysql-connector-java.jar

2.5.4 创建Cloudera Manager 用户

  • 所有集群节点都要执行
useradd --system --home=/opt/cm/run/cloudera-scm-server/ --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm

2.5.5 初始化 Cloudera Manager 数据库

  • 仅在cdhmaster节点执行
/opt/cm/share/cmf/schema/scm_prepare_database.sh mysql cm -h localhost -uroot -p'123456' scm '123456'

2.5.6 修改 Cloudera Manager 配置文件

  • 仅在cdhmaster节点执行
# 在cdhmaster主节点上修改 Cloudera Manager 的配置文件,将 server_host 设置项的值改为主节点 cdhmaster 主机的 IP 地址,让从节点去找主节点
vim /opt/cm/etc/cloudera-scm-agent/config.ini
server_host=172.16.10.10

# 将文件推送到slave节点,同步 Cloudera Manager 数据到其他节点
scp -r /opt/cm/ cdhslave01:/opt/
scp -r /opt/cm/ cdhslave02:/opt/

2.5.7 上传 Parcel 文件

  • 仅在cdhmaster节点执行
mv manifest.json CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 /opt/cloudera/parcel-repo/
# 改名
cd /opt/cloudera/parcel-repo/
mv CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha1 CDH-5.9.0-1.cdh5.9.0.p0.23-el7.parcel.sha

2.5.8 启动Cloudera Manager 服务

  • 仅在cdhmaster节点执行
#添加认证
echo "com.cloudera.cmf.db.useSSL=true" >> /opt/cm/etc/cloudera-scm-server/db.properties
# 创建cloudera-scm-server服务启动目录
mkdir /var/lib/cloudera-scm-server
# 启动
/opt/cm/etc/init.d/cloudera-scm-server start
/opt/cm/etc/init.d/cloudera-scm-agent start
# 查看端口(时间会比较长)
netstat -anpt | grep 7180
  • slave节点启动cloudera-scm-agent
  • 在slave节点执行
/opt/cm/etc/init.d/cloudera-scm-agent start
# 查看端口
netstat -anpt | grep -E '19001|9000'

2.6 安装配置CDH群集

2.6.1 使用 CDH 管理控制台

打开浏览器,并在地址栏输入“http://172.16.10.10:7180”,将登录 Cloudera Manager的 Web 管理控制台,默认的用户名和密码分别是 admin 和 admin
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 到这先不要点继续,回到虚拟机中,执行以下操作:
  • 在slave节点执行
# 解压mysql-connector
tar zxf mysql-connector-java-5.1.46.tar.gz
  • 在所有节点执行
cd mysql-connector-java-5.1.46/
cp mysql-connector-java-5.1.46-bin.jar /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java.jar
cp mysql-connector-java-5.1.46-bin.jar /opt/cloudera/parcels/CDH/lib/hadoop/lib/mysql-connector-java.jar
cp mysql-connector-java-5.1.46-bin.jar /var/lib/oozie/mysql-connector-java.jar
# 查看是否复制成功
ll /opt/cloudera/parcels/CDH/lib/hive/lib/mysql-connector-java.jar
ll /opt/cloudera/parcels/CDH/lib/hadoop/lib/mysql-connector-java.jar
ll /var/lib/oozie/mysql-connector-java.jar
  • 然后回到浏览器点击 继续
    在这里插入图片描述

2.6.2 群集设置

在这里插入图片描述

  • 选择自定义服务,选择HDFS/Hive/Oozie/YARN
    在这里插入图片描述
  • 选择之前已经创建的数据库,输入用户和密码,并测试数据库连接,hive
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 安装完成后需要回到master节点安装kafka

2.6.3 配置并添加 Kafka 服务

  • 上传 Kafka 介质

  • 在master节点执行

mv KAFKA-1.2.0.jar /opt/cloudera/csd
mv KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel /opt/cloudera/parcel-repo
mv KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.sha1 /opt/cloudera/parcel-repo/KAFKA-2.0.2-1.2.0.2.p0.5-el7.parcel.sha
  • 分配、激活 Parcel
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 先添加zookeeper服务,在添加ksfka服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 添加kafka服务
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐