百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

CDH6.3.2之安装与使用(一)(cdh组件详解)

mhr18 2024-10-01 12:23 17 浏览 0 评论

CM简介

Cloudera Manager是一个拥有集群自动化安装、中心化管理、集群监控、报警功能的一个工具,使得安装集群从几天的时间缩短在几个小时内,运维人员从数十人降低到几人以内,极大的提高集群管理的效率。

本篇就介绍如何安装CDH,选择的版本为6.3.2

环境准备

准备三台测试机,分别为hadoop101,hadoop102,hadoop103。我这里的测试机器的配置为16g内存,4CPU。

需将以下端口开放

服务

端口

Cloudera Manager Server(WebUI)

7180

HDFS NameNode(WebUI)

9870

Yarn ResourceManager(WebUI)

8088

JobHistory Server(WebUI)

19888

HBase Master(WebUI)

16010

HiveServer2 (WebUI)

10002

HUE Server(WebUI)

8888/8889

Oozie Server

11000

Spark Master/Worker/History Server

18080/18081/18088

MySQL

3306

(1)开机后进行相应配置,配置主机名

sudo hostnamectl set-hostname foo-1.example.com

(2)修改/etc/hosts文件如下图所示

1.1.1.1  foo-1.example.com  foo-1
2.2.2.2  foo-2.example.com  foo-2
3.3.3.3  foo-3.example.com  foo-3
4.4.4.4  foo-4.example.com  foo-4

(3)关闭防火墙

sudo systemctl disable firewalld
sudo systemctl stop firewalld

(4)修改SELinux配置文件/etc/selinux/config,设置SELINUX=disabled。修改完毕后进行重启。

(5)时间同步

在兼容RHEL 7的操作系统的系统上,已经开始默认使用chronyd服务,而不是ntpd服务了。Cloudera优先使用chronyd验证时间是否同步,如需使用ntpd,须将chronyd服务卸载,本文使用chronyd。

如果集群中的所有主机均可联网,则可配置每台服务器向网络中的时钟服务器(NTP Server)进行同步,如果集群中的主机不能联网,则可以将集群中的一台服务器作为时钟服务器(NTP Server),供其他主机进行时间同步。

1.可联网

修改/etc/chrony.conf文件,server为chronyd使用的时钟服务器,可改为国内常用的时钟服务器地址。

# Use Alibaba NTP server
# Public NTP
# Alicloud NTP


server ntp1.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp1.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp10.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp11.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp12.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp2.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp2.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp3.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp3.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp4.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp4.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp5.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp5.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp6.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp6.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp7.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp8.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp9.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst
server ntp.aliyun.com minpoll 4 maxpoll 10 iburst
server ntp.cloud.aliyuncs.com minpoll 4 maxpoll 10 iburst

2.不可联网

选择一台主机(例如192.168.1.102)作为时钟服务器,修改/etc/chrony.conf文件

#1.注释掉所有server
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
#2.设置允许同步的客户端网段
# Allow NTP client access from local network.
allow 192.168.0.0/16
#3.不能联网的情况下,以本地时钟作为时间源供客户端同步
# Serve time even if not synchronized to a time source.
local stratum 5

其他主机,修改/etc/chrony.conf文件

# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
server 192.168.1.102 iburst

重启各主机的chronyd服务,并设为开机自启

systemctl restart chronyd
systemctl enable chronyd

(6)配置ssh免密登录

CDH部署并不需要配置免密登录,此处是为了方便分发文件等操作

1.生成公钥和私钥:

[root@hadoop102 .ssh]# ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

2.将公钥拷贝到要免密登录的目标机器上

[root@hadoop102 .ssh]# ssh-copy-id hadoop102.example.com
[root@hadoop102 .ssh]# ssh-copy-id hadoop103.example.com
[root@hadoop102 .ssh]# ssh-copy-id hadoop104.example.com

3.在/bin目录下创建xsync文件,并赋予执行权限,文件内容如下

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
  echo Not Enough Arguement!
  exit;
fi
#2. 遍历集群所有机器
for host in hadoop102.example.com hadoop103.example.com hadoop104.example.com
do
  echo ====================  $host  ====================
  #3. 遍历所有目录,挨个发送
  for file in $@
  do
    #4 判断文件是否存在
    if [ -e $file ]
    then
      #5. 获取父目录
      pdir=$(cd -P $(dirname $file); pwd)
      #6. 获取当前文件的名称
      fname=$(basename $file)
      ssh $host "mkdir -p $pdir"
      rsync -av $pdir/$fname $host:$pdir
    else
      echo $file does not exists!
    fi
  done
done

安装JDK

(1)以下为测试并推荐使用Oracle JDK版本,其他版本可能会导致CDH出现某些不可预知的错误,请谨慎使用。

Oracle JDK Version

Notes

1.8u181

Recommended / Latest version tested

1.8u162

Recommended

1.8u141

Recommended

1.8u131

Recommended

1.8u121

Recommended

1.8u111

Recommended

1.8u102

Recommended

1.8u91

Recommended

1.8u74

Recommended

1.8u31

Minimum required

