目录

一、安装前准备

1.1、官网教程

1.2、安装环境

1.3、安装包准备

1.3.1、下载CM安装包

1.3.2、下载 CDH 安装包

二、环境配置

2.1、在VMWare Workstation Pro下安装Centos7.6虚拟机

2.2、配置cdh100的网络

2.2.1、将虚拟机网络配置设置为NAT模式​​​​​​​

2.2.2、修改hostname

2.2.3、配置静态ip

2.2.4、验证网络通畅

2.2.5、修改hosts文件

2.2.6、永久关闭防火墙

2.3、关闭 selinux

2.4、安装JDK 1.8

2.5、克隆虚拟机

2.6、配置cdh101、cdh102

2.7、免密码SSH

2.8、部署 NTP 服务器进行时间同步

2.9、MySQL 5.7安装

2.10、配置MySQL JDBC Driver

三、CM安装

3.1、配置本地CM仓库

3.2、配置本地CDH仓库

3.3、构建yum源

3.4、在MySQL创建数据库

3.5、安装 CM Server 和 CM Agent

3.6、建立CM的数据库

3.7、启动 CM Server

3.8、访问CM

四、CDH安装

4.1、用户登录

4.2、选择版本

4.3、群集安装

4.4、群集设置


一、安装前准备

1.1、官网教程

文档地址:

https://docs.cloudera.com/documentation/enterprise/6/6.3/topics/install_cm_cdh.html

1.2、安装环境

主机名

操作系统

角色

IP地址

cdh100

Centos 7.6

主节点

192.168.3.100

cdh101

Centos 7.6

从节点

192.168.3.101

cdh102

Centos 7.6

从节点

192.168.3.102

软件名

软件版本

CM

6.3.1

CDH

6.3.2

VM Workerstation Pro

15.0.0

MySQL

5.7.30

MySQL JDBC Driver

5.1.27

JDK

1.8.144

1.3、安装包准备

1.3.1、下载CM安装包

下载地址:

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/

下载安装包:

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm

https://archive.cloudera.com/cm6/6.3.1/redhat7/yum/RPMS/x86_64/oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

另外需要下载 allkeys.asc

https://archive.cloudera.com/cm6/6.3.1/allkeys.asc

1.3.2、下载 CDH 安装包

下载地址:

https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1 https://archive.cloudera.com/cdh6/6.3.2/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256 https://archive.cloudera.com/cdh6/6.3.2/parcels/manifest.json

二、环境配置

2.1、在VMWare Workstation Pro下安装Centos7.6虚拟机

先安装一台Centos7.6

名字为:cdh100

内存为:16G

硬盘大小:80G

图形化桌面:GONE

2.2、配置cdh100的网络

2.2.1、将虚拟机网络配置设置为NAT模式

2.2.2、修改hostname

查看当前主机名:

hostname

修改主机名为cdh100:

hostnamectl set-hostname cdh100

2.2.3、配置静态ip

查看ip:

ip addr

我们将要修改的ip地址是名为ens33的ip地址:

vim /etc/sysconfig/network-scripts/ifcfg-ens33

将其修改为:

TYPE="Ethernet" 
PROXY_METHOD="none" 
BROWSER_ONLY="no" 
BOOTPROTO="static" 
DEFROUTE="yes" 
IPV4_FAILURE_FATAL="no" 
IPV6INIT="yes" 
IPV6_AUTOCONF="yes" 
IPV6_DEFROUTE="yes" 
IPV6_FAILURE_FATAL="no" 
IPV6_ADDR_GEN_MODE="stable-privacy" 
NAME="ens33" UUID="90da2d6f-a610-487e-8b04-b0555c26150a" 
DEVICE="ens33" 
ONBOOT="yes" 
IPADDR=192.168.3.100 
NETMASK=255.255.255.0 
GATEWAY=192.168.3.2 
DNS1=114.114.114.114

注意:

必须将BOOTPROTO修改为static

GATEWAY需与虚拟机的网关ip一致

IPADDR需与虚拟机的子网ip在同一个网段

2.2.4、验证网络通畅

重启网络:

systemctl restart network.service service network restart

Ping测:

ping www.baidu.com

2.2.5、修改hosts文件

vim /etc/hosts

添加如下内容:

192.168.3.100  cdh100 
192.168.3.101  cdh101 
192.168.3.102  cdh102

2.2.6、永久关闭防火墙

systemctl stop firewalld 
systemctl disable firewalld

2.3、关闭 selinux

临时关闭 selinux:

setenforce 0

永久关闭 selinux:

sed -i "s/^SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

2.4、安装JDK 1.8

在/opt目录下创建module、software文件夹

