GDH6.0.0安装步骤

一、概述

CDH,全称Cloudera’s Distribution, including Apache Hadoop。是Hadoop众多分支中对应中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建,提供了Hadoop的核心(可扩展存储、分布式计算),最为重要的是提供基于web的用户界面。

CDH的优点:版本划分清晰,更新速度快,支持Kerberos安全认证,支持多种安装方式(如Yum、rpm等)。

CDH分为Cloudera Manager管理平台和CDH parcel(parcel包含各种组件的安装包)。这里采用CDH6.0.0。

二、软件包下载

1.下载CM

Cloudera Manger下载地址为https:///cm6/6.0.0/redhat7/yum/RPMS/x86_64/

cdh 可以用docker来部署吗 cdh 安装_spark

2.下载CDH

CDH6.0.0安装包地址为:https:///cdh6/6.0.0/parcels/

cdh 可以用docker来部署吗 cdh 安装_cloudera_02

3.本地上传到linux

直接通过wget 下载cdh文件到linux服务器,速度很慢,这里先下载到本地,然后在本地everything安装一个http服务,通过wget在服务器上连接本地的http服务上传cdh需要安装的文件

步骤如下:

  • 先将cm安装的rpm文件和parcel文件下载到本地
  • 下载并安装everything软件
  • everything下载地址 https://www.voidtools.com/zh-cn/
  • 安装,一直next
  • 安装完毕后再任务栏中找到图标,右键,选择“选项”
  • 在弹出来的对话框中选择http服务器
  • 设置服务器用户名和密码,并且确定
  • win+R运行cmd , 输入ipconfig,查看IPv4 地址
  • 打开浏览器,在浏览器中输入上一步查询出来的地址
  • 找到需要上传的文件
  • 右键复制链接
  • 进入linux服务器,通过wget 命令上传安装文件,格式
wget http文件的连接地址 --user 用户名 --password 用户密码

三、安装mysql

1.安装mysql前,需将系统自带的mariadb-lib卸载
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
rpm -qa|grep mariadb
2.解压安装包:新建一个目录将安装包上传到该目录下然后解压
tar -xvf mysql-5.7.10-1.el7.x86_64.rpm-bundle.tar
3.安装
  • 安装 mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-common-5.7.10-1.el7.x86_64.rpm
  • 安装mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.10-1.el7.x86_64.rpm
  • 安装mysql-community-libs-compat-5.7.10-1.el7.x86_64.rpm
rpm -ivh  mysql-community-libs-compat-5.7.10-1.el7.x86_64.rpm
  • 安装mysql-community-client-5.7.10-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.10-1.el7.x86_64.rpm
  • 安装mysql-community-server-5.7.26-1.el7.x86_64.rpm
    注意:在安装之前需要检查libaio是否,我这个是已经有了,若没有需要在网上下载
    查询是否安装:rpm -qa|grep libaio
rpm -ivh mysql-community-server-5.7.10-1.el7.x86_64.rpm

如果提示缺少如下错误:

cdh 可以用docker来部署吗 cdh 安装_cdh 可以用docker来部署吗_03


安装net-tools.x86_64,perl.x86_64依赖

4.初始化数据库
mysqld --initialize
cat /var/log/mysqld.log   查看/var/log/mysqld.log生成随机密码
5.更改mysql数据库目录的所属用户及其所属组
chown mysql:mysql /var/lib/mysql -R
6.启动mysql
systemctl start mysqld.service
7.查看状态
systemctl status mysqld.service
8.登录到mysql,更改root用户的密码
查看初始密码:grep 'temporary password' /var/log/mysqld.log ,注意密码前的空格
登录:mysql -uroot -p
复制密码输入
更改密码为123456789
set password=password('123456789');

cdh 可以用docker来部署吗 cdh 安装_hadoop_04

四、安装cloudera-manager-server

1.配置hosts(每台节点)
例如:
192.130.24.12 hadoop001
192.130.24.13 hadoop002
192.130.24.14 hadoop003
2.配置免密登录ssh(主节点 -> 从节点)
//生成公私秘钥
ssh-keygen -t rsa
//将公钥拷贝到其他节点
ssh-copy-id  root@ip
3.配置时钟同步(每台节点)
  • cdh集群的每一台服务都写安装ntp服务
yum -y install ntp
  • 修改主节点ntp的配置
