踩坑記——Azkaban Hdfs Plugin 安裝
本文詳細記錄了:centos7.2, cdh 5.12 環境下azkaban 3.20.0 Hdfs外掛的安裝過程。因為官網文件在此部分的說明極為簡陋,且3.x的外掛需要原始碼構建並且問題諸多,因此留下此篇文章助諸位過坑。
官網文件:https://azkaban.github.io/azkaban/docs/latest/#hdfs-browser
一. Ant環境安裝
1. 安裝包下載
wget http://mirror.bit.edu.cn/apache//ant/binaries/apache-ant-1.10.1-bin.tar.gz
2. 解壓至目錄
tar zxvf apache-ant-1.10.1-bin.tar.gz
mkdir /opt/ant
mv xxx /opt/ant
3. 新增環境變數並使其生效
vim /etc/profile
export ANT_HOME=/opt/ant
export PATH=${PATH}:$ANT_HOME/bin
source /etc/profile
4. 檢查環境變數是否配置成功
ant -version
如圖:
二. NodeJs安裝
1. 安裝包下載
curl --silent --location https://rpm.nodesource.com/setup_5.x | bash -
2. yum安裝
yum install -y nodejs
三. JCE配置(預設JDK祕鑰限制策略問題)
1. JCE下載(此處是jdk8的jce,請選擇對應版本)
wget http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip
2. 解壓並替換
替換目錄:java_home/jre/lib/security/下的 local_policy.jar 和 US_export_policy.jar(注意備份)
四. 外掛安裝
現在正式開始外掛的編譯安裝
1. 根據官網提示,首先 npm 安裝 dustjs-linkedin
npm install -g less dustjs-linkedin
2. 下載外掛原始碼並解壓
地址:https://github.com/azkaban/azkaban-plugins
3. 進入解壓後的根目錄,執行ant編譯
如上圖所示,然後執行:
ant
4. 進入hadoopsecuritymanager目錄,執行ant編譯
hadoop 1.x:
cd plugins/hadoopsecuritymanager
ant
hadoop 2.x:
cd plugins/hadoopsecuritymanager-yarn
ant
編譯結果位於 ../../dist 下對應路徑的 jar目錄下
5. 進入 hdfs 外掛目錄,執行ant編譯
cd plugins/hdfsviewer
ant package
6. 將編譯好的外掛tar包,放入azkaban_web的外掛目錄下解壓並修改目錄名為hdfs
編譯成功的外掛包 xxx.tar.gz 位於 ../../dist/jobtype/packages/ 目錄下
1) 建立viewer目錄
mkdir plugins/viewer
2) 將tar包在viewer目錄下解壓並改名為hdfs
tar zxvf xxx.tar
mv xxxx hdfs
7. 修改外掛的配置檔案
vim conf/plugin.properties
內容示例:
viewer.name=HDFS
viewer.path=hdfs # 與path中的名字對應
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 # hadoop 1.x請選擇 xxx_H_1_0, hadoop 2.x請選擇 xxx_H_2_0
azkaban.should.proxy=false
proxy.user=azkaban
proxy.keytab.location=
allow.group.proxy=false
file.max.lines=1000
8. 複製hadoop相關依賴包至lib目錄
注:外掛下的extlib不好使,建議以如下方式把相關依賴放入azkaban_web根目錄下的extlib
cp /opt/cloudera/parcels/CDH/jars/commons-cli-1.2.jar hadoop-auth-2.5.1.jar /opt/azkaban/azkaban-web-server-3.20.0/extlib
cp /opt/cloudera/parcels/CDH/jars/hadoop-auth-2.6.0-cdh5.12.0.jar /opt/azkaban/azkaban-web-server-3.20.0/extlib
cp /opt/cloudera/parcels/CDH/jars/hadoop-common-2.6.0-cdh5.12.0.jar /opt/azkaban/azkaban-web-server-3.20.0/extlib
cp /opt/cloudera/parcels/CDH/jars/hadoop-hdfs-2.6.0-cdh5.12.0.jar /opt/azkaban/azkaban-web-server-3.20.0/extlib
cp /opt/cloudera/parcels/CDH/jars/protobuf-java-2.5.0.jar /opt/azkaban/azkaban-web-server-3.20.0/extlib
cp /opt/cloudera/parcels/CDH/jars/commons-configuration-1.7.jar /opt/azkaban/azkaban-web-server-3.20.0/extlib
cp /opt/cloudera/parcels/CDH/jars/hadoop-yarn-api-2.6.0-cdh5.12.0.jar /opt/azkaban/azkaban-web-server-3.20.0/extlib
cp /opt/cloudera/parcels/CDH/jars/hadoop-yarn-common-2.6.0-cdh5.12.0.jar /opt/azkaban/azkaban-web-server-3.20.0/extlib
下述2個jar,因版本和依賴性較為特殊,可從maven單獨下載並放入lib目錄,在此提供pom資訊:
<dependency><groupId>org.apache.htrace</groupId>
<artifactId>htrace-core</artifactId>
<version>4.1.0-incubating</version>
<dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>2.1.0</version>
</dependency>
效果如圖所示:
9. 複製azkaban hadoopsecuritymanager jar至外掛lib目錄
hadoop 1.x:
cp /opt/azkaban/azkaban-plugins-master/dist/hadoopsecuritymanager/jars/azkaban-hadoopsecuritymanager-3.0.0.jar /opt/azkaban/azkaban-web-server-3.20.0/plugins/viewer/hdfs/lib
hadoop 2.x:
cp /opt/azkaban/azkaban-plugins-master/dist/hadoopsecuritymanager-yarn/jars/azkaban-hadoopsecuritymanageryarn-3.0.0.jar /opt/azkaban/azkaban-web-server-3.20.0/plugins/viewer/hdfs/lib
10. 修改azkaban_web 的配置檔案,新增外掛路徑
vim conf/azkaban.properties
內容:
# Azkaban plugin settings
azkaban.hdfsviewer.plugin.dir=plugins/viewer/hdfs/
11. 手動新增hadoop環境變數
vim /etc/profile
export HADOOP_HOME=/opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12.0.p0.29
export HADOOP_CONF_DIR=/etc/hadoop/conf.cloudera.yarn
source /etc/profile
12. 重啟服務
./bin/azkaban-web-shutdown.sh
./bin/azkaban-web-start.sh