cd /opt 
mkdir module 
mkdir software

查询是否安装Java软件:

rpm -qa | grep java

如果安装的版本低于1.7,卸载该JDK:

sudo rpm -e 软件包

查看JDK安装路径:

which java

将JDK导入到opt目录下面的software文件夹下面

在Linux系统下的opt目录中查看软件包是否导入成功

cd software/ ls

解压JDK到/opt/module目录下

tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

配置JDK环境变量

pwd

打开/etc/profile文件

vim /etc/profile

在profile文件末尾添加JDK路径,保存后退出

#JAVA_HOME 
export JAVA_HOME=/opt/module/jdk1.8.0_144 
export PATH=$PATH:$JAVA_HOME/bin

让修改后的文件生效

source /etc/profile

测试JDK是否安装成功

java -version

注意:重启(如果java -version可以用就不用重启)

2.5、克隆虚拟机

在cdh100的关机状态下克隆

选择创建链接克隆

克隆两台,其名字分别为cdh101、cdh102

2.6、配置cdh101、cdh102

依照《配置cdh100》的步骤,依次将其配置完成

2.7、免密码SSH

1、各节点执行ssh-keygen -t rsa命令后,连续回车生成/root/.ssh/id_rsa.pub文件;

2、各个节点执行cat /root/.ssh/id_rsa.pub命令,将内容拷贝汇总到一个文本后,将本文本内容拷贝到各节点的/root/.ssh/authorized_keys中;

3、每个节点分别ssh cdh100~cdh102,选择yes后,确保能够无密码跳转到目的节点。

2.8、部署 NTP 服务器进行时间同步

安装 ntp:

yum install -y ntp

 启动ntp:

systemctl start ntpd

 开机自动启动:

systemctl enable ntpd

 查看ntp状态:

systemctl status ntpd

cdh100配置:

编辑文件:

vim /etc/ntp.conf

 写入以下信息:

# 日志配置
logfile /var/log/ntpd.log
 
# 允许网段内客户端连接此服务器同步时间,但是拒绝让他们修改服务器上的时间
restrict 192.168.3.0 mask 192.168.3.255 nomodify notrap
 
# 配置时间服务器(阿里云)
https://www.ntppool.org/zone/asia
 
server ntp1.aliyun.com
server ntp2.aliyun.com
server ntp3.aliyun.com
 
# 在 /ntp.conf 中定义的 server 都不可用时,将使用 local 时间作为 ntp 服务提供给 ntp 客户端。
# 建议配置,否则 ntp 服务器无法与公网 ntp 服务器同步时,其客户端也会无法同步
server 127.0.0.1
fudge 127.0.0.1 stratum 10

cdh101、cdh102配置:

编辑文件:

vim /etc/ntp.conf

 写入以下信息:

# 日志配置
logfile /var/log/ntpd.log
 
# 配置时间服务器
server 192.168.3.100

2.9、MySQL 5.7安装

1、检查没有安装过mysql或mariadb

rpm -qa | grep -i mysql
rpm -qa | grep -i mariadb

返回空值的话,就说明没有安装 MySQL

注意:在新版本的CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL

2、卸载已安装的 Mariadb 数据库(如果有安装时才进行卸载)

rpm -e postfix-2:2.10.1-7.el7.x86_64
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64
//rpm -e [安装包名]

3、再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成

rpm -qa | grep -i mysql 
rpm -qa | grep -i mariadb

4、安装libaio、perl、net-tools库,要不就会报错

yum -y install libaio perl net-tools

此步骤需联网

5、安装MySQL

建个目录存放解压文件

mkdir -p /opt/module/MySQL-5.7.30

解压缩

tar -xvf mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar -C /opt/module/MySQL-5.7.30

进入目录准备安装

cd /opt/module/MySQL-5.7.30

开始安装,-ivh 其中i表示安装,v表示显示安装过程,h表示显示进度

必须依次安装,因为其中有依赖,不然各种莫名的bug

rpm -ivh mysql-community-common-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.30-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm

6、启动MySQL

启动mysqld服务

systemctl start mysqld

配置mysqld开机自动启动

systemctl enable mysqld

下面列出其余systemctl命令(不用运行)

查看mysqld服务状态

systemctl status mysqld

停止mysqld服务

systemctl stop mysqld

重新启动mysqld服务

systemctl restart mysqld

配置mysqld开机不自动启动

systemctl disable mysqld

7、登录MySQL修改密码

查询生成的临时密码

grep "password" /var/log/mysqld.log

登录mysql

mysql -uroot -p 
//Enter password: (输入查询到的临时密码)

因为是练习环境,所以想把密码改的简单点