vim /etc/ntp.conf
      注释掉
      #server 0.centos.pool.ntp.org iburst
      #server  iburst
      #server 2.centos.pool.ntp.org iburst
      #server 3.centos.pool.ntp.org iburst
      添加一安装有ntp服务的server,如果没有其他ntp服务可指向阿里云的时钟同步server  
      server 10.10.44.201

cdh 可以用docker来部署吗 cdh 安装_cloudera_05

  • 修改从节点ntp配置
vim /etc/ntp.conf
      注释掉
      #server 0.centos.pool.ntp.org iburst
      #server  iburst
      #server 2.centos.pool.ntp.org iburst
      #server 3.centos.pool.ntp.org iburst
      添加主节点的ip 
      server 主节点ip
  • 各个节点启动ntp服务
systemctl start ntpd
  • 设置成开机启动
systemctl enable ntpd.service
  • 查看同步状态
ntpdc -np

cdh 可以用docker来部署吗 cdh 安装_cdh 可以用docker来部署吗_06

ntpstat

cdh 可以用docker来部署吗 cdh 安装_spark_07

4.修改Linux swappiness参数(每台节点)
echo 0 >   /proc/sys/vm/swappiness

`

5.关闭selinux(每台节点)
cd /etc/selinux
临时生效 setenforce 0
开机重启永久生效:vi /etc/selinux/config,将SELINUX设置成disabled

cdh 可以用docker来部署吗 cdh 安装_spark_08

6.禁用透明页(所有节点)
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled
7.关闭防火墙(每台节点)
systemctl disable firewalld
8.安装jdk
rpm -ivh oracle-j2sdk1.8-1.8.0+update141-1.x86_64.rpm
9.创建jdk软连接
ln -s /usr/java/jdk1.8.0_141-cloudera jdk
10.修改环境变量
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
11.添加mysql的jdbc驱动
  • 创建 mkdir -p /usr/java/share 目录
mkdir -p /usr/share/java
  • 拷贝mysql驱动到/usr/share/java
  • 修改驱动包名为mysql-connector-java.jar
mv mysql-connector-java-5.1.48.jar mysql-connector-java.jar

注意:这步不能省,驱动的版本不能太低

12.安装httpd
yum install httpd
systemctl start httpd
systemctl enable httpd.service 设置httpd服务开机自启
13.安装createrepo
yum install createrepo
14.配置Cloudera Manager包yum源(manager节点)
  • 创建Coudera Manager软件仓库
mkdir -p /var/www/html/cloudera-repos/
  • 将下的cm包移到/var/www/html/cloudera-repos/ 这目录下
mv /data/cdh/cm6 /var/www/html/cloudera-repos/
  • 创建yum源仓库元文件
cd /data/cdh/cm6 /var/www/html/cloudera-repos/
createrepo .		//后面的点不能省,表示当前路径

注意:完成了上步,可以通过浏览器http:// ip/cloudera-repos/cm6查看仓库中的文件

cdh 可以用docker来部署吗 cdh 安装_大数据_09

  • 创建cm的repo文件
cd /etc/yum.repos.d
vim cloudera-manager.repo
  • 添加cloudera-manager.repo的信息
[cloudera-manager]
      name=Cloudera Manager 6.0.1
      baseurl=http://192.168.66.61/cloudera-repos/cm6
      gpgcheck=0
      enabled=1
  • 刷新yum缓存
yum clean all
yum makecache
  • 通过yum安装 cloudera Manager
yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
  • 安装完毕,进入到 /opt,找到生成的cloudera 目录
  • cdh 可以用docker来部署吗 cdh 安装_cdh 可以用docker来部署吗_10

  • 进入 cloudera目录,里面包含四个目录
  • cdh 可以用docker来部署吗 cdh 安装_大数据_11

  • 拷贝cdh的parcel文件至parcel-repo目录下
  • cdh 可以用docker来部署吗 cdh 安装_cloudera_12

  • 生成.sha文件
sha1sum CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel | awk '{ print $1}' > CDH-6.0.0-1.cdh6.0.0.p0.537114-el7.parcel.sha

cdh 可以用docker来部署吗 cdh 安装_hadoop_13

  • 修改目录文件所有者权限
chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*
  • 创建CDH需要使用的数据库
例子:create database scm default charset utf8 collate utf8_general_ci;

cdh 可以用docker来部署吗 cdh 安装_cloudera_14

  • 给数据库授权,设置相应的账号,密码
例子:grant all on scm.* to 'scm'@'%' identified by '123456'; 这里是引用

cdh 可以用docker来部署吗 cdh 安装_spark_15

  • 在mysql预处理cm数据
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm 12345678

注意:可以执行/opt/cloudera/cm/schema/scm_prepare_database.sh --help 来选择参数

cdh 可以用docker来部署吗 cdh 安装_hadoop_16


处理成功会有如下结果:

cdh 可以用docker来部署吗 cdh 安装_spark_17

  • 启动cloudera-scm-server
//启动
systemctl start cloudera-scm-server
//查看日志
tail -200f /var/log/cloudera-scm-server/cloudera-scm-server.log

启动成功会出现如下信息:

cdh 可以用docker来部署吗 cdh 安装_spark_18

  • 查看web界面,默认端口为7180
初始账号密码:admin/admin
  • 设置时区命令
    查看机器节点的时区,各个节点的时区需要一致
timedatectl set-timezone 'Asia/Shanghai'

cdh 可以用docker来部署吗 cdh 安装_cdh 可以用docker来部署吗_19

五、Cloudera Manager集群安装

1.cloudera-scm-server启动5后通过web页面登录,登录的初始账号密码是admin admin

cdh 可以用docker来部署吗 cdh 安装_cdh 可以用docker来部署吗_20

2.一直选择右下角的继续按钮,版本选择免费

cdh 可以用docker来部署吗 cdh 安装_spark_21


cdh 可以用docker来部署吗 cdh 安装_cdh 可以用docker来部署吗_22


cdh 可以用docker来部署吗 cdh 安装_cdh 可以用docker来部署吗_23

3.Cloudera Manager Agent安装的存储选择之前安装好的httpd服务提供的仓库

cdh 可以用docker来部署吗 cdh 安装_spark_24

4.cdh选择6.0.0

cdh 可以用docker来部署吗 cdh 安装_hadoop_25

5.安装parcel

cdh 可以用docker来部署吗 cdh 安装_cdh 可以用docker来部署吗_26

6.检测主机配置

cdh 可以用docker来部署吗 cdh 安装_spark_27


注:针对Psycopg2 升级请参考标题六中的升级操作

7.勾选需要安装的服务:

cdh 可以用docker来部署吗 cdh 安装_cloudera_28

8.勾选依赖

cdh 可以用docker来部署吗 cdh 安装_大数据_29

9.勾选安装应用的节点

cdh 可以用docker来部署吗 cdh 安装_大数据_30

10.选择好了节点,点击确定,安装并且启动应用
11.最后安装完应用后的界面

cdh 可以用docker来部署吗 cdh 安装_cloudera_31

注:安装完应用有些应用有黄色的警告,这个和集群的配置,网络,资源的分配等有关,这个需要结合自身的应用在进行调整

六、注意点

1.CDH的各个进程 通过supervisord 进行自动容灾重启管理,通过kill -9 杀不掉cdh组件的相关进程,需要先关掉supervisord 程序 , supervisord 相对于cdh 其他进程的父进程,关掉了这个进程,其他进程也就关掉了

systemctl stop supervisord

注意:通过/usr/lib/systemd/system/目录可以查看相关这与服务的启动脚本配置有关 .service配置

2.Psycopg2 升级

Starting with CDH 6, PostgreSQL-backed Hue requires the Psycopg2 version to be at least 2.5.4, see the documentation for more information. This warning can be ignored if hosts will not run CDH 6, or will not run Hue with PostgreSQL. The following hosts have an incompatible Psycopg2 version of ‘2.5.1’: 查看详细信息szsjhl-ts-crm-spark-dev-10-9-251-[121, 123]-belle.lan; szsjhl-ts-crm-spark-dev-172-20-32-116-belle.lan

升级步骤:

rpm -qa | grep postgresql
yum install postgresql-devel
yum install gcc libffi-devel python-devel openssl-devel -y
pip install --upgrade psycopg2

3.NFS Gateway 启动失败

cdh 可以用docker来部署吗 cdh 安装_spark_32


cdh 可以用docker来部署吗 cdh 安装_spark_33

解决:安装 rpcbind服务

yum -y install rpcbind
service rpcbind start

七、卸载

集群安装后会产生很多文件夹和软链接,因此下载是需要按照规范一步步进行

待续…