如何在Azkaban中安装HDFS插件以及与CDH集成
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
Fayson的github:https://github.com/fayson/cdhproject
提示:代码块部分可以左右滑动查看噢
1.文档编写目的
前面Fayson介绍了《如何编译安装Azkaban服务》和《如何编译Azkaban插件》,本篇文章主要介绍如何在Azkaban中安装HDFS插件以及与CDH集群集成。
- 内容概述
1.环境准备
2.安装HDFS插件
3.插件功能验证
- 测试环境
1.Redhat7.2
2.使用root用户操作
3.Azkaban版本为3.43.0
2.环境准备
1.配置Hadoop环境变量,在/etc/profile文件末尾增加如下配置:
export HADOOP_HOME=/opt/cloudera/parcels/CDH
export HADOOP_CONF_DIR=/etc/hadoop/conf.cloudera.yarn
(可左右滑动)
执行命令source /etc/profile命令使其立即生效,建议退出终端重新登录,否则会在启动Azkaban Web服务找不到HADOOP_HOME问题。
2.由于CDH集群启用了Kerberos,安装HDFS插件需要使用到Kerberos账号
在KDC中创建一个azkaban/admin@FAYSON.COM 的用户,使用命令导出该用户的keytab文件放在/opt/cloudera/azkaban/目录下
xst -norandkey -k azkaban.keytab azkaban/admin@CLOUDERA.COM
(可左右滑动)
3.修改CDH集群HDFS的core-stie.xml配置文件,增加azkaban代理用户
<property>
<name>hadoop.proxyuser.azkaban.groups</name>
<value>*</value>
</property><property>
<name>hadoop.proxyuser.azkaban.hosts</name>
<value>*</value>
</property>
(可左右滑动)
保存配置回到CM主页根据提示重启相应服务。
3.安装HDFS插件
1.在前面一篇文章中Fayson已经编译好了HDFS的插件
2.将azkaban-hdfs-viewer-3.0.0.tar.gz拷贝至/opt/cloudera/azkaban/azkaban-web-server/plugins/viewer目录下
[root@ip-172-31-21-83 packages]# pwd
/root/azkaban-plugins/dist/hdfsviewer/packages
[root@ip-172-31-21-83 packages]# cp azkaban-hdfs-viewer-3.0.0.tar.gz /opt/cloudera/azkaban/azkaban-web-server/plugins/viewer/
(可左右滑动)
3.进入plugins/views目录下解压azkaban-hdfs-viewer-3.0.0.tar.gz包并重命名为hdfs
[root@ip-172-31-21-83 packages]# cd /opt/cloudera/azkaban/azkaban-web-server/plugins/viewer/
[root@ip-172-31-21-83 viewer]# tar -zxvf azkaban-hdfs-viewer-3.0.0.tar.gz
[root@ip-172-31-21-83 viewer]# mv azkaban-hdfs-viewer-3.0.0 hdfs
[root@ip-172-31-21-83 viewer]# rm -rf azkaban-hdfs-viewer-3.0.0.tar.gz
[root@ip-172-31-21-83 viewer]# ll
(可左右滑动)
4.进入hdfs/conf目录修改插件配置文件plugin.properties内容如下
viewer.name=HDFS
viewer.path=hdfs
viewer.order=1
viewer.hidden=false
viewer.external.classpaths=extlib/*
viewer.servlet.class=azkaban.viewer.hdfs.HdfsBrowserServlet
hadoop.security.manager.class=azkaban.security.HadoopSecurityManager_H_2_0
azkaban.should.proxy=true
proxy.user=hdfs/admin
proxy.keytab.location=/opt/cloudera/azkaban/hdfs.keytab
allow.group.proxy=true
file.max.lines=1000
(可左右滑动)
由于集群的Hadoop版本为hadoop2所以hadoop.security.manager.class需要指定为azkaban.security.HadoopSecurityManager_H_2_0
5.拷贝CDH集群中的依赖包至/opt/cloudera/azkaban/azkaban-web-server/extlib目录下
[root@ip-172-31-21-83 ~]# cd /opt/cloudera/parcels/CDH/jars/
[root@ip-172-31-21-83 jars]# scp commons-cli-1.2.jar hadoop-auth-2.6.0-cdh5.13.1.jar hadoop-common-2.6.0-cdh5.13.1.jar hadoop-hdfs-2.6.0-cdh5.13.1.jar protobuf-java-2.5.0.jar commons-configuration-1.7.jar hadoop-yarn-api-2.6.0-cdh5.13.1.jar hadoop-yarn-common-2.6.0-cdh5.13.1.jar /opt/cloudera/azkaban/azkaban-web-server/extlib/
[root@ip-172-31-21-83 jars]# scp htrace-core* protobuf-java-2.5.0.jar /opt/cloudera/azkaban/azkaban-web-server/extlib/
(可左右滑动)
6.由于CDH集群Hadoop为2.x,所以需要将hdfs插件lib目录下的安全认证的jar包替换为2.x版本
将编译插件/root/azkaban-plugins/dist/hadoopsecuritymanager-yarn/jars目录下的azkaban-hadoopsecuritymanageryarn-3.0.0.jar包拷贝至/opt/cloudera/azkaban/azkaban-web-server/plugins/viewer/hdfs/lib/
[root@ip-172-31-21-83 jars]# cp azkaban-hadoopsecuritymanageryarn-3.0.0.jar /opt/cloudera/azkaban/azkaban-web-server/plugins/viewer/hdfs/lib/
[root@ip-172-31-21-83 jars]# cd /opt/cloudera/azkaban/azkaban-web-server/plugins/viewer/hdfs/lib/
[root@ip-172-31-21-83 lib]# rm -rf azkaban-hadoopsecuritymanager-3.0.0.jar
(可左右滑动)
7.重启Azkaban-web-server服务
[root@ip-172-31-21-83 azkaban-web-server]# pwd
/opt/cloudera/azkaban/azkaban-web-server
[root@ip-172-31-21-83 azkaban-web-server]# bin/azkaban-web-shutdown.sh
[root@ip-172-31-21-83 azkaban-web-server]# bin/start-web.sh
(可左右滑动)
4.HDFS插件验证
1.访问Web界面使用azkaban用户登录
2.访问HDFS菜单查看HDFS的文件系统
在命令行执行命令
可以看到在命令与Azkaban界面访问显示的目录一致,说明HDFS插件安装成功
3.在界面上可以看到“Change User”按钮
该功能可以模拟任意用户访问HDFS,该功能主要有plugins/viewer/hdfs/conf/plugin.propertis配置文件中的allow.group.proxy控制true表示开启false表示关闭。
提示:代码块部分可以左右滑动查看噢
为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。
推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。
原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操
- SDP(10):文本式大数据运算环境-MongoDB-Engine功能设计
- Kaggle Titanic 生存预测比赛超完整笔记(下)
- SDP(9):MongoDB-Scala - data access and modeling
- 数据清理的遗留问题处理(r6笔记第87天)
- 一次DB time抖动发现的expdp的bug(r6笔记第86天)
- Python中map函数
- 10g,11g中数据库静默安装中的细小差别(r6笔记第85天)
- SDP(8):文本式数据库-MongoDB-Scala基本操作
- SDP(7):Cassandra- Cassandra-Engine:Streaming
- TensorFlow实现神经网络入门篇
- 27.反射,类加载器,设计模式,jdk新特性
- SDP(6):分布式数据库运算环境- Cassandra-Engine
- 配置dg broker的问题分析及修复(r6笔记第84天)
- SDP(5):ScalikeJDBC- JDBC-Engine:Streaming
- 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 数组属性和方法
- why哥被一道基础面试题给干懵了,一气之下写出万字长文。
- 结构与算法(03):单向链表和双向链表
- 有赞crash平台符号化实践
- 什么是时间分片(Time Slicing)?
- 逐行分析鸿蒙系统的 JavaScript 框架
- 48张小图带你领略Flex 布局之美
- 怎样设计一个 JavaScript 插件系统
- 一道 React 面试题:在浏览器、组件和元素中都渲染了些什么?
- 「新手入门福利」一张脑图带你掌握Git命令
- LeetCode | 58.最后一个单词的长度
- 模拟面试,解锁大厂 ——从Android的事件分发说起
- scRepertoire||单细胞免疫组库分析:R语言应用(一)
- Docker体验(二) - 自建Image
- 小程序代码复用 - template
- 五. Spring Security 权限管理