1. 程式人生 > >踩坑記——Azkaban Hdfs Plugin 安裝

踩坑記——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