cdh亲测2022/11/12

  • Post author:
  • Post category:其他


一、Hadoop大数据平台

1、Hadoop 发行版

(1) 完全开源的原生的Apache Hadoop

(2) Cloudera与Hortonworks公司的CDH和HDP:在Cloudera和Hortonworks合并后,Cloudera公司推出了新一代的数据平台产品CDP Data Center(以下简称为CDP),从2021年1月31日开始,所有Cloudera软件都需要有效的订阅,并且只能通过付费墙进行访问。也就是说CDH各版本都不能免费获取了。

(3) Ambari + HDP (在Cloudera和Hortonworks合并后,HDP也不能免费使用了)

(4) MapR公司的MapR(已经被HPE收购)

(5) AWS亚马逊的EMR

(6) 国内华为的fusioninsight

(7) 国内星环科技的TDH

CDH (全称:Cloudera’s Distribution Including Apache Hadoop)是由 Cloudera 公司发行的hadoop 软件包,由Cloudera Manager安装监控管理工具和CDH大数据软件包(里面包含了hadoop、hdfs、yarn、hive、spark等许多大数据套件)组成。

2、CM和CDH简介

在安装之前先要梳理一下 CM(Cloudera Manager)和 CDH(Cloudera Distribution Hadoop)的区别:

CDH CDH 是由 Cloudera 公司发行的一套 hadoop 软件包,里面包含了hadoop、hdfs、yarn、hive、spark等等一系列稳定的、版本兼容的大数据套件。

CM CM 也是 Cloudera 公司开发的一套用于管理和监控 CDH 集群的软件,通过 CM 提供的 web 管理页面操作就可以轻松的管理和监控CDH 集群环境。

3、使用CM+CDH的原因

当集群数量有上百台或上千台机器时使用CDH等工具可以快速的安装和扩容

CDH曾经开源免费,从网上可以找到免费的软件安装包

二、安装准备

1、服务器准备

准备好 N 台服务器,我这里用了 3 台机器,分别如下:

ip 名称 内存大小
172.16.40.170 cdh1 16G
172.16.40.171 cdh2 8G
172.16.40.172 cdh3 8G

2、 修改IP和主机名

选择centos7来进行集群部署,克隆三台虚拟机 全部是在root 权限下执行

1 修改主机名

hostnamectl set-hostname cdh1

2 reboot 重启虚拟机

3 重新登录root 用户

查看IP地址和主机名是否更改成功

4 其他两台主机重复上面操作。

3、搭建CM本地YUM仓库

这里(在master.bigdata主机上)搭建本地YUM源作为离线安装CM的仓库,让其他主机也使用该源下载CM相关的软件:

(1) 安装httpd和createrepo

systemctl stop firewalld
yum install -y httpd createrepo
systemctl start httpd && systemctl enable httpd

(2) 将从网盘上下载的软件包上传得到/var/www/html/目录内:

[root@localhost html]# pwd

/var/www/html

[root@localhost html]# tree .

.

└── CM6.3.1

│ ├── allkeys.asc

│ ├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm

│ ├── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm

│ └── oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

├── CDH6.3.2

│ ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel

│ ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1

│ └── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256

1 directory, 5 files

[root@localhost html]#

(3) 配置CM本地Yum源

createrepo /var/www/html/CM6.3.1/
createrepo /var/www/html/CDH6.3.2/

然后,可通过浏览器访问:

http://192.168.122.101/CM6.3.1/



http://192.168.122.101/CDH6.3.2/

环境准备

[root@cdh1 ~]# vim /etc/sysconfig/network

# Created by anaconda
NETWORKING=yes
HOSTNAME=server4

设置/etc/hosts

[root@cdh1 ~]# vi /etc/hosts

#127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
#::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

172.16.40.170  cdh1
172.16.40.171  cdh2 
172.16.40.172  cdh3

免密登陆

2执行 ssh-keygen -t rsa 直接回车回车就OK

3,每台服务器都要操作三遍

