Atlas 2.1.0 實踐(3)—— Atlas整合HIve

獨孤風發表於2021-01-25

Atlas整合Hive

在安裝好Atlas以後,如果想要使用起來,還要讓Atlas與其他元件建立聯絡。

其中最常用的就是Hive。

通過Atlas的架構,只要配置好Hive Hook ,那麼每次Hive做任何操作就會寫入Kafka從而被atlas接收。

並在Atlas中已圖的形式展示出來。

Hive Model

都會記錄Hive哪些操作資訊呢?Altas對Hive Model進行了定義。

包含以下內容:

1、實體型別:

hive_db

型別: Asset

屬性:qualifiedName, name, description, owner, clusterName, location, parameters, ownerName

hive_table

型別:DataSet

屬性:qualifiedName, name, description, owner, db, createTime, lastAccessTime, comment, retention, sd, partitionKeys, columns, aliases, parameters, viewOriginalText, viewExpandedText, tableType, temporary

hive_column

​ 型別:DataSet

​ 屬性:qualifiedName, name, description, owner, type, comment, table

hive_storagedesc

​ 型別:Referenceable

​ 屬性: qualifiedName, table, location, inputFormat, outputFormat, compressed, numBuckets, serdeInfo, bucketCols, sortCols, parameters, storedAsSubDirectories

hive_process

​ 型別:Process

​ 屬性:qualifiedName, name, description, owner, inputs, outputs, startTime, endTime, userName, operationType, queryText, queryPlan, queryId, clusterName

hive_column_lineage

​ 型別:Process

​ 屬性:qualifiedName, name, description, owner, inputs, outputs, query, depenendencyType, expression

2、列舉型別:

​ hive_principal_type 值:USER, ROLE, GROUP

3、構造型別

hive_order 屬性: col, order

hive_serde 屬性: name, serializationLib, parameters

HIve實體的結構:

hive_db.qualifiedName:     <dbName>@<clusterName>
hive_table.qualifiedName:  <dbName>.<tableName>@<clusterName>
hive_column.qualifiedName: <dbName>.<tableName>.<columnName>@<clusterName>
hive_process.queryString:  trimmed query string in lower case

配置Hive hook

hive hook會監聽hive的 create/update/delete 操作,下面是配置步驟:

1、修改hive-env.sh(指定包地址)

export HIVE_AUX_JARS_PATH=/opt/apps/apache-atlas-2.1.0/hook/hive

2、修改hive-site.xml(配置完需要重啟hive)

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

注意,這裡其實是執行後的監控,可以有執行前,執行中的監控。

3、同步配置
拷貝atlas配置檔案atlas-application.properties到hive配置目錄
新增配置:

atlas.hook.hive.synchronous=false
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000
atlas.cluster.name=primary
atlas.rest.address=http://doit33:21000

將Hive後設資料匯入Atlas

bin/import-hive.sh

Using Hive configuration directory [/opt/module/hive/conf]

Log file for import is /opt/module/atlas/logs/import-hive.log

log4j:WARN No such property [maxFileSize] in org.apache.log4j.PatternLayout.

log4j:WARN No such property [maxBackupIndex] in org.apache.log4j.PatternLayout.

輸入使用者名稱:admin;輸入密碼:admin

Enter username for atlas :- admin

Enter password for atlas :-

Hive Meta Data import was successful!!!

踩坑全記錄

一、找不到類 org.apache.atlas.hive.hook.hivehook

hive第三方jar包沒加進去

小技巧 使用hive-shell 看一下jar包加進去沒有 set這將列印由使用者或配置單元覆蓋的配置變數列表。

以加入elsaticsearch-hadoop-2.1.2.jar為例,講述在Hive中加入第三方jar的幾種方式。

1,在hive shell中加入

hive> add jar /home/hadoop/elasticsearch-hadoop-hive-2.1.2.jar;

連線方式 是否有效
Hive Shell 不需要重啟Hive服務就有效
Hive Server 無效

2,Jar放入${HIVE_HOME}/auxlib目錄

在${HIVE_HOME}中建立資料夾auxlib,然後將自定義jar檔案放入該資料夾中。
此方法新增不需要重啟Hive。而且比較便捷。

連線方式 是否有效
Hive Shell 不需要重啟Hive服務就有效
Hive Server 重啟Hive服務才生效

3,HIVE.AUX.JARS.PATH和hive.aux.jars.path

hive-env.sh中的HIVE.AUX.JARS.PATH和hive-site.xml的hive.aux.jars.path配置對伺服器無效,僅對當前hive shell有效,不同的hive shell相互不影響,每個hive shell都需要配置,可以配置成資料夾形式。
HIVE.AUX.JARS.PATH和hive.aux.jars.path僅支援本地檔案。可配置成檔案,也可配置為資料夾。

連線方式 是否有效
Hive Shell 重啟Hive服務才生效
Hive Server 重啟Hive服務才生效
二、HIVE報錯 Failing because I am unlikely to write too

HIVE.AUX.JARS.PATH配置不對

hive-env.sh指令碼中有一段

# Folder containing extra libraries required for hive compilation/execution can be controlled by:
if [ "${HIVE_AUX_JARS_PATH}" != "" ]; then
  export HIVE_AUX_JARS_PATH=${HIVE_AUX_JARS_PATH}
elif [ -d "/usr/hdp/current/hive-webhcat/share/hcatalog" ]; then
  export HIVE_AUX_JARS_PATH=/usr/hdp/current/hive-webhcat/share/hcatalog
fi

如果給HIVE_AUX_JARS_PATH設值,則/usr/hdp/current/hive-webhcat/share/hcatalog就會被忽略掉。

hive只能讀取一個HIVE_AUX_JARS_PATH

在一個地方集中放置我們的共享jar包,然後在/usr/hdp/current/hive-webhcat/share/hcatalog下面建立一相應的軟連線就可以

sudo -u hive ln -s /usr/lib/share-lib/elasticsearch-hadoop-2.1.0.Beta4.jar /usr/hdp/current/hive-webhcat/share/hcatalog/elasticsearch-hadoop-2.1.0.Beta4.jar

瞭解大資料實時計算 感受資料流動之美 歡迎關注 實時流式計算

相關文章