(2)以下为测试并推荐使用Open JDK版本,其他版本可能会导致CDH出现某些不可预知的错误,请谨慎使用。

OpenJDK Version

Notes

1.8u212

Recommended / Latest version tested

1.8u181

Minimum required

(3)安装JDK,将JDK压缩包上传到集群进行解压。注意JDK一定要部署在/usr/java目录下

[root@hadoop102 ~]# mkdir /usr/java
[root@hadoop102 ~]# tar -zxvf jdk-8u181-linux-x64.tar.gz -C /usr/java/

(4)配置JAVA_HOME环境变量

root@hadoop102 ~]# sudo vim /etc/profile.d/my_env.sh
#JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_181
export PATH=$PATH:$JAVA_HOME/bin

(5)让环境变量生效

[atguigu@hadoop102 software]$ source /etc/profile.d/my_env.sh

安装MySql

1.卸载系统自带的mysql或者mariadb

rpm -qa | grep -i -E mariadb\|mysql | xargs rpm -e --nodeps

2.安装libaio依赖

yum -y install libaio

3.按顺序安装以下组件

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-libs-compat-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

4.启动msyql服务

systemctl start mysqld

5.查看root用户初始密码

cat /var/log/mysqld.log | grep password
2020-10-14T06:51:15.036035Z 1 [Note] A temporary password is generated for root@localhost: #h*u7f5Lhf(8

6.使用初始密码登录

mysql -uroot -p '#h*u7f5Lhf(8'

7.修改密码,并赋予root用户远程登录权限

mysql> set password=password('Atguigu.123456');
mysql> grant all privileges on *.* to 'root' @'%' identified by 'Atguigu.123456';
mysql> flush privileges;

8.配置mysql驱动,将驱动包上传到集群放置到对应目录。

集群中所有主机须在相同位置部署相同驱动,或使用分发脚本分发

mkdir -p /usr/share/java/
tar -zxvf mysql-connector-java-5.1.49.tar.gz
cd mysql-connector-java-5.1.49
cp mysql-connector-java-5.1.49-bin.jar /usr/share/java/mysql-connector-java.jar

安装CM

1.下载CM的压缩包并上传到集群中的某台主机(hadoop102.example.com),并解压

tar -zxvf cm6.3.1-redhat7.tar.gz

2.进入解压之后的路径,执行以下命令,以发布该yum仓库

cd cm6.3.1
python -m SimpleHTTPServer 8900

可用浏览器访问 hadoop102.example.com:8900 地址,如响应如下页面,则表示yum仓库发布成功

3.在所有主机上创建yum仓库repo文件

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

文件内容如下所示

[cloudera-manager]
name=Cloudera Manager 6.3.1
baseurl=http://hadoop102.example.com:8900/
gpgkey=http://hadoop102.example.com:8900/RPM-GPG-KEY-cloudera
gpgcheck=1
enabled=1
autorefresh=0
type=rpm-md

4.选择一台主机作为主节点(hadoop102.example.com),执行以下命令

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

5.其余主机执行以下命令

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

6.安装完毕后,关闭SimpleHTTPServer,

并删除所有主机上的/etc/yum.repos.d/cloudera-manager.repo文件

7.修改Cloudera Manager Agent配置文件

/etc/cloudera-scm-agent/config.ini,每台主机都要做相同修改

修改内容如下,将server_host参数改为Cloudera Manager Server所在节点的主机名

为CM配置数据库

1.创建各服务所需数据库

进入MySQL客户端,执行以下语句

mysql> CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
mysql> CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;

2.执行CM数据库配置脚本

/opt/cloudera/cm/schema/scm_prepare_database.sh --host hadoop102.example.com --scm-host hadoop102.example.com  mysql scm root Atguigu.123456

说明:--host 数据库主机名

--scm-host Cloudera Manager Server主机名

mysq 数据库类型

scm 数据库名称

root 用户名

Atguigu.123456 密码

若Cloudera Manager Server 和 MySQL部署在同一台主机,则可省略--host 和 --scm-host

启动CM

1.在主节点(hadoop102.example.com)执行以下命令,启动Server 和 Agent

systemctl start cloudera-scm-server cloudera-scm-agent

2.在其余节点执行以下命令,启动Agent

systemctl start cloudera-scm-agent

3.访问Cloudera Manager Server 的Web页面,默认端口号为7180,界面如下

部署CDH

Cloudera Manager d节点的/opt/cloudera/p

1.上传CDH parcel到Cloudera Manager Server

节点的/opt/cloudera/parcel-repo路径下,上传CDH所需parcel

2.为parcel文件生成SHA1校验文件

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.sha

3.更改parcel文件所有者