设置密码校验策略(0 or LOW),要不密码太LOW不让你过

set global validate_password_policy=0;

设置密码校验长度,要不密码太短不让你过

set global validate_password_length=6;

这密码有够LOW了,但我就是想要

set password = password("123456");

可以退出,试试用新密码重新登录

quit

8、配置远程连接

配置只要是root用户+密码,在任何主机上都能登录MySQL数据库

进入MySQL,用新密码登进去试试

mysql -uroot -p

显示数据库

show databases;

使用mysql数据库

use mysql;

展示mysql数据库中的所有表

show tables;

展示user表的结构

desc user;

修改user表,把Host表内容修改为%

update user set host='%' where host='localhost';

删除root用户的其他host

delete from user where Host='hadoop100';
delete from user where Host='127.0.0.1';
delete from user where Host='::1';

刷新

flush privileges;

退出

quit;

2.10、配置MySQL JDBC Driver

注意:默认位置 /usr/share/java/ ,默认驱动名 mysql-connector-java.jar

1、创建文件夹:

mkdir -p /usr/share/java/

2、 进入 MySQL 驱动文件目录:

cd /usr/share/java/

3、 将安装包mysql-connector-java-5.1.27-bin.jar上传到本目录下

4、复制并且重命名

cp mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar

三、CM安装

3.1、配置本地CM仓库

1、创建本地 CM 仓库文件夹

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

 2、上传下载好的 CM 安装包放入 /var/www/html/cloudera-repos/cm6/ 目录

 3、安装 httpd 和 createrepo

yum -y install httpd createrepo

 4、启动 httpd 服务并设置为开机自启动

systemctl start httpd && systemctl enable httpd

 5、生成 RPM,注意最后必须有 .

cd /var/www/html/cloudera-repos/cm6/ && createrepo .

 6、通过浏览器访问了:默认端口 80

http://192.168.3.100/cloudera-repos/cm6/

3.2、配置本地CDH仓库

1、创建本地 CDH 仓库文件夹

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

 2、上传下载好的 CDH 安装包放入 /var/www/html/cloudera-repos/cdh6/ 目录

 3、生成 RPM,注意最后必须有 .

cd /var/www/html/cloudera-repos/cdh6/ && createrepo .

 4、通过浏览器访问了:默认端口80

http://192.168.3.100/cloudera-repos/cdh6/

3.3、构建yum源

cdh100、cdh101、cdh102都需要配置

进入配置文件:

vim /etc/yum.repos.d/cloudera-repo.repo

拷贝如下内容

[cloudera-repo]
name=cloudera-repo
baseurl=http://192.168.3.100/cloudera-repos/cm6/
enabled=1
gpgcheck=0

3.4、在MySQL创建数据库

Service

Database

User

Cloudera Manager Server

scm

scm

Activity Monitor

amon

amon

Reports Manager

rman

rman

Hue

hue

hue

Hive Metastore Server

metastore

hive

Sentry Server

sentry

sentry

Cloudera Navigator Audit Server

nav

nav

Cloudera Navigator Metadata Server

navms

navms

Oozie

oozie

oozie

1、进入MySQL

mysql -uroot -p

2、初始化

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'Scm@#123';
 
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'Amon@#123';
 
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'Rman@#123';
 
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'Hue@#123';
 
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'Metastore@#123';
 
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'Sentry@#123';
 
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'Nav@#123';
 
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'Navms@#123';
 
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'Oozie@#123';

3、刷新数据库

flush privileges;

如果没有创建成功,就删除后重来:

drop database scm;
drop database amon;
drop database rman;
drop database hue;
drop database metastore;
drop database sentry;
drop database nav;
drop database navms;
drop database oozie;
flush privileges;

3.5、安装 CM Server 和 CM Agent

cdh100安装CM Server:

yum install cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server

报错:

错误:软件包:MySQL-python-1.2.5-1.el7.x86_64 (base)
          需要:libmysqlclient.so.18()(64bit)
错误:软件包:2:postfix-2.10.1-9.el7.x86_64 (base)
          需要:libmysqlclient.so.18(libmysqlclient_18)(64bit)
错误:软件包:2:postfix-2.10.1-9.el7.x86_64 (base)
          需要:libmysqlclient.so.18()(64bit)
错误:软件包:MySQL-python-1.2.5-1.el7.x86_64 (base)
          需要:libmysqlclient.so.18(libmysqlclient_18)(64bit)
 您可以尝试添加 --skip-broken 选项来解决该问题
 您可以尝试执行:rpm -Va --nofiles --nodigest

原因是在安装过程中,我们会卸载centos自带的mariadb安装自己的MySQL,这样就会报上面这个错