cd .ssh
ssh-copy-id 172.16.40.170
ssh-copy-id 172.16.40.171
ssh-copy-id 172.16.40.172      

 执行上面两行  就会将你生成的秘钥(公钥和私钥) 同时拷贝到你想要联通的其他的服务器上包括自己的服务器,并自动放入该目录下。

2、软件包准备

(1) 下载如下软件安装包:

JDK1.8安装包

MySQL5.7安装包

CM6.3.1安装包

CDH6.3.2软件包

(2) 下载地址:

百度云盘链接:

https://pan.baidu.com/s/1OKV2Y-YtB7Kqa51SqZGn8w

提取码:z1an

腾讯云盘链接:

https://share.weiyun.com/MxXFgL8U

另外,发现镜像站

http://ro-bucharest-repo.bigstepcloud.com/cloudera-repos/

提供了一些CDH软件包,但缺少allkeys.asc文件。

(3) 下载的软件包内容如下:

[root@localhost cdh6.3.2]# tree .

.

├── CDH6.3.2

│ ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel

│ ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1

│ ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256

│ └── manifest.json

├── CM6.3.1

│ ├── allkeys.asc

│ ├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm

│ ├── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm

│ └── oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

├── JDK1.8

│ └── jdk-8u261-linux-x64.rpm

└── MySQL5.7

├── mysql-community-client-5.7.16-1.el7.x86_64.rpm

├── mysql-community-common-5.7.16-1.el7.x86_64.rpm

├── mysql-community-libs-5.7.16-1.el7.x86_64.rpm

├── mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm

└── mysql-community-server-5.7.16-1.el7.x86_64.rpm

3、搭建CM本地YUM仓库

这里(在master.bigdata主机上)搭建本地YUM源作为离线安装CM的仓库,让其他主机也使用该源下载CM相关的软件:

(1) 安装httpd和createrepo

···

systemctl stop firewalld

yum install -y httpd createrepo

systemctl start httpd && systemctl enable httpd

···

(2) 将从网盘上下载的软件包上传得到/var/www/html/目录内:

[root@localhost html]# pwd

/var/www/html

[root@localhost html]# tree .

.

└── CM6.3.1

│ ├── allkeys.asc

│ ├── cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm

│ ├── cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm

│ ├── enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm

│ └── oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm

├── CDH6.3.2

│ ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel

│ ├── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha1

│ └── CDH-6.3.2-1.cdh6.3.2.p0.1605554-el7.parcel.sha256

1 directory, 5 files

[root@localhost html]#

(3) 配置CM本地Yum源

createrepo /var/www/html/CM6.3.1/
createrepo /var/www/html/CDH6.3.2/

然后,可通过浏览器访问:

http://192.168.122.101/CM6.3.1/



http://192.168.122.101/CDH6.3.2/

三、在所有主机上操作

由于cloudera-manager采用Server-Agent的结构,管理人员点击web页面的启动,重启,停止按钮,Server端会将指令发送到Agent端,Agent收到命令后启动相应的进程,这样根本就不需要ssh登录服务器执行命令了。

2、关闭防火墙和 SELinux

关闭所有机器的防火墙和 SELinux,执行以下命令:

systemctl stop firewalld && systemctl disable firewalld
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config  && setenforce 0

3、时间同步配置

配置时间同步,执行以下命令:

···

yum install -y ntpdate

(echo “*/5 * * * * /usr/sbin/ntpdate -u cn.pool.ntp.org”) | crontab

systemctl restart crond

···

注:这里也可配置为局域网内的某个时间服务器。

4、安装 JDK环境

CDH6.0以后JDK版本最低为1.8。

(1) 卸载自带的openjdk

rpm -qa | grep openjdk |xargs -I {} rpm -e –nodeps {}

(2) 安装oracle-jdk1.8

将jdk安装RPM包上传到服务器上,执行如下命令安装:


rpm -ivh jdk-8u261-linux-x64.rpm

5、配置本地的yum仓库

