CentOS搭建:CDH
目录
参考:
# 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
- 将各主机的 IP 和 HostName 的映射配置到每台机器
cp /etc/hosts /etc/hosts.bak20230808
vim /etc/hosts
2
172.16.31.134 host1721631134
172.16.31.135 host1721631135
172.16.31.136 host1721631136
172.16.31.137 host1721631137
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
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/
2
- 每台机器关闭防火墙
systemctl stop firewalld \
&& systemctl disable firewalld \
&& systemctl status firewalld
#依次是关闭、禁用(防止重启后自动开启)、查看状态
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
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耗时的激增。
2
3
- 每台机器关闭 chrony 服务,该服务会影响到NTP服务的开机启动
systemctl stop chronyd && systemctl disable chronyd
- 每台机器重新设置时钟服务
cp /etc/ntp.conf /etc/ntp.conf.bak20230808
vim /etc/ntp.conf
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
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
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 .
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
2
[clouderamanager]
name=Cloudera Manager 6.3.1
# 这里的链接改成你自己的
baseurl=http://172.16.31.134/clouderamanager/
gpgcheck=0
enabled=1
2
3
4
5
6
yum clean all && yum makecache
- 接下来将 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/
2
3
cd /etc/yum.repos.d/
ll
yum clean all && yum makecache
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;
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';
2
3
4
5
6
7
8
9
初始化SCM数据库
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql scm scm pwd@123123
/opt/cloudera/cm/schema/scm_prepare_database.sh mysql -h172.16.31.140 -P3312 -uroot -p'2EWXBoHFqqVFE7phJHrl1zkFk6SItZoR' --scm-host host1721631135 scm scm pwd@123123
# 安装Cloudera Manager
yum install -y cloudera-manager-daemons cloudera-manager-agent cloudera-manager-server
这一步有点久,慢慢等待
- 配置本地Parcel存储库
首先移动cdh包下的parcel文件到 /opt/cloudera/parcel-repo,这里我之前是已经将文件移动到 /var/www/html/cdh下了
cd /opt/cloudera/parcel-repo/
cp /var/www/html/cdh/*parcel* ./
ls
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 是用于维护和同步配置数据的集中服务。 |