CDH

Hadoop众多分支中的一种,由Cloudera维护,基于稳定版本的Apache Hadoop构建

Posted by 果然 on December 30, 2021

因为当前硬件资源的限制,所以尝试在本地搭建虚拟机 centos,并离线安装 CDH 集群。

前期准备工作

提前下载好以下软件包等:

扩展型 名称
rpm cloudera-manager-agent-6.2.0-968826.el7.x86_64.rpm
rpm cloudera-manager-server-db-2-6.2.0-968826.el7.x86_64.rpm
rpm enterprise-debuginfo-6.2.0-968826.el7.x86_64.rpm
rpm oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm
rpm cloudera-manager-daemons-6.2.0-968826.el7.x86_64.rpm
rpm cloudera-manager-server-6.2.0-968826.el7.x86_64.rpm
parcel CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel
parcel CDH-6.2.0-1.cdh6.2.0.p0.967373-el7.parcel.sha
json mainfest.json
rpm mysql-community-client-5.6.47-2.el7.x86_64.rpm
rpm mysql-community-release-el7-5.noarch.rpm
rpm mysql-community-server-5.6.47-2.el7.x86_64.rpm
rpm mysql-connector-java-5.1.46.tar.gz

确定各节点 hostname 正确设置

cat /etc/hostname 

设置 hosts

vim /etc/hosts  
192.168.184.xxx  master  
192.168.184.xxx  slave1  
192.168.184.xxx  slave2    

关闭 SELinux

安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,是一个linux内核模块,也是linux的一个安全子系统。

vim /etc/selinux/config
SELinux= disabled      

关闭防火墙

systemctl stop firewalld  
systemctl disable firewalld

设置 ssh 免密登录

ssh-keygen -t rsa        默认位于 ~/.ssh/  
ssh-copy-id root@master  拷贝公钥,会生成authorized_keys  
ssh-copy-id root@slave1  
ssh-copy-id root@slave2  
scp -pr ~/.ssh 192.168.184.xxx:/root   
ssh master  
ssh slave1                测试可以相互免密登录

检查主机时间同步

vim /etc/chrony.conf      注释其他所有默认时间服务器  
server master  iburst  
allow 192.168.184.0/24    只在 master 节点修改
local stratum 10          只在 master 节点修改  
systemctl restart chronyd  
systemctl enable chronyd  启动服务  
chronyc sources           查看服务状态  

主机参数配置

cat /etc/sysctl.conf 
vm.swappiness = 0 
sysctl -p        使参数生效 

确认 python 环境

python -V        确认Python版本,要求为2.6.x/2.7.x

安装 CDH

安装 jdk(3台)

或使用上述 oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm 安装

mkdir /usr/java
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /usr/java/
vim /etc/profile
# JAVA_HOME
export JAVA_HOME=/usr/java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin  

source /etc/profile
java -version
xsync /usr/java      # 将master中的JDK和环境变量分发到其他两台主机 
source /etc/profile

安装 mysql

在线安装  
wget -i -c http://dev.mysql.com/get/mysql57-community-client-release-el7-10.noach.rpm
yum -y install mysql5-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
systemctl start mysqld      # 启动服务
systemctl status mysqld     # 查看状态
grep "password" /var/log/mysqld.log     # 查看MySQL密码
mysql -u root -p
alter user 'root'@'localhost' idenified by 'root';     # 修改密码
systemctl enable mysqld     # 启动服务并设置开机启动
systemctl start mysqld

mkdir /usr/share/java/
cp mysql-connector-java-5.1.46.bin.jar /usr/share/java/mysql-connector-java.jar

创建数据库

create database scm default character set utf8 default collate utf8_general_ci;
grant all on scm.* to 'scm'@'%' identified by 'scm';
flush privileges;

同样的,创建如下数据库。

数据库 user password  
amon amon amon  
rman rman rman  
hue hue hue  
hive hive hive  
sentry sentry sentry  
nav nav nav  
navms navms navms  
oozie oozie oozie  

其余安装过程

小结关注点

-1. Chronyd 时间同步(Server/client)和之前的NTP功能一样,提供时间的,它是在NTP之后诞生的。
-2. cloudera manager 卸载
-3. CM的集群部署
-4. 手动格式化 namenode

hdfs namenode -format