首页 > 其他分享 >0888-7.1.6-如何在集群外安装多集群Gateway支持

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

时间:2022-10-04 14:04:38浏览次数:44  
标签:root CDH etc 7.1 集群 hadoop11 0888 cdh6

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

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

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


2.Gateway节点配置



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

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

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


2.2关闭防火墙

1systemctl status firewalld
2systemctl stop firewalld
3systemctl disable firewalld

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


2.3Java和CDH和CDP

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

1scp -r /usr/java/jdk1.8.0_232-cloudera/ hadoop11.macro.com:/usr/java/jdk1.8.0_232-cloudera/

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


2.将/opt/cloudera/parcels目录压缩并拷贝至(hadoop11.macro.com)节点


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:/op


3.解压到相同目录下


[root@hadoop11 ~]# mkdir -p cdh6/etc/
[root@hadoop11 ~]# mkdir -p cdp/etc/

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


2.4拷贝配置文件

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



[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)节点统一目录下。


scp -r /etc/hadoop/conf/* 192.168.0.191:/root/cdh6/etc/hadoop
scp -r /etc/spark/conf/* 192.168.0.191:/root/cdh6/etc/spark
scp -r /etc/hbase/conf/* 192.168.0.191:/root/cdh6/etc/hbase
scp -r /etc/hive/conf/* 192.168.0.191:/root/cdh6/etc/hive

cdp同理。

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


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



vim /root/cdh6/etc/hadoop/core-site.xml
vim /root/cdh6/etc/hive/core-site.xml
vim /root/cdp/etc/hadoop/core-site.xml
vim /root/cdp/etc/hive/core-site.xml

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

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

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


3.安装kerberos客户端



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

    yum -y install krb5-libs krb5-workstation

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


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



    scp /etc/krb5.conf 192.168.0.191:/root/cdh6/etc
    scp /etc/krb5.conf 192.168.0.191:/root/cdp/etc

    最终目录如下

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


    4.编写环境切换脚本




    #!/bin/bash
    #set -ex
    BIN_DIR=$(dirname $BASH_SOURCE)
    BIN_DIR=`cd "$BIN_DIR"; pwd`
    # java
    export JAVA_HOME=/usr/java/jdk1.8.0_232-cloudera
    # cdh
    export CDH_HOME=/opt/cloudera/parcels/CDH-6.3.4-1.cdh6.3.4.p0.6626826
    export PATH=$CDH_HOME/bin:$PATH
    # hadoop
    export HADOOP_HOME=${CDH_HOME}/lib/hadoop
    export HADOOP_CONF_DIR=${BIN_DIR}/etc/hadoop
    # hive
    export HIVE_HOME=${CDH_HOME}/lib/hive
    export HIVE_CONF_DIR=${BIN_DIR}/etc/hive
    # hbase
    export HBASE_HOME=${CDH_HOME}/lib/hbase
    export HBASE_CONF_DIR=${BIN_DIR}/etc/hbase
    # spark
    export SPARK_HOME=${CDH_HOME}/lib/spark
    export SPARK_CONF_DIR=${BIN_DIR}/etc/spark
    # kerberos
    export KRB5_CONFIG=${BIN_DIR}/etc/krb5.conf
    if [ -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

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


    5.验证Gateway



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


    source cdh6-env.sh

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

    测试HDFS,MR作业,均成功



    hdfs dfs -ls /
    hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi

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


    YARN和HBASE也可以

    yarn application --listhbase shell

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

    beeline

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

    spark-shell

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

    spark-submit


    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


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

    修改参数,切换集群到cdp

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

    测试HDFS,MR作业,均成功

    hdfs dfs -ls /
    hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 2 5

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

    YARN和HBASE也可以



    yarn application --list
    hbase shell

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

    beeline

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

    spark-shell

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

    spark-submit

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


    6.异常处理



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

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

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

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


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

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

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

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


    3. spark作业失败

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

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

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


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

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

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

    标签:root,CDH,etc,7.1,集群,hadoop11,0888,cdh6
    From: https://blog.51cto.com/u_14049791/5731236

    相关文章