cat > /etc/yum.repos.d/manager-repos.repo <<EOF
[manager-repos]
name = Cloudera Manager, Version 6.3.1
baseurl = http://172.16.40.170/CM6.3.1/
enabled = 1
gpgcheck = 0
EOF

然后执行 yum repolist 命令检查本地仓库是否添加成功。

6、[优化项]禁止透明大页

(1) 所有主机输入以下命令:

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

(2) 所有主机的/etc/rc.local中也需要加入这两条命令,配置为开机启动时自动配置。

vim /etc/rc.local
echo never > /sys/kernel/mm/transparent_hugepage/defrag
echo never > /sys/kernel/mm/transparent_hugepage/enabled

7、[优化项]减少集群使用交换内存

运行以下三条命令:

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

四、在Master主机上操作

1、安装MySQL数据库

注意:MySQL数据库也可以使用或安装在其他服务器上。

(1) 将MySQL的RPM包上传到Master服务器上:

[root@localhost MySQL5.7]# pwd
/root/MySQL5.7
[root@localhost MySQL5.7]# tree .
.
├── mysql-community-client-5.7.16-1.el7.x86_64.rpm
├── mysql-community-common-5.7.16-1.el7.x86_64.rpm
├── mysql-community-libs-5.7.16-1.el7.x86_64.rpm
├── mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
└── mysql-community-server-5.7.16-1.el7.x86_64.rpm

0 directories, 5 files

然后执行如下命令安装MySQL5.7数据库:

yum install -y ./

.rpm

[root@localhost MySQL5.7]# yum install -y ./

.rpm

启动MySQL数据库:

systemctl start mysqld && systemctl enable mysqld

获取mysql初始化密码:

grep ‘temporary password’ /var/log/mysqld.log

YfB2&a(wqCwP

修改Mysql密码,用命令mysql -uroot -p输入上面获取到的密码,修改密码:

mysql> alter user root@localhost identified by ‘1qazXSW@)’;

mysql> flush privileges;

mysql> exit

(3) 下载mysql客户端的jdbc驱动(其实最好所有主机节点都需要操作下)

yum install -y wget
mkdir -p /usr/share/java/
wget -P /usr/share/java/  https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.47/mysql-connector-java-5.1.47.jar
mv /usr/share/java/mysql-connector-java-5.1.47.jar /usr/share/java/mysql-connector-java.jar

(4) 创建数据库

使用命令mysql -u root -p登陆MySQL(上面配置的密码为: 1qazXSW@)后,执行如下命令创建数据库:

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY '1qazXSW@';

CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY '1qazXSW@';

CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY '1qazXSW@';

CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY '1qazXSW@';

CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY '1qazXSW@';

CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY '1qazXSW@';

CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY '1qazXSW@';

CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY '1qazXSW@';

CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY '1qazXSW@';

使用SHOW DATABASES;命令检查是否都创建成功。

2、安装CM

cdh1安装下面三个。

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

cdh2、cdh3安装下面两个。

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

3、配置CM数据库

官方提供了一个脚本用于初始化 CM 数据(配置/etc/cloudera-scm-server/db.properties),执行如下命令:

/opt/cloudera/cm/schema/scm_prepare_

database.sh

mysql scm -h localhost scm 1qazXSW@

最后提示:”All done, your SCM database is configured correctly!”代表配置成功,忽略可能的WARN信息。

4、启动 CM 服务,主节点cdh1启动server

systemctl start cloudera-scm-server

观察日志输出,当看到Started Jetty server.时表示服务已经启动成功了(大约需要等待3~5分钟左右)。

tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log

所有节点启动agent

systemctl start cloudera-scm-agent

5、访问 CM 控制台

浏览器访问

http://172.16.40.170:7180/cmf/login

,账号密码统一为admin。

五、在WEB界面上操作

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

配置parcel自定义库,点击更多配置,在第一行输入

http://master.bigdata/CDH6.3.2/

配置parcel自定义库,点击更多配置,在第一行输入

http://master.bigdata/CDH6.3.2/



版权声明:本文为qq_29078779原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。