chown -R cloudera-scm:cloudera-scm /opt/cloudera/parcel-repo/*

4.重启Cloudera Manager,令其识别到本地库

sudo systemctl restart cloudera-scm-serve

5.登录Cloudera Manager,初始用户名和密码均为admin。

6.查看用户许可协议并接受,点击继续

7.根据需要选择所需版本,点击继续

8.进入集群部署欢迎界面,点击继续

9.集群命名

10.查找集群主机,点击当前管理的主机,并勾选所有主机,点击继续

11.确认本地parcel库路径

12.选择本地parcel库中的CDH版本

13.等待在集群中分配、解压、激活CDH parcel,完成后点击继续

14.检查网络和主机

15.选择安装的服务

16.分配集群角色

17.测试数据库连接

18.审核各服务参数的默认配置,如没问题点击继续。

19.等待安装,完成后点继续

20.确认安装完毕


大数据技术生态体系

大数据和云计算的关系

大数据HBase原理

大数据面试题整合

大数据项目架构

相关推荐

《塞尔达传说》进化史!一口气看完全部塞尔达传说!

《塞尔达传说》系列全版本历史回顾以下是塞尔达传说系列所有官方游戏版本的完整列表,按时间顺序排列:主要正统系列作品1、《塞尔达传说》/TheLegendofZelda(1986)《塞尔达传说》是...

Linux文件系统结构全解析(linux文件系统概述)

对Linux新手而言,“一切皆文件”的设计哲学常让人既兴奋又困惑——打开终端输入ls/,看到的bin、etc、var等目录到底有什么用?如何快速定位关键文件?本文将从Linux文件系统的底层逻...

一文带您了解数据库的行列之争:行式与列式存储的异同

数据库存储格式是数据库管理系统中一个至关重要的方面,它直接影响到数据的组织和检索效率。在数据库中,有两种主要的存储格式,即行式存储和列式存储。这两者采用截然不同的方法来组织和存储数据,各自具有一系列优...

NL2SQL(三)开源项目怎么选:talk is cheap, show me the code!

老规矩,先看效果下面的demo来自试用的SuperSonic,将会在下面详细介绍:大模型时代Text-to-SQL特点随着基于LLM技术的发展,RAG/AIAgent/Fine...

JDK25长期支持版九月降临:18项王炸功能全解析

Java要放大招啦!9月份推出的JDK25长期支持版已经锁定18个超能力,从稳定值到结构化并发,还有Linux系统下的"预知未来"性能分析!下面我用打游戏的术语给你们掰扯明白:1、飞...

OceanBase 推出单机版 高度兼容MySQL和Oracle

【环球网科技综合报道】3月27日,独立数据库厂商OceanBase正式发布单机版产品。据悉,这一产品基于自主研发的单机分布式一体化架构设计,具备极简数据库架构和高度兼容性,为中小规模业务提供兼具性能与...

黄远邦:应对7月1日闰秒对Oracle数据库影响

由于今年7月1日全世界会多出一秒,这可能对时间敏感的IT系统造成较大影响。中亦科技数据库团队对此问题做了深入的研究,并对用户系统提出了相应的解决方法及建议。中亦科技数据库产品总监黄远邦认为,闰秒调整会...

MySQL数据库密码忘记了,怎么办?(mysql 数据库密码)

#头条创作挑战赛#MySQL数据库密码忘记了且没有其他可以修改账号密码的账户时怎么办呢?登录MySQL,密码输入错误/*密码错误,报如下错误*/[root@TESTDB~]#mysql-u...

Chinese AI Talent in Spotlight as Nvidia and Meta Escalate Talent War

OntherightisBanghuaZhu,ChiefResearchScientistatNVIDIATMTPOST--SiliconValley’stoptech...

用Cursor开启JAVA+AI生涯(javascirpt怎么开启)

Cursor是基于VSCode开发的一款编辑器,支持多种语言的开发编辑。与传统的开发工具相比,它有多种优势:与AI无缝集成,响应速度快,占用内存小。但很多同学在"起步"过程中遇到了...

毕业十年了,自从做了开发用了很多软件,但距离写开发工具还很远

办公系统类:办公软件Word、Excel、PowerPoint三大必备技能+腾讯/金山在线文档解压缩操作:7-zip/winrar文件文本处理:Notepad++(文本编辑器正则表达式超级好...

盘点Java中最没用的知识⑤:这3个老古董你还在代码里“考古”?

一、Stack类:“继承Vector”的历史bug,为何成了性能拖油瓶?你是不是在学Java集合时,老师说过“栈结构用Stack类”?是不是在老代码里见过"newStack<>(...

Gemini 2.5 Pro 0506发布,编程最强大模型, 碾压 Claude3.7 sonnent

一、Gemini2.5Pro(I/Oedition)发布1、为何叫I/Oedition?谷歌史上最强编程模型Gemini2.5Pro(I/Oedition)发布,具体型号是Gemin...

如何让无聊变得有趣(附本人大量美图)

文/图:金冬成在这条长300公里的公路上,我已经来回往返了无数次。3小时车程,一个人,想想都是多么无聊的一件事。其实,人生道路上,类似这种无聊的事情有很多很多。无聊的事情、枯燥的工作,往往让我们容易失...

Oracle 推出 Java 24,增强 AI 支持和后量子加密

导读:Oracle宣布正式发布Java24,该语言增加了几个新功能,例如StreamGatherersAPI和Class-FileAPI的可用性,以及专门为AI推理和量子安全设计...

取消回复欢迎 发表评论: