一、cdh角色分配
在介绍角色划分时,我们首先来看看有哪几种主要的角色:
- 管理节点(Master Hosts):主要用于运行Hadoop的管理进程,比如HDFS的NameNode,YARN的ResourceManager。
- 工具节点(Utility Hosts):主要用于运行非管理进程的其他进程,比如Cloudera Manager和Hive Metastore.
- 边缘节点(Edge Hosts):用于集群中启动作业的客户端机器,边缘节点的数量取决于工作负载的类型和数量。
- 工作节点(Worker Hosts):主要用于运行DataNode以及其他分布式进程,比如ImpalaD。
角色划分:
- 小于10台:一般用于测试/开发集群,我们建议至少5台机器,没有高可用。一个管理节点主要用于安装NameNode和ResourceManager,工具节点和边缘节点复用一个,主要用于安装Cloudera Manager等,剩余3-7台工作节点。
- 10-20台:最小规模的生产系统,必须启用高可用。我们会用2个管理节点用于安装2个NameNode,一个工具节点用于安装Cloudera Manager等,如果机器充足或者Hue/HiveServer2/Flume的负载特别高,可以考虑独立出边缘节点用于部署这些角色,否则也可以跟Cloudera Manager复用。最后还剩下7-17个工作节点
注:根据实际情况选择是否需要单独的边缘节点 - 20-50台:这是中小规模的生产集群,必须启用高可用,与小规模集群角色划分差别不大。我们会用3个管理节点用于安装NameNode和Zookeeper等,一个工具节点用于安装ClouderaManager等,如果机器充足或者Hue/HiveServer2/Flume的负载特别高,可以考虑独立出边缘节点用于部署这些角色,否则也可以跟Cloudera Manager复用。最后还剩下16-46个工作节点。
注:根据实际情况选择是否需要单独的边缘节点。
Zookeeper和JournalNode需配置专有的数据盘 - 50-100台:这是中等规模的生产集群,必须启用高可用。我们会用3个管理节点用于安装NameNode和Zookeeper等,一个工具节点用于安装Cloudera Manager,一个工具节点用于安装ClouderaManagement Service和Navigator等。使用三个节点安装Hue/HiveServer2/Flume,作为边缘节点,使用两个节点安装负载均衡软件比如F5或者HAProxy并配置为KeepAlive的主主模式,该负载均衡可同时用于HiveServer2和Impala Daemon。最后还剩下42-92个工作节点。
注:Zookeeper和JournalNode需配置专有的数据盘 - 100-200台:属于大规模的生产集群,必须启用高可用。我们会用5个管理节点用于安装NameNode和Zookeeper等,1个工具节点用于安装Cloudera Manager,再使用4个工具节点分别安装HMS,Activity Monitor,Navigator等。使用3个以上节点安装Hue/HiveServer2/Flume,作为边缘节点,使用2个节点安装负载均衡软件比如F5或者HAProxy并配置为KeepAlive的主主模式,该负载均衡可同时用于HiveServer2和Impala Daemon。最后还剩下85-185个工作节点
注:Zookeeper和JournalNode需配置专有的数据盘
Kudu Master不超过3个
Kudu Tablet Server不超过100个 - 200-500台:属于超大规模的生产集群,必须启用高可用。我们会用7个管理节点用于安装NameNode和Zookeeper等,1个工具节点用于安装Cloudera Manager,再使用7个工具节点分别安装HMS,Activity Monitor,Navigator等。使用3个以上节点安装Hue/HiveServer2/Flume,作为边缘节点,使用2个节点安装负载均衡软件比如F5或者HAProxy并配置为KeepAlive的主主模式,该负载均衡可同时用于HiveServer2和Impala Daemon。最后还剩下180-480个工作节点。
注:Zookeeper和JournalNode需配置专有的数据盘
Kudu Master不超过3个
Kudu Tablet Server不超过100个
二、cdh内存分配
不同的环境可以根据自己环境的总内存以及总内核和这个参考值得出系数,那么:值= 推荐值 X 系数
- hdfs
- hive
- impala
- kafka
- kudu
- spark
- yarn
- zookeeper
- Cloudera Management Service
三、cdh配置
1、关闭selinux和iptables
2、配置ntp同步
3、配置ip和个主机名
192.168.5.119 cdh1
192.168.5.124 cdh2
192.168.5.126 cdh3
192.168.5.127 cdh4
192.168.5.128 cdh5
192.168.5.129 cdh6
192.168.5.118 cdh7
192.168.5.117 cdh8
192.168.5.141 cdh9
192.168.5.142 cdh10
4、配置免密码登陆
ssh-keygen -t rsa 一直回车
ssh-copy-id root@192.168.5.124
ssh-copy-id root@192.168.5.126
ssh-copy-id root@192.168.5.127
ssh-copy-id root@192.168.5.128
ssh-copy-id root@192.168.5.129
ssh-copy-id root@192.168.5.118
ssh-copy-id root@192.168.5.117
ssh-copy-id root@192.168.5.141
ssh-copy-id root@192.168.5.142
5、配置安装java(所有节点)
rpm -ivh jdk-8u191-linux-x64.rpm
6、安装mysql
./mysql_install_db --basedir=/data/server/mysql --datadir=/data/mysql/3306/
./mysqld_safe --defaults-file=/data/mysql/3306/my.cnf &
ln -s /data/server/mysql/bin/mysql /sbin/
ln -s /data/mysql/3306/mysql.sock /tmp/
mysql -uroot -p
SET PASSWORD=PASSWORD('yoyi@2018');
use mysql
update user set host='%' where user='root' and host='localhost';
FLUSH PRIVILEGES;
CREATE DATABASE r_manager DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE a_monitor DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hive DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE DATABASE hue DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
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 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;
GRANT ALL ON r_manager.* TO 'r_manager'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON a_monitor.* TO 'a_monitor'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON hue.* TO 'hue'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON scm.* TO 'scm'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON amon.* TO 'amon'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON rman.* TO 'rman'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON metastore.* TO 'metastore'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON sentry.* TO 'sentry'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON nav.* TO 'nav'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON navms.* TO 'navms'@'%' IDENTIFIED BY 'yoyi@2018';
GRANT ALL ON oozie.* TO 'oozie'@'%' IDENTIFIED BY 'yoyi@2018';
7、制作本地安装源
yum -y install http
8、
mkdir /opt/cloudera-manager
tar xzf cloudera-manager*.tar.gz -C /opt/cloudera-manager
chown root.root /opt/cloudera-manager -R
useradd --system --home=/opt/cloudera-manager/cm-5.16.1/run/cloudera-scm-server --no-create-home --shell=/bin/false --comment "Cloudera SCM User" cloudera-scm
mkdir /usr/share/java
tar xzf mysql-connector-java-5.1.46.tar.gz -C /usr/share/java
cd /usr/share/java/
mv mysql-connector-java-5.1.46.jar mysql-connector.jar
mv mysql-connector-java-5.1.46-bin.jar mysql-connector-java.jar
scp -r /usr/share/java cdh(2-10):/usr/share/
mkdir /var/lib/cloudera-scm-server
chown cloudera-scm:cloudera-scm /var/lib/cloudera-scm-server
/opt/cloudera-manager/cm-5.16.1/share/cmf/schema/scm_prepare_database.sh mysql scm scm yoyi@2018
cp CDH-5.16.1-1.cdh5.16.1.p0.3-el7.parcel* /opt/cloudera-manager/cloudera/parcel-repo/
scp manifest.json /opt/cloudera-manager/cloudera/parcel-repo/
/opt/cloudera-manager/cm-5.16.1/etc/init.d/cloudera-scm-server start
http://192.168.5.119:7180/cmf/login