0888-7.1.6-如何在集群外安装多集群Gateway支持

2022-08-26 17:50:29 浏览数 (2)

1.文档编写目的

在使用CDH/CDP集群过程中会遇到在集群外的节点使用Hadoop命令访问集群(如:HDFS、HBASE、HIVE、SPARK、YARN)等命令操作。但是有特殊需求:

1.不想将这个节点加入到CDH/CDP集群中管理,只用于实现CDH/CDP集群的访问。

2.支持多个不同版本的C6/CDP集群之间切换

3.支持多个用户同时访问不同集群,且环境变量互不影响

本篇文章主要介绍满足以上条件的一个客户端节点安装。

  • 测试环境

1.集群1是CM版本6.3.4、CDH版本6.3.4

2.集群2 是Cloudera Enterprise 7.3.1和Cloudera Runtime 7.1.6

3.系统均为RedHat 7.6

4.集群已启用 Kerberos

5.OpenLADP 2.4.44-23.el7_9

前置条件,两个已安装且正常使用的集群

2.Gateway节点配置

2.1.修改/etc/hosts配置文件

将所有集群的hosts文件同步至该Gateway节点(hadoop11.macro.com)

2.2关闭防火墙

代码语言:javascript复制
1systemctl status firewalld
2systemctl stop firewalld
3systemctl disable firewalld

2.3Java和CDH和CDP

1.将每个集群的Java目录复制到(hadoop11.macro.com)节点的/usr/java/目录下。(如果版本相同就不用重复拷贝了)

代码语言:javascript复制
1scp -r /usr/java/jdk1.8.0_232-cloudera/ hadoop11.macro.com:/usr/java/jdk1.8.0_232-cloudera/

2.将/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/tar -czvf cdh.tar.gz CDH-6.3.4-1.cdh6.3.4.p0.6626826/ CDH/scp cdh.tar.gz hadoop11.macro.com:/opt/

3.解压到相同目录下

代码语言:javascript复制
tar -zxvf cdh.tar.gz

2.4拷贝配置文件

1.在(hadoop11.macro.com)节点上执行如下命令创建服务配置文件存放目录

代码语言:javascript复制
[root@hadoop11 ~]# mkdir -p cdh6/etc/[root@hadoop11 ~]# mkdir -p cdp/etc/

2.登录CDH/CDP集群拥有spark、hadoop、hbase、hive等Gateway节点上将/etc/*/conf目录下的配置文件拷贝至(hadoop11.macro.com)节点统一目录下。

代码语言:javascript复制
scp -r /etc/hadoop/conf/* 192.168.0.191:/root/cdh6/etc/hadoopscp -r /etc/spark/conf/* 192.168.0.191:/root/cdh6/etc/sparkscp -r /etc/hbase/conf/* 192.168.0.191:/root/cdh6/etc/hbasescp -r /etc/hive/conf/* 192.168.0.191:/root/cdh6/etc/hive

cdp同理。

3.拷贝到Gateway节点的配置需要修改core-site.xml配置文件中的内容,修改配置防止spark访问hive保错,具体修改内容如下:

代码语言:javascript复制
vim /root/cdh6/etc/hadoop/core-site.xmlvim /root/cdh6/etc/hive/core-site.xmlvim /root/cdp/etc/hadoop/core-site.xmlvim /root/cdp/etc/hive/core-site.xml

每个集群下的hadoop、hive配置文件的core-site.xml这个参数都要修改成正确路径。

3.安装kerberos客户端

1.因为集群启用了Kerberos,所以需要在(hadoop11.macro.com)节点安装Kerberos客户端,执行如下命令

代码语言:javascript复制
yum -y install krb5-libs krb5-workstation

2.将所有集群KDC服务器上的/etc/krb5.conf文件拷贝到(hadoop11.macro.com)节点的/root/conf/cdh6/目录下,对应集群名称 

代码语言:javascript复制
scp /etc/krb5.conf 192.168.0.191:/root/cdh6/etcscp /etc/krb5.conf 192.168.0.191:/root/cdp/etc

最终目录如下

4.编写环境切换脚本

代码语言:javascript复制
#!/bin/bash#set -exBIN_DIR=$(dirname $BASH_SOURCE)BIN_DIR=`cd "$BIN_DIR"; pwd`# javaexport JAVA_HOME=/usr/java/jdk1.8.0_232-cloudera# cdhexport CDH_HOME=/opt/cloudera/parcels/CDH-6.3.4-1.cdh6.3.4.p0.6626826export PATH=$CDH_HOME/bin:$PATH# hadoopexport HADOOP_HOME=${CDH_HOME}/lib/hadoopexport HADOOP_CONF_DIR=${BIN_DIR}/etc/hadoop# hiveexport HIVE_HOME=${CDH_HOME}/lib/hiveexport HIVE_CONF_DIR=${BIN_DIR}/etc/hive# hbaseexport HBASE_HOME=${CDH_HOME}/lib/hbaseexport HBASE_CONF_DIR=${BIN_DIR}/etc/hbase# sparkexport SPARK_HOME=${CDH_HOME}/lib/sparkexport SPARK_CONF_DIR=${BIN_DIR}/etc/spark# kerberosexport KRB5_CONFIG=${BIN_DIR}/etc/krb5.confif [ -n "$KRB5_CONFIG" ];then  export HBASE_OPTS="-Djava.security.krb5.conf=$KRB5_CONFIG $HBASE_OPTS"  export SPARK_SUBMIT_OPTS="-Djava.security.krb5.conf=$KRB5_CONFIG $SPARK_SUBMIT_OPTS"  export HADOOP_CLIENT_OPTS="-Djava.security.krb5.conf=$KRB5_CONFIG $HADOOP_CLIENT_OPTS"fi

修改好对应参数,保存脚本,放在/root/cdh6/cdh6-env.sh

5.验证Gateway

1.执行如下命令切换到集群CDH6

代码语言:javascript复制
source cdh6-env.sh

测试HDFS,MR作业,均成功

代码语言:javascript复制
hdfs dfs -ls /hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 2 5

YARN和HBASE也可以

代码语言:javascript复制
yarn application --listhbase shell

beeline

spark-shell

spark-submit

代码语言:javascript复制
spark-submit --class org.apache.spark.examples.SparkPi /opt/cloudera/parcels/CDH-6.3.4-1.cdh6.3.4.p0.6626826/jars/spark-examples_2.11-2.4.0-cdh6.3.4.jar 10

修改参数,切换集群到cdp

测试HDFS,MR作业,均成功

代码语言:javascript复制
hdfs dfs -ls /hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 2 5

YARN和HBASE也可以

代码语言:javascript复制
yarn application --listhbase shell

beeline

spark-shell

spark-submit

6.异常处理

1. spark出现无法连接gateway机器,no route to host 192.168.0.191

原因是防火墙没关,关掉即可解决。

2. hive作业运行失败,报错信息为:GSS initiate failed,Clock skew too great(37)

原因是kerberos客户端时间和服务端时间不一致,安装ntp调整系统时间即可。

3. spark作业失败

kerberos用户userkrb登录没有HDFS权限,所以访问不了导致spark无法完成。

解决方法是创建一个kerberos用户hive,登录就解决了。

4. spark作业能运行出结果,但是保存找不到文件

这个文件目录在core-site.xml写死了,把目录修改正确即可。

0 人点赞