20. πŸ”¬ ВСстированиС работоспособности Apache Atlas

ОписаниС процСсса установки Apache Atlas 2.2.0 Π² Cloudera CDH 6.3.2.

2021-12-06

ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Apache Atlas’Π° ΠΊ Hadoop’Ρƒ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ Π² работоспособности прилоТСния.

1. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Hive

1.1. На машинС с Ρ€ΠΎΠ»ΡŒΡŽ HDFS Gateway, Π² своём домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ создаём csv-Ρ„Π°ΠΉΠ» ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π² HDFS:

TESTFILENAME="atlas25.csv"

cat << EOF > ${TESTFILENAME}
1,Hive Hook
2,HBase Hook
3,Spark Hook
EOF

hdfs dfs -put ${TESTFILENAME}

1.2. Π•ΡΡ‚ΡŒ Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ Π°ΠΊΠΊΠ°ΡƒΠ½Ρ‚ hive, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅ заставим ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π² Π½Π° домашний ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ + созданный Ρ„Π°ΠΉΠ», поэтому Π²Ρ‹Π΄Π°Ρ‘ΠΌ ΠΏΡ€Π°Π²Π°:

HDFSHOMEDIR="/user/dmr"

hdfs dfs -setfacl -m user:hive:rwx ${HDFSHOMEDIR}
hdfs dfs -setfacl -m user:hive:rw ${TESTFILENAME}

1.3. На машинС с Ρ€ΠΎΠ»ΡŒΡŽ ‘Hive Gateway’ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ Apache Hive с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ beeline :

$ beeline

beeline> !connect jdbc:hive2://dev-aux110p.test2.lan:10000/;ssl=true;sslTrustStore=/usr/java/jdk1.8.0_181-cloudera/jre/lib/security/jssecacerts
Enter username for jdbc:hive2://dev-aux110p.test2.lan:10000/: dmr
Enter password for jdbc:hive2://dev-aux110p.test2.lan:10000/: ******************

0: jdbc:hive2://dev-aux110p.test2.lan:100> show databases;
+-------------------+
|   database_name   |
+-------------------+
| michael_test  |
| default           |
| dmrtest    |
+-------------------+

1.4. ВыполняСм созданиС Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…:

0: jdbc:hive2://dev-aux110p.test2.lan:100> create database atlas25;

1.5. ВыполняСм созданиС Hive-Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹:

0: jdbc:hive2://dev-aux110p.test2.lan:100> CREATE TABLE IF NOT EXISTS atlas25.atlas25 (Num int, HookName String)
COMMENT 'Atlas function check'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;

1.6. ВыполняСм ΠΈΠΌΠΏΠΎΡ€Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Ρ€Π°Π½Π΅Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

0: jdbc:hive2://dev-aux110p.test2.lan:100> LOAD DATA INPATH 'atlas25.csv' OVERWRITE INTO TABLE atlas25.atlas25;

1.7. Π’ Apache Atlas’Π΅ выполняСм поиск сущностСй ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову atlas25 ΠΈ наблюдаСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Apache Atlas Search

1.8. Π©Ρ‘Π»ΠΊΠ½ΡƒΠ² ΠΏΠΎ ссылкС Π½Π° ‘atlas25’ с Ρ‚ΠΈΠΏΠΎΠΌ ‘hive_table’, Π½Π° ΠΎΡ‚ΠΊΡ€Ρ‹ΡˆΠ΅ΠΉΡΡ страницС, Π²ΠΎ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Lineage, наблюдаСм “Π»ΠΈΠ½Π΅ΠΉΠΊΡƒ”: Apache Atlas Search

1.9. ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния Π²Ρ‹ΡˆΠ΅ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… ΡƒΠΏΡ€Π°ΠΆΠ½Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ информация ΠΈΠ· Hive Π² Atlas поступаСт.

2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· HBase

2.1. На машинС с Ρ€ΠΎΠ»ΡŒΡŽ HDFS Gateway, Π² своём домашнСм ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ создаём csv-Ρ„Π°ΠΉΠ» ΠΈ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌ Π² HDFS:

TESTFILENAME="atlas26.csv"

cat << EOF > ${TESTFILENAME}
1,Hive Hook
2,HBase Hook
3,Spark Hook
EOF

hdfs dfs -put ${TESTFILENAME}

2.2. На машинС с Ρ€ΠΎΠ»ΡŒΡŽ ‘HBase Gateway’ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ kerberos-Ρ‚ΠΈΠΊΠ΅Ρ‚ ΠΈ создаём HBase-Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ‘atlas26’:

kinit dmr
echo "create 'atlas26', 'n', 'hook'" | hbase shell

2.3. Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° atlas26.csv Π² ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ HBase-Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ:

$ hbase org.apache.hadoop.hbase.mapreduce.ImportTsv \
-Dimporttsv.separator=',' \
-Dimporttsv.columns=HBASE_ROW_KEY,n,hook atlas26 /user/dmr/atlas26.csv

2.4. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌ содСрТимоС Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ (Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ это Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ):

$ echo "scan 'atlas26'" | hbase shell
...
scan 'atlas26'
ROW                             COLUMN+CELL                                                                             
 1                              column=n:, timestamp=1638889043225, value=Hive Hook                                     
 2                              column=n:, timestamp=1638889043225, value=HBase Hook                                    
 3                              column=n:, timestamp=1638889043225, value=Spark Hook                                    
3 row(s)
Took 0.7221 seconds

2.5. Π’ Apache Atlas’Π΅ выполняСм поиск сущностСй ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΌΡƒ слову atlas26 ΠΈ наблюдаСм Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: Apache Atlas Search

2.6. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠΈ ΠΎΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Hive, HBase Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Атласу Ρ„Π°ΠΉΠ»-источник Π΄Π°Π½Π½Ρ‹Ρ…, поэтому “Π›ΠΈΠ½Π΅ΠΉΠΊΠ°” останСтся пуста: Apache Atlas Empty

2.7. Π’ любом случаС, Π² случаС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ прохоТдСния этого тСста, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· HBase Π² Apache Atlas ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚.

3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈΠ· Spark

ΠŸΡ€ΠΈ случаС Π΄ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ.

4. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки

4.1. https://community.cloudera.com/t5/Community-Articles/Using-Apache-Atlas-to-view-Data-Lineage/ta-p/246305