解决办法是下载Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm 包并安装就可以了

rpm -ivh Percona-XtraDB-Cluster-shared-55-5.5.37-25.10.756.el6.x86_64.rpm

cdh101、cdh102安装CM Agent

yum install cloudera-manager-daemons cloudera-manager-agent

  

3.6、建立CM的数据库

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm

如果报错:

[main] DbCommandExecutor    INFO  Unable to find JDBC driver for database type: MySQL
[main] DbCommandExecutor    ERROR JDBC Driver com.mysql.jdbc.Driver not found.
[main] DbCommandExecutor    ERROR Exiting with exit code 3

请再次检查MySQL的驱动是否安放正确:

将mysql-connector-java-5.1.27-bin.jar改名为mysql-java-connector.jar放到指定目录/usr/share/java/下

或者手动将驱动包复制到Executing:  /usr/java/jdk1.8.0_181-cloudera/bin/java -cp :命令后每个文件夹中,如/opt/cloudera/cm/lib目录

3.7、启动 CM Server

1、启动服务

systemctl start cloudera-scm-server

 2、查看服务的状态

systemctl status cloudera-scm-server

 3、查看系统日志

journalctl -xe

 4、默认日志存放地方

/var/log/cloudera-scm-server

3.8、访问CM

启动了CM Server后,需要等待几分钟,后可以浏览器访问:

http://192.168.3.100:7180

四、CDH安装

4.1、用户登录

用户名:admin ,密码:admin

​​​​​​​

4.2、选择版本

1、欢迎页面

2、接受最终用户许可条款和条件

3、选择免费版本

4.3、群集安装

1、欢迎页面

2、群集名称

3、扫描主机,输入主机名称点击搜索

4、选择存储库

自定义存储库:

http://192.168.3.100/cloudera-repos/cm6/

远程 Parcel 存储库 URL : 

http://192.168.3.100/cloudera-repos/cdh6/

​​​​​​​​​​​​​​保存更改

5、JDK 安装选项,跳过不需要勾选

​​​​​​​6、提供 SSH 登录凭据

7、Install Agents ,自动安装

8、Install Parcels,自动安装

9、Inspect Cluster检查

先点击 Inspect Network Performance 再点击 Inspect Hosts

警告,点击 显示检查器结果

1、已启用透明大页面压缩,可能会导致重大性能问题。请运行“echo never > /sys/kernel/mm/transparent_hugepage/defrag”和“echo never > /sys/kernel/mm/transparent_hugepage/enabled”以禁用此设置,然后将同一命令添加到 /etc/rc.local 等初始化脚本中,以便在系统重启时予以设置

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

2、Cloudera 建议将 /proc/sys/vm/swappiness 设置为最大值 10。当前设置为 30。使用 sysctl 命令在运行时更改该设置并编辑 /etc/sysctl.conf,以在重启后保存该设置。您可以继续进行安装,但 Cloudera Manager 可能会报告您的主机由于交换而运行状况不良。

echo 'vm.swappiness=10'>> /etc/sysctl.conf sysctl -p

点击重新运行

4.4、群集设置

1、Select Services

2、自定义角色分配

3、数据库设置

Databases for Cloudera Software 参考如下:

报错:

JDBC driver cannot be found. Unable to find the JDBC database jar on host : cdh102.
Unexpected error. Unable to verify database connection.

进入到cdh100,将MySQL驱动分别复制到cdh101和cdh102:

scp mysql-connector-java-5.1.27-bin.jar root@cdh101:/opt/software/
scp mysql-connector-java-5.1.27-bin.jar root@cdh102:/opt/software/

进入到cdh101、cdh102,配置MySQL安装包:

cp /opt/software/mysql-connector-java-5.1.27-bin.jar /opt/cloudera/cm/lib
cp /opt/software/mysql-connector-java-5.1.27-bin.jar /usr/share/java/mysql-connector-java.jar

点击测试连接

4、审核更改,默认设置

5、命令详细信息

首次运行hdfs报错解决:(会同时报错Hive和Hue的错误,但我把HDFS这个错处理成功后就没有再报)

是由于之前初始化 namenode 在 /dfs/nn 留下了残留数据(失效数据),从而影响再次初始化

解决方法1:清空残留数据后,重新初始化

rm -rf /dfs/nn
rm -rf /dfs/dn

解决方法2:手动初始化NameNode

hdfs namenode -format
sudo -u hdfs hdfs namenode -format

之后再次报此错,但重新运行后就没有报错了

6、汇总

​​​​​​​至此,CM和CDH已经全部安装完毕!!!​​​​​​​

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