作者:冯庆煜
1.文档编写目的
在使用CDH/CDP集群过程中会遇到在集群外的节点使用Hadoop命令访问集群(如:HDFS、HBASE、HIVE、SPARK、YARN)等命令操作,这时又不想将该节点添加到CDH/CDP集群中管理,本篇文章主要介绍如何在集群外节点不通过CM部署一个Gateway节点。
- 测试环境
1.Cloudera Enterprise 7.3.1和Cloudera Runtime 7.1.6
2.RedHat 7.6
3.kerberos版本 1.15.1-34.el_7
4.OpenLADP 2.4.44-20.el_7
1.1.前置条件
集群运行正常且Kerberos已安装且正常使用
IP地址 | HostName | 操作系统 |
---|---|---|
192.168.0.76 | cdh1.macro.com | redhat 7.6 |
192.168.0.75 | cdh2.macro.com | redhat 7.6 |
192.168.0.74 | cdh3.macro.com | redhat 7.6 |
192.168.0.191(集群外) | hadoop11.macro.com | redhat 7.6 |
hadoop11.macro.com节点并未添加到CM中
2.部署Gateway节点
2.1改host
将集群的hosts文件同步至该Gateway节点(hadoop11.macro.com)
代码语言:javascript复制scp /etc/hosts 192.168.0.191:/etc/hosts
2.2Java和CDH和FLINK
登录集群任意节点,将集群的Java目录拷贝至(hadoop11.macro.com)节点的/usr/java/目录下
代码语言:javascript复制scp -r /usr/java/jdk1.8.0_232-cloudera/ hadoop11.macro.com:/usr/java/jdk1.8.0_232-cloudera/
登录CDH集群的任意节点,将/opt/cloudera/parcels目录压缩并拷贝至(hadoop11.macro.com)节点
代码语言:javascript复制tar -czvf cdh.tar.gz CDH-7.1.6-1.cdh7.1.6.p0.10506313/ CDH/
scp cdh.tar.gz hadoop11.macro.com:/opt/
登录(hadoop11.macro.com)节点的服务器上,创建/opt/cloudera/parcels目录,并将cdh.tar.gz解压至该目录下
代码语言:javascript复制mkdir -p /opt/cloudera/
tar -zxvf cdh.tar.gz -C /opt/cloudera/parcels
ll /opt/cloudera/parcels/
同样方法复制FLINK文件夹
2.3配置文件
在(hadoop11.macro.com)节点上执行如下命令创建服务配置文件存放目录
代码语言:javascript复制mkdir -p /etc/spark/conf
mkdir -p /etc/hadoop/conf
mkdir -p /etc/hbase/conf
mkdir -p /etc/hive/conf
mkdir -p /etc/flink/conf
登录CDH集群拥有spark、hadoop、hbase、hive等Gateway节点上将/etc/*/conf目录下的配置文件拷贝至(hadoop11.macro.com)节点相应目录下
代码语言:javascript复制scp -r /etc/hadoop/conf/* hadoop11.macro.com:/etc/hadoop/conf
scp -r /etc/spark/conf/* hadoop11.macro.com:/etc/spark/conf
scp -r /etc/hbase/conf/* hadoop11.macro.com:/etc/hbase/conf
scp -r /etc/hive/conf/* hadoop11.macro.com:/etc/hive/conf
scp -r /etc/flink/conf/* hadoop11.macro.com:/etc/flink/conf
Spark配置文件:
HBase配置文件:
Hive配置文件:
Hadoop配置文件:
Flink配置文件:
配置(hadoop11.macro.com)节点的环境变量
修改/etc/profile配置文件,在文件的末尾增加如下配置:
代码语言:javascript复制export JAVA_HOME=/usr/java/jdk1.8.0_232-cloudera
export CDH_HOME=/opt/cloudera/parcels/CDH
export FLINK_HOME=/opt/cloudera/parcels/FLINK
export PATH=$FLINK_HOME/bin:$CDH_HOME/bin:$PATH
修改后执行如下命令使环境变量生效:
3.kerberos客户端
集群启用了Kerberos,所以需要在(hadoop11.macro.com)节点安装Kerberos客户端,执行如下命令
代码语言:javascript复制yum -y install krb5-libs krb5-workstation
将集群KDC服务器上的/etc/krb5.conf文件拷贝(hadoop11.macro.com)节点的/etc目录下
代码语言:javascript复制scp /etc/krb5.conf hadoop11.macro.com:/etc/
在(hadoop11.macro.com)节点上查看文件是否已拷贝成功
测试Kerberos客户端是否正常使用
4.gateway客户端命令验证
执行hadoop命令测试
代码语言:javascript复制hadoop fs -ls /
hadoop命令执行成功。
向集群提交一个MR作业
代码语言:javascript复制hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 2 5
作业执行成功。
使用yarn命令查看
代码语言:javascript复制yarn application --list
Yarn命令执行成功。
使用hbase shell访问Hbase
代码语言:javascript复制hbase shell
使用beeline访问Hive
代码语言:javascript复制beeline
使用Spark
代码语言:javascript复制spark-shell
代码语言:javascript复制spark-submit
代码语言:javascript复制spark-submit --class org.apache.spark.examples.SparkPi /opt/cloudera/parcels/CDH-7.1.6-1.cdh7.1.6.p0.10506313/jars/spark-examples_2.11-2.4.0.7.1.6.0-297.jar 10
使用Flink