天天看點

CDH 6.3.x/6.2.x 環境下Apache Atlas 2.0.0的編譯與安裝部署(Not-embedded)

前言

按照官方文檔[1]的說法,Atlas的編譯與安裝主要有Not-embedded、embedded兩種方式。

Not-embedded是指Atlas使用的JanusGraph的Hbase與Solr需要單獨部署,embedded指Atlas的在編譯過程中會自動下載下傳JanusGraph的Hbase與Solr。當然JanusGraph的圖資料存儲也可以放在BerkeleyDB、Cassandra中、索引資料也存放在Elasticsearch中。本系列博文預設圖資料存儲在Hbase,索引資料放在Solr中。

這篇博文主要介紹在CDH 6.2.x/CDH 6.3.x的環境下,使用CDH自帶的Hbase、Solr、Kafka,以Not-embedded的方式編譯、內建Atlas,監控CDH中Hive的中繼資料變化。

環境說明

由于Atlas架構較為複雜,且資料存儲在CDH的Hbase、Solr、Kafka中,建議仔細核對軟體環境,并使用我提供的Github上定制的Atlas源碼[2]進行編譯。

CDH 6.2.x[3]/CDH 6.3.x環境如下:

Component Component Version Changes Information
Apache Avro 1.8.2 Changes
Apache Flume 1.9.0 Changes
Apache Hadoop 3.0.0 Changes
Apache HBase 2.1.2 Changes
HBase Indexer 1.5 Changes
Apache Hive 2.1.1 Changes
Hue 4.3.0 Changes
Apache Impala 3.2.0 Changes
Apache Kafka 2.1.0 Changes
Kite SDK 1.0.0 Changes
Apache Kudu 1.9.0 Changes
Apache Solr 7.4.0 Changes
Apache Oozie 5.1.0 Changes
Apache Parquet 1.9.0 Changes
Parquet-format 2.3.1 Changes
Apache Pig 0.17.0 Changes
Apache Sentry 2.1.0 Changes
Apache Spark 2.4.0 Changes
Apache Sqoop 1.4.7 Changes
Apache ZooKeeper 3.4.5 Changes

其中重點關注Hadoop、HBase、Hive、Kafka、Solr、Zookeeper的版本,由于這些元件在CDH 6.3.x與CDH 6.2.x中一緻,本篇文章以CDH 6.2.x為準。

JDK版本:必須使用jdk 8版本,建議從Oracle官方[4]下載下傳。

Atlas版本:2.0.0,使用我提供的Github中源碼進行編譯。

Atlas編譯準備工作

以下修改部分在我提供的Github中代碼已經修改好,注意檢查即可。

  • 配置好maven的settings.xml

             Atlas在編譯時很容易依賴包下載下傳不到的問題,建議使用Github中的maven settings.xml[5],裡面包含了Spring和Oracle的鏡像源。如果有一些依賴包一直下載下傳不下來,建議開啟翻牆Vpn,設定settings.xml中的proxy參數。

             Atlas編譯最好通過mvn指令行運作,使用Idea等IDE可能會編譯、打包失敗。

  • 修改pom中的元件版本,與CDH中一緻

     修改Atlas根目錄的pom檔案,

    保證

    Hbase、Solr、Kafka、Zookeeper版本與CDH一緻,Hive比較特殊不要使用2.1版本,要使用3.1版本。
  • 修改distro/src/conf/atlas-application.properties檔案

     源碼包下distro檔案為編譯結果的存儲目錄。這裡conf下的atlas-application.properties最好提前配置好各項參數。

  • 修改distro/src/conf/atlas-env.sh檔案

     主要修改HBASE_CONF_DIR參數,指向Hbase的配置目錄。

  • 修改distro/src/conf/atlas-log4j.xml檔案

     主要去掉perf log的相關注釋。

Atlas編譯

使用Atlas打包指令:

mvn clean -DskipTests package -Pdist -X
           
DskipTests                最好跳過測試,同時-X以Debug的方式進行打包。      

編譯後的結果是distro/target/apache-atlas-2.0.0-bin.tar.gz。其他的壓縮包是hook壓縮包,不用管。

Atlas與CDH內建

CDH的開發測試環境中元件分布如下:

域名 IP 元件
1 master 172.24.66.66 HBase、Hive、Zookeeper
2 slave01 172.24.66.67 Solr、Kafka、Atlas
3 slave02 172.24.66.68

這裡将Atlas安裝在slave02 172.24.66.67上,由于叢集中有impala已經占用了21000端口,是以需要atlas.rest.address端口改為21001。

上傳Atlas到slave01上

在slave01上建立目錄/usr/local/src/atlas,将apache-atlas-2.0.0-bin.tar.gz解壓到該目錄下。

cd /usr/local/src/atlas

tar xvzf apache-atlas-2.0.0-bin.tar.gz .

內建CDH的Solr

将atlas下的/conf/solr拷貝到/opt/cloudera/parcels/CDH/etc/solr/conf.dist/下

scp -r /usr/local/src/atlas/apache-atlas-2.0.0/conf/solr/* [email protected]:/opt/cloudera/parcels/CDH/etc/solr/conf.dist/

scp -r /usr/local/src/atlas/apache-atlas-2.0.0/conf/solr/* [email protected]:/opt/cloudera/parcels/CDH/etc/solr/conf.dist/

scp -r /usr/local/src/atlas/apache-atlas-2.0.0/conf/solr/* [email protected]:/opt/cloudera/parcels/CDH/etc/solr/conf.dist/

重新開機solr

切換solr 建立collection:

su - solr

/opt/cloudera/parcels/CDH/lib/solr/bin/solr create -c vertex_index -d /opt/cloudera/parcels/CDH/etc/solr/conf.dist/ -shards 1 -replicationFactor 1
/opt/cloudera/parcels/CDH/lib/solr/bin/solr create -c edge_index -d /opt/cloudera/parcels/CDH/etc/solr/conf.dist/ -shards 1 -replicationFactor 1
/opt/cloudera/parcels/CDH/lib/solr/bin/solr create -c fulltext_index -d /opt/cloudera/parcels/CDH/etc/solr/conf.dist/ -shards 1 -replicationFactor 1
           

檢視solr的collection建立情況:

http://172.24.66.67:8983/solr/#/~cloud

內建CDH的Kafka

先測試kafka可以使用

kafka-topics --zookeeper 172.24.66.66:2181 --create --replication-factor 1 --partitions 3 --topic Test3
           

kafka-console-producer  --broker-list 172.24.66.67:9092 --topic Test3

kafka-console-consumer --bootstrap-server 172.24.66.67:9092 --topic Test3 --group TestAtlas --from-beginning

kafka-topics --zookeeper 172.24.66.66:2181 --create --replication-factor 1 --partitions 3 --topic _HOATLASOK
kafka-topics --zookeeper 172.24.66.66:2181 --create --replication-factor 1 --partitions 3 --topic ATLAS_ENTITIES
kafka-topics --zookeeper 172.24.66.66:2181 --create --replication-factor 1 --partitions 3 --topic ATLAS_HOOK
           

內建CDH的Hive

  • atlas-application.properties

    打包到

    atlas-plugin-classloader-2.0.0.jar

    cd /usr/local/src/atlas/apache-atlas-2.0.0/conf
               
    zip -u /usr/local/src/atlas/apache-atlas-2.0.0/hook/hive/atlas-plugin-classloader-2.0.0.jar atlas-application.properties
               
  • 将權限設定為775

    cd /usr/local/src/atlas

    chmod 775 -R apache-atlas-2.0.0

  • 修改hive-site.xml相關的配置項

            1、Hive 輔助 JAR 目錄

                   /usr/local/src/atlas/apache-atlas-2.0.0/hook/hive

             2、hive-site.xml 的 Hive 服務進階配置代碼段(安全閥)

                  <property><name>hive.exec.post.hooks</name><value>org.apache.atlas.hive.hook.HiveHook</value><description>atlas hook!</description></property>

             3、hive-env.sh 的 Gateway 用戶端環境進階配置代碼段(安全閥)

                 HIVE_AUX_JARS_PATH=/usr/local/src/atlas/apache-atlas-2.0.0/hook/hive

             4、hive-site.xml 的 Hive 用戶端進階配置代碼段(安全閥)

                   <property><name>hive.exec.post.hooks</name><value>org.apache.atlas.hive.hook.HiveHook</value><description>atlas hook 2!</description></property>

             5、hive-site.xml 的 HiveServer2 進階配置代碼段(安全閥)

                   <property><name>hive.exec.post.hooks</name><value>org.apache.atlas.hive.hook.HiveHook</value></property><property><name>hive.reloadable.aux.jars.path</name><value>/usr/local/src/atlas/apache-atlas-2.0.0/hook/hive</value></property><property><name>atlas.cluster.name</name><value>primary</value></property>

             6、HiveServer2 環境進階配置代碼段(安全閥)

                   HIVE_AUX_JARS_PATH=/usr/local/src/atlas/apache-atlas-2.0.0/hook/hive

  • 将Atlas包發往各個hive節點

    scp -r /usr/local/src/atlas/apache-atlas-2.0.0 [email protected]:/usr/local/src/atlas/

    scp -r /usr/local/src/atlas/apache-atlas-2.0.0 [email protected]:/usr/local/src/atlas/

  • 将Atlas配置檔案發給各個/etc/hive/conf
    scp /usr/local/src/atlas/apache-atlas-2.0.0/conf/atlas-application.properties [email protected]:/etc/hive/conf
               
    scp /usr/local/src/atlas/apache-atlas-2.0.0/conf/atlas-application.properties [email protected]:/etc/hive/conf
               
    scp /usr/local/src/atlas/apache-atlas-2.0.0/conf/atlas-application.properties [email protected]:/etc/hive/conf
               
  • 在/etc/profile中增加hive環境變量,用于後續import-hive.sh倒入

    export HIVE_HOME="/opt/cloudera/parcels/CDH/lib/hive"

    export HIVE_CONF_DIR="/etc/hive/conf"

    export PATH="$PATH:$HIVE_HOME/bin"

    export HADOOP_HOME="/opt/cloudera/parcels/CDH/lib/hadoop"

    source /etc/profile

    echo $HIVE_HOME;echo $HIVE_CONF_DIR

  • 将hook/hive下所有jar包都拷貝到/opt/cloudera/parcels/CDH/lib/hive/lib下

    scp -r /usr/local/src/atlas/apache-atlas-2.0.0/hook/hive/*

    [email protected]:

    /opt/cloudera/parcels/CDH/lib/hive/lib

    scp -r /usr/local/src/atlas/apache-atlas-2.0.0/hook/hive/*

    [email protected]:

    /opt/cloudera/parcels/CDH/lib/hive/lib

    scp -r /usr/local/src/atlas/apache-atlas-2.0.0/hook/hive/*

    [email protected]:

    /opt/cloudera/parcels/CDH/lib/hive/lib

重新啟動hive

內建CDH的Hbase

将hbase的配置檔案指向到atlas下的conf/hbase

ln -s /etc/hbase/conf/ /usr/local/src/atlas/apache-atlas-2.0.0/conf/hbase/

Ref:

1、http://atlas.apache.org/#/BuildInstallation

2、https://github.com/forrestlmj/Atlas

3、https://docs.cloudera.com/documentation/enterprise/6/release-notes/topics/rg_cdh_62_packaging.html

4、https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

繼續閱讀