Hive On Tez自定義Job Name
今天在使用Hive On Tez的時候發現一個問題,那就是我們無法設定Tez執行在Yarn上面的Job Name。按照設定MR正常的步驟來設定Job Name發現也是無效的。
這讓我很迷惑,於是想了一下是不是因為TezSession的時候已經寫死了導致的,然通過將Hive的原始碼下載下來(我用的是Hive-3.1.2的原始碼,下載地址:https://mirror.bit.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-src.tar.gz)
將原始碼下載以後,按照MR的原始碼HiveSession
來推理,想的應該是TezSession
,於是去查詢這個類,理想總是很好的,但是現實往往相反,於是又想到了有一個SessionState
的類,於是又衍生一個想法是不是也有一個叫TesSessionState
的類呢?然後查詢原始碼發現還真的有這個類,那麼我們初步定位到了在這個類中,然後開始閱讀該類ql/src/java/org/apache/hadoop/hive/ql/exec/tez/TezSessionState.java
的原始碼發現:
final TezClient session = TezClient.newBuilder("HIVE-" + sessionId, tezConfig)
.setIsSession(true).setLocalResources(commonLocalResources)
.setCredentials(llapCredentials).setServicePluginDescriptor(servicePluginsDescriptor)
.build();
在原始碼中寫死了Job Name是"HIVE-" + sessionId
也就是我們在頁面中看到的HIVE-隨機生成的UUID
,我們自定義Job Name也很簡單,修改原始碼如下:
String tezJobName = tezConfig.get("tez.job.name", "HIVE-" + sessionId);
LOG.info("Tez Job Name " + tezJobName);
final TezClient session = TezClient.newBuilder(tezJobName, tezConfig)
.setIsSession(true).setLocalResources(commonLocalResources)
.setCredentials(llapCredentials).setServicePluginDescriptor(servicePluginsDescriptor)
.build();
修改原始碼後執行以下maven命令進行原始碼重新編譯
mvn clean package -DskipTests -U -X
注意:如果修改了maven下載倉庫為國內映象的話,一定要將maven中央倉庫加到pom.xml檔案中(根目錄的)否則會出現下載jar問題
將編譯後的ql/target/hive-exec-3.1.2.jar
替換原有的Hive中的lib依賴即可!!!
此時我們使用set tez.job.name=tezAppName;
即可,在Yarn介面中即可看到Application Name已經改成了我們自定義的名稱。
使用hive --hiveconf tez.job.name=tezAppName
相關文章
- hive on tez踩坑記2-hive0.14 on tez薦Hive
- hive 3.0.0自定義函式Hive函式
- Hive中自定義函式Hive函式
- HIVE中的自定義函式Hive函式
- hive job oom問題HiveOOM
- HIVE自定義函式的擴充套件Hive函式套件
- Hive--->建立自定義的UDTF函式Hive函式
- Hive常用函式及自定義函式Hive函式
- Hive學習之二 《Hive的安裝之自定義mysql資料庫》HiveMySql資料庫
- Hive中配置與編寫自定義UDF函式Hive函式
- Hive中新增自定義函式(UDF)方法及實踐Hive函式
- spark讀取hive異常,java.lang.NoClassDefFoundError: org/apache/tez/dag/api/SessionNotRunningSparkHiveJavaErrorApacheAPISession
- oracle 定義jobOracle
- Hive函式(內建函式+自定義標準函式UDF)Hive函式
- HIVE 資料定義 DDLHive
- hive學習筆記之十:使用者自定義聚合函式(UDAF)Hive筆記函式
- 自定義View:自定義屬性(自定義按鈕實現)View
- [Hadoop]Hive r0.9.0中文文件(五)之使用者自定義反射HadoopHive反射
- 08.Django自定義模板,自定義標籤和自定義過濾器Django過濾器
- 【匯入匯出】資料泵 job_name引數的使用
- 定義JOB的執行間隔
- 自定義ImageView完成圓形頭像自定義View
- 好程式設計師大資料培訓分享之hive常見自定義函式程式設計師大資料Hive函式
- 自定義VIEWView
- 自定義圓環
- 自定義SnackBar
- 自定義useState
- 自定義_ajax
- 自定義Annotation
- 自定義OrderedMap
- 自定義 Drawable
- 自定義UICollectionViewLayoutUIView
- 自定義UITabBarUItabBar
- 自定義scrollbar
- 自定義Drawable
- 自定義ToastAST
- 自定義吐司
- 自定義 tabBartabBar