如何给Kerberos环境下的CDH集群添加Gateway节点
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
1.文档编写目的
Gateway节点又称为客户端节点,通常用作访问Hadoop集群的接口机。它主要会部署一些客户端的配置,脚本命令,比如HDFS的core-site.xml,hdfs-site.xml以及hadoop的操作命令。
如果你使用的是Apache Hadoop,你只需要将hadoop相关服务的配置和脚本命令拷贝到客户端机器即可,但一旦集群的配置有所修改,你需要注意也同步到客户端机器。如果是CDH集群,客户端节点也会是Cloudera Manager管理的一台机器,它会被安装cloudera-scm-agent服务,以及CDH的Parcel,部署客户端配置Cloudera Manager会统一做,另外如果客户端机器出现异常,Cloudera Manager也会告警。
增加一台Gateway节点,与安装CDH非常类似,你必须要注意一定要做好客户端机器的前置条件准备,参考《CDH安装前置准备》,否则会增加失败。前面Fayson介绍过在非Kerberos环境下部署Gateway节点,参考《如何给CDH集群增加Gateway节点》。本文则主要是介绍如何在Kerberos环境下给CDH集群增加Gateway节点。
- 内容概述
1.创建Gateway节点的主机模板
2.Gateway节点的前置准备
3.增加Gateway节点到集群并应用主机模板
4.GateWay节点命令测试
- 测试环境
1.CDH5.11.2
2.采用具有sudu权限的root用户操作
3.CentOS6.5
- 前置条件
1.CDH5.11.2集群运行正常
2.Gateway节点已准备,并准备好前置
2.创建Gateway节点的主机模板
1.从Cloudera Manager进入“主机模板”页面
2.点击“创建”
3.给模板命名,点击各个服务勾选相应的GateWay角色。
4.点击“创建”,确认创建成功
3.Gateway节点的前置准备
前置准备请参考Fayson之前的文章《CDH安装前置准备》,主要包括以下步骤:
1.确保OS的yum源可以正常使用,通过yum repolist命令可以查看到匹配的OS的所有包
2.确保Cloudera Manager的yum源运行正常
3.hosts文件配置,需要将Gateway节点的IP和hostname加入到CDH集群节点的hosts文件中,并同步到所有机器包括Gateway节点
4.禁用SELinux
5.关闭防火墙
6.设置swap为10
7.关闭透明大页面
8.配置时钟同步
请务必确保以上操作都已完成,并成功配置,否则接下来的增加节点操作会失败!
4.安装Kerberos客户端
由于集群启用了Kerberos服务,所以需要在Gateway节点安装Kerberos客户端。
1.在Gateway节点上执行如下命令
ec2-user@ip-172-31-31-212opt$ sudo yum -y install krb5-libskrb5-workstation
安装成功后查看安装的RPM包
ec2-user@ip-172-31-31-212opt$ rpm -qa |grep krb
krb5-workstation-1.15.1-8.el7.x86_64
krb5-libs-1.15.1-8.el7.x86_64
krb5-devel-1.15.1-8.el7.x86_64
ec2-user@ip-172-31-31-212 opt$
2.将CM集群中的krb5.conf文件拷贝至该Gateway节点
[ec2-user@ip-172-31-22-86 ~]$ scp -i fayson.pem.txt /etc/krb5.conf ip-172-31-31-212:/home/ec2-user/
3.在Gateway节点将krb5.conf文件拷贝至/etc目录下
[ec2-user@ip-172-31-31-212 ~]$ sudo cp krb5.conf /etc/
[ec2-user@ip-172-31-31-212 ~]$ sudo chown root. /etc/krb5.conf
[ec2-user@ip-172-31-31-212 ~]$ ll /etc/krb5.conf
-rw-r--r-- 1 root root 837 Dec 9 00:28 /etc/krb5.conf
[ec2-user@ip-172-31-31-212 ~]$
4.在GateWay节点测试Kerberos客户端是否部署成功
[ec2-user@ip-172-31-31-212 ~]$ kinit -kt fayson.keytab fayson
[ec2-user@ip-172-31-31-212 ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: fayson@CLOUDERA.COM
Valid starting Expires Service principal
12/09/2017 00:31:53 12/10/2017 00:31:53 krbtgt/CLOUDERA.COM@CLOUDERA.COM
renew until 12/16/2017 00:31:53
[ec2-user@ip-172-31-31-212 ~]$
有如上图所示则表示Kerberos客户端安装成功。
5.增加Gateway节点的集群并应用主机模板
1.进入“所有主机”页面
2.点击“向群集添加主机”
3.选择“经典向导”
4.继续
5.输入Gateway节点的IP或者hostname,点击搜索
点击“继续”
6.选择“自定义存储库”,并输入Cloudera Manager的yum源http地址,点击“继续”
7.勾选Java的两个选项,点击“继续”
8.输入Gateway节点的ec2-user密码,并点击“继续”
9.等待cloudera-scm-agent在Gateway节点上安装
安装完成点击“继续”
10.等待分发Parcel包并激活
完成后,点击“继续”
11.主机检查,点击“继续”
12.选择主机模板
13.点击“继续”向集群中添加新主机
等待执行成功
14.点击“继续”,部署客户端配置
15.点击完成,查看主机列表GateWay节点的角色信息
至此,给Kerberos环境下CDH集群增加新的Gateway节点完成。
6.Gateway节点测试
1.HDFS命令测试
[ec2-user@ip-172-31-31-212 ~]$ hadoop fs -ls /
2.HBase命令测试
[ec2-user@ip-172-31-31-212 ~]$ hbase shell
3.Hive命令测试
[ec2-user@ip-172-31-31-212 ~]$ hive
4.hadoop命令向集群提交作业
[ec2-user@ip-172-31-31-212 ~]$ hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 5 5
为天地立心,为生民立命,为往圣继绝学,为万世开太平。
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看
- Angular Service入门
- spring:如何用代码动态向容器中添加或移除Bean ?
- WebComponent魔法堂:深究Custom Element 之 标准构建
- druid 数据源 使用属性文件的一个坑
- Angular企业级开发(3)-Angular MVC实现
- spring: 加载远程配置
- java:如何让程序按要求自行重启?
- Angular学习-指令入门
- java:如何让程序按要求自行重启?
- linux:nohup 不生成 nohup.out的方法
- 让VIM支持Python2 by update-alternatives
- Angular中ngCookies模块介绍
- 如何让jboss eap 6.2+ 的多个war应用共享 jar 包?
- scala 学习笔记(07) 一等公民的函数
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android ListView里控件添加监听方法的实例详解
- Android实现底部图片选择Dialog
- AndroidImageSlider实现炫酷轮播广告效果
- Android获取手机本机号码的实现方法
- Android中RecyclerView的item宽高问题详解
- Andoroid实现底部图片选择Dialog效果
- Android中ExpandableListView使用示例详解
- Android 高德地图之poi搜索功能的实现代码
- Android实现底部弹出按钮菜单升级版
- Android实现单页面浮层可拖动view的示例代码
- 漫画:最长公共子序列
- RecyclerView的简单使用
- Android Parcelable接口使用方法详解
- 假期结束了,撸一篇技术和大伙分享下吧!
- Android AIDL实现跨进程通信的示例代码