Hive dialect in Apache Flink® clusters on HDInsight on AKS
Feljegyzés
2025. január 31-én kivonjuk az Azure HDInsightot az AKS-ből. 2025. január 31-ig át kell telepítenie a számítási feladatokat a Microsoft Fabricbe vagy egy azzal egyenértékű Azure-termékbe, hogy elkerülje a számítási feladatok hirtelen leállítását. Az előfizetés többi fürtje le lesz állítva, és el lesz távolítva a gazdagépről.
Fontos
Ez a szolgáltatás jelenleg előzetes kiadásban elérhető. A Microsoft Azure Előzetes verzió kiegészítő használati feltételei további jogi feltételeket tartalmaznak, amelyek a bétaverzióban, előzetes verzióban vagy egyébként még nem általánosan elérhető Azure-funkciókra vonatkoznak. Erről az adott előzetes verzióról az Azure HDInsight az AKS előzetes verziójában tájékozódhat. Ha kérdése vagy funkciójavaslata van, küldjön egy kérést az AskHDInsightban a részletekkel együtt, és kövessen minket további frissítésekért az Azure HDInsight-közösségről.
Ebből a cikkből megtudhatja, hogyan használhatja a Hive dialektust az Apache Flink-fürtökben a HDInsighton az AKS-en.
Bevezetés
A felhasználó nem módosíthatja az alapértelmezett flink
dialektust hive dialektusra az AKS-fürtök HDInsightban való használatához. Az SQL-műveletek sikertelenek, ha az alábbi hibával hive dialektusra változtak.
*java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader can't be cast to class java.net.URLClassLoader*
A probléma oka egy nyitott Hive Jira miatt merül fel. A Hive jelenleg azt feltételezi, hogy a rendszerosztály-betöltő az URLClassLoader egy példánya. Ebben Java 11
a feltételezésben nem ez a helyzet.
Hive-dialektus használata a Flinkben
Hajtsa végre a következő lépéseket a webssh-ban:
- A meglévő flink-sql-connector-hive*jar eltávolítása a lib helyen
rm /opt/flink-webssh/lib/flink-sql-connector-hive*jar
- Töltse le a következő jar-t a podban
webssh
, és adja hozzá az /opt/flink-webssh/lib wget https://aka.ms/hdiflinkhivejdk11jaralatt. (A fenti hive jar rendelkezik a javítás https://issues.apache.org/jira/browse/HIVE-27508)
mv /opt/flink-webssh/lib/flink-table-planner-loader-1.17.0-*.*.*.*.jar /opt/flink-webssh/opt/ mv /opt/flink-webssh/opt/flink-table-planner_2.12-1.17.0-*.*.*.*.jar /opt/flink-webssh/lib/
- Adja hozzá a következő kulcsokat a konfigurációkezeléshez core-site.xml
flink
szakaszban:fs.azure.account.key.<STORAGE>.dfs.core.windows.net: <KEY> flink.hadoop.fs.azure.account.key.<STORAGE>.dfs.core.windows.net: <KEY>
- A meglévő flink-sql-connector-hive*jar eltávolítása a lib helyen
Az alábbiakban áttekintjük a hive-dialect lekérdezéseket
- Hive-dialektus végrehajtása particionálás nélkül az Flinkben
root [ ~ ]# ./bin/sql-client.sh Flink SQL> Flink SQL> create catalog myhive with ('type' = 'hive', 'hive-conf-dir' = '/opt/hive-conf'); [INFO] Execute statement succeed. Flink SQL> use catalog myhive; [INFO] Execute statement succeed. Flink SQL> load module hive; [INFO] Execute statement succeed. Flink SQL> use modules hive,core; [INFO] Execute statement succeed. Flink SQL> set table.sql-dialect=hive; [INFO] Session property has been set. Flink SQL> set sql-client.execution.result-mode=tableau; [INFO] Session property has been set. Flink SQL> select explode(array(1,2,3));Hive Session ID = 6ba45be2-360e-4bee-8842-2765c91581c8 > [!WARNING] > An illegal reflective access operation has occurred > [!WARNING] > Illegal reflective access by org.apache.hadoop.hive.common.StringInternUtils (file:/opt/flink-webssh/lib/flink-sql-connector-hive-3.1.2_2.12-1.16-SNAPSHOT.jar) to field java.net.URI.string > [!WARNING] > Please consider reporting this to the maintainers of org.apache.hadoop.hive.common.StringInternUtils > [!WARNING] > `Use --illegal-access=warn` to enable warnings of further illegal reflective access operations > [!WARNING] > All illegal access operations will be denied in a future release select explode(array(1,2,3)); +----+-------------+ | op | col | +----+-------------+ | +I | 1 | | +I | 2 | | +I | 3 | +----+-------------+ Received a total of 3 rows Flink SQL> create table tttestHive Session ID = fb8b652a-8dad-4781-8384-0694dc16e837 [INFO] Execute statement succeed. Flink SQL> insert into table tttestHive Session ID = f239dc6f-4b58-49f9-ad02-4c73673737d8),(3,'c'),(4,'d'); [INFO] Submitting SQL update statement to the cluster... [INFO] SQL update statement has been successfully submitted to the cluster: Job ID: d0542da4c4252f9494298666ff4e9f8e Flink SQL> set execution.runtime-mode=batch; [INFO] Session property has been set. Flink SQL> select * from tttestHive Session ID = 61b6eb3b-90a6-499c-aced-0598366c5b31 +-----+-------+ | key | value | +-----+-------+ | 1 | a | | 1 | a | | 2 | b | | 3 | c | | 3 | c | | 3 | c | | 4 | d | | 5 | e | +-----+-------+ 8 rows in set Flink SQL> QUIT;Hive Session ID = 2dadad92-436e-426e-a88c-66eafd740d98 [INFO] Exiting Flink SQL CLI Client... Shutting down the session... done. root [ ~ ]# exit
Az adatok ugyanabban a tárolóban lesznek megírva, amely a hive/warehouse könyvtárban van konfigurálva.
- Hive-dialektus végrehajtása flinkben partíciókkal
create table tblpart2 (key int, value string) PARTITIONED by ( part string ) tblproperties ('sink.partition-commit.delay'='1 s', 'sink.partition-commit.policy.kind'='metastore,success-file');
insert into table tblpart2 Hive Session ID = 78fae85f-a451-4110-bea6-4aa1c172e282),(2,'b','d'),(3,'c','d'),(3,'c','a'),(4,'d','e');
Referencia
- Hive Dialect az Apache Flinkben
- Az Apache, az Apache Flink, a Flink és a társított nyílt forráskód projektnevek az Apache Software Foundation (ASF) védjegyei.