CentOS搭建:CDH

12/31/2023 Linux

目录


参考:


# CentOS搭建:CDH

# 配置基础环境

# 服务器配置

IP HOSTNAME SERVER ROLE
172.16.31.134 alpha cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
172.16.31.135 master cloudera-scm-agent
172.16.31.136 slave01 cloudera-scm-agent
172.16.31.137 slave02 cloudera-scm-agent
  • 每台机器安装常用的工具
yum install -y vim wget ntp net-tools
1
  • 将各主机的 IP 和 HostName 的映射配置到每台机器
cp /etc/hosts /etc/hosts.bak20230808
vim /etc/hosts
1
2
172.16.31.134 host1721631134
172.16.31.135 host1721631135
172.16.31.136 host1721631136
172.16.31.137 host1721631137
1
2
3
4
  • 配置主服务器免密登录到其他子服务器

    • 执行ssh-keygen连续确认取默认值
    ssh-keygen
    
    1
    • 复制秘钥到其他服务器,执行ssh-copy-id 子服务器名 ,这里需要重新输入相应子服务器的密码。
    ssh-copy-id host1721631135
    ssh-copy-id host1721631136
    ssh-copy-id host1721631137
    
    1
    2
    3
    • 执行后查看是否可以免密登录
    ssh 'host1721631135'
    ssh 'host1721631136'
    ssh 'host1721631137'
    exit
    
    1
    2
    3
    4
  • 配置主服务器JAVA环境

JAVA安装完毕之后,需要创建一个软连接,防止cloudera-scm-server启动失败

mkdir -p /usr/java/
ln -s /opt/java/jdk1.8.0_371  /usr/java/default
1
2
  • 安装MySQL,注意:MySQL为5.7.x版本

上传 mysql-connect 的jar包,然后将该jar包重命名为mysql-connector-java.jar,之后移动到 /usr/share/java/

mkdir -p /usr/share/java/ 
cp mysql-connector-java.jar /usr/share/java/
1
2
  • 每台机器关闭防火墙
systemctl stop firewalld \
&& systemctl disable firewalld \
&& systemctl status firewalld 

#依次是关闭、禁用(防止重启后自动开启)、查看状态
1
2
3
4
5
  • 每台机器关闭Selinux
setenforce 0 #临时关闭

#永久关闭 将SELINUX=enforcing 修改为SELINUX=disabled

cp /etc/selinux/config /etc/selinux/config.bak20230808
vim /etc/selinux/config

SELINUX=disabled

1
2
3
4
5
6
7
8
9
  • 每台机器设置交换空间
cp /etc/sysctl.conf /etc/sysctl.conf.bak20230808
echo "vm.swappiness = 0" >> /etc/sysctl.conf
# Cloudera建议将交换空间设置为0,过多的交换空间会引起GC耗时的激增。
1
2
3
  • 每台机器关闭 chrony 服务,该服务会影响到NTP服务的开机启动
 systemctl stop chronyd &&  systemctl disable chronyd  
1
  • 每台机器重新设置时钟服务
cp /etc/ntp.conf /etc/ntp.conf.bak20230808
vim /etc/ntp.conf
1
2

​ 将时钟服务器更改为如下10个

server 0.cn.pool.ntp.org
server 1.cn.pool.ntp.org
server 2.cn.pool.ntp.org
server 3.cn.pool.ntp.org
server 4.cn.pool.ntp.org
server 5.cn.pool.ntp.org
server 6.cn.pool.ntp.org
server 7.cn.pool.ntp.org
server 8.cn.pool.ntp.org
server 9.cn.pool.ntp.org
1
2
3
4
5
6
7
8
9
10

​ 每台机器启动同步时间服务

systemctl start ntpd \
&& systemctl enable ntpd \
&& ntpdate -u 0.cn.pool.ntp.org \
&& hwclock --systohc \
&& date
1
2
3
4
5

# 配置本地yum源

  • 安装基础服务,开启httpd服务

    yum -y install httpd createrepo
    && systemctl start httpd
    && systemctl enable httpd \

  • 移动CDH离线安装包,配置本地yum源

unzip CDH.zip
cd CDH
ls
mv cdh /var/www/html/
mv clouderamanager /var/www/html/
cd /var/www/html/
ls
cd cdh/
createrepo .
cd ..
cd clouderamanager/
createrepo .
1
2
3
4
5
6
7
8
9
10
11
12

​ 访问地址:

​ http://172.16.31.134/cdh/

​ http://172.16.31.134/clouderamanager/

  • 将地址配置到yum源中,进入到 /etc/yum.repos.d/
cd /etc/yum.repos.d
vim cloudera-manage.repo
1
2
[clouderamanager]
name=Cloudera Manager 6.3.1
# 这里的链接改成你自己的
baseurl=http://172.16.31.134/clouderamanager/
gpgcheck=0
enabled=1
1
2
3
4
5
6
yum clean all && yum makecache
1
  • 接下来将 cloudera-manager.repo 分发到其他子服务器
scp -rq cloudera-manager.repo host1721631135:/etc/yum.repos.d/
scp -rq cloudera-manager.repo host1721631136:/etc/yum.repos.d/
scp -rq cloudera-manager.repo host1721631137:/etc/yum.repos.d/
1
2
3
cd /etc/yum.repos.d/
ll
yum clean all && yum makecache
1
2
3

# 创建元数据库及授权用户

CREATE DATABASE scm DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE amon DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE rman DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE metastore DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE sentry DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE nav DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE navms DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE oozie DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
1
2
3
4
5
6
7
8
9
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'pwd@123123';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'pwd@123123';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'pwd@123123';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'pwd@123123';
GRANT ALL ON metastore.* TO 'hive'@'%' IDENTIFIED BY 'pwd@123123';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'pwd@123123';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'pwd@123123';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'pwd@123123';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'pwd@123123';
1
2
3
4
5
6
7
8
9

​ 初始化SCM数据库

/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm pwd@123123
1
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h172.16.31.140 -P3312 -uroot -p'2EWXBoHFqqVFE7phJHrl1zkFk6SItZoR' --scm-host host1721631135 scm scm pwd@123123
1

20190702092217773

# 安装Cloudera Manager

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

这一步有点久,慢慢等待

  • 配置本地Parcel存储库

首先移动cdh包下的parcel文件到 /opt/cloudera/parcel-repo,这里我之前是已经将文件移动到 /var/www/html/cdh下了

cd /opt/cloudera/parcel-repo/
cp /var/www/html/cdh/*parcel* ./
ls
1
2
3
  • 启动CM

    systemctl start cloudera-scm-server
    && sleep 2
    && tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log | grep "INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server"

出现INFO WebServerImpl:com.cloudera.server.cmf.WebServerImpl: Started Jetty server则启动成功

服务类型 说明
HBase Apache HBase 提供对大型数据集的随机、实时的读/写访问权限(需要 HDFS 和 ZooKeeper)。
HDFS Apache Hadoop 分布式文件系统 (HDFS) 是 Hadoop 应用程序使用的主要存储系统。HDFS 创建多个数据块副本并将它们分布在整个群集的计算主机上,以启用可靠且极其快速的计算功能。
Hive Hive 是一种数据仓库系统,提供名为 HiveQL 的 SQL 类语言。
Hue Hue 是与包括 Apache Hadoop 的 Cloudera Distribution 配合使用的图形用户界面(需要 HDFS、MapReduce 和 Hive)。
Impala Impala 为存储在 HDFS 和 HBase 中的数据提供了一个实时 SQL 查询接口。Impala 需要 Hive 服务,并与 Hue 共享 Hive Metastore。
Isilon EMC Isilon is a distributed filesystem.
Kafka Apache Kafka is publish-subscribe messaging rethought as a distributed commit log.
Key-Value Store Indexer 键/值 Store Indexer 侦听 HBase 中所含表内的数据变化,并使用 Solr 为其创建索引。
Kudu Kudu is a true column store for the Hadoop ecosystem.
Oozie Oozie 是群集中管理数据处理作业的工作流协调服务。
Solr Solr 是一个分布式服务,用于编制存储在 HDFS 中的数据的索引并搜索这些数据。
Spark Apache Spark is an open source cluster computing system. This service runs Spark as an application on YARN.
YARN (MR2 Included) Apache Hadoop MapReduce 2.0 (MRv2) 或 YARN 是支持 MapReduce 应用程序的数据计算框架(需要 HDFS)。
ZooKeeper Apache ZooKeeper 是用于维护和同步配置数据的集中服务。
上次更新时间: 9/25/2024, 1:19:15 AM