精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Hdfs 相對(duì)路徑與靜態(tài)代碼塊引起的問題

大數(shù)據(jù)
HIVE 作為大數(shù)據(jù)生態(tài)的數(shù)倉解決方案,因?yàn)闅v史的原因在很多行業(yè)很多公司都有著廣泛的應(yīng)用。對(duì)于比較復(fù)雜的業(yè)務(wù)邏輯,HIVE SQL 往往比較難以表達(dá),此時(shí)大家在開發(fā)中往往會(huì)輔以 HIVE UDF。所以充分理解和掌握 HIVE UDF正確的表寫和使用方式,是大數(shù)據(jù)從業(yè)人員必不可少的一項(xiàng)技能。

[[414192]]

本文轉(zhuǎn)載自微信公眾號(hào)「明哥的IT隨筆」,作者IT明哥。轉(zhuǎn)載本文請(qǐng)聯(lián)系明哥的IT隨筆公眾號(hào)。

前言

大家好,我是明哥。

HIVE 作為大數(shù)據(jù)生態(tài)的數(shù)倉解決方案,因?yàn)闅v史的原因在很多行業(yè)很多公司都有著廣泛的應(yīng)用。對(duì)于比較復(fù)雜的業(yè)務(wù)邏輯,HIVE SQL 往往比較難以表達(dá),此時(shí)大家在開發(fā)中往往會(huì)輔以 HIVE UDF。所以充分理解和掌握 HIVE UDF正確的表寫和使用方式,是大數(shù)據(jù)從業(yè)人員必不可少的一項(xiàng)技能。

關(guān)于HIVE UDF 的使用,明哥在前段時(shí)間發(fā)過兩篇博文,分別是 “如何在 hive udf 中訪問配置數(shù)據(jù)-方案匯總與對(duì)比” 和 “淺析 hive udaf 的正確編寫方式- 論姿勢的重要性" ,兩篇博文描述的都是 HIVE UDF 在編寫使用過程中容易犯的錯(cuò)誤。

但 UDF 編寫使用過程中遇到的問題往往很多遠(yuǎn)遠(yuǎn)不止以上兩個(gè),所以明哥決定編寫一個(gè)系列 - “淺析 hive udf 的正確編寫和使用方式 - 論姿勢的重要性“,以上兩篇博文可以算做這個(gè)系列中的系列一和系列二,本文是該系列的系列三。以下是正文。

時(shí)間緊張,急于知道結(jié)論的小伙伴,可以直接看最后一部分,問題總結(jié)。

問題現(xiàn)象與初步分析

產(chǎn)品部人員反饋,某 HIVE UDF 通過 hive 的舊客戶端即 hive service --cli方式可以正常使用,但使用新客戶端 beeline 時(shí)卻會(huì)報(bào)錯(cuò),客戶端的報(bào)錯(cuò)信息沒有啥明確的有意義的信息,如下圖圖一和圖二所示:

beeline

hive

咨詢產(chǎn)品部開發(fā)人員,該 UDF 的功能是返回給定業(yè)務(wù)日期的下一個(gè)業(yè)務(wù)日期,在背后會(huì)讀取 HDFS上的一個(gè)日期類配置文件;經(jīng)查看該 UDF 源碼,發(fā)現(xiàn)該日期類配置文件的路徑,使用的是相對(duì)路徑,如下圖所示:

code-relative-path

熟悉 HDFS 的小伙伴都知道 HDFS 有相對(duì)路徑的概念,即代碼中用相對(duì)路徑方式指定的文件, 在不同用戶執(zhí)行作業(yè)時(shí)會(huì)被解析為不同用戶的根目錄下的文件,比如相對(duì)路徑 dir1/fileA, 使用hive 用戶執(zhí)行時(shí)作業(yè)時(shí)會(huì)被解析為 /user/hive/dir1/fileA, 使用xyz用戶執(zhí)行作業(yè)時(shí)會(huì)被解析為 /user/xyz/dir1/fileA, 很多 hdfs 上的文件找不到的問題都是因?yàn)樵撛颉R驗(yàn)橛械沫h(huán)境有的用戶能執(zhí)行成功而另外的環(huán)境另外的用戶執(zhí)行卻會(huì)失敗,我們往往戲謔是人品問題,哈哈。

所以順藤摸瓜,看到這里有使用相對(duì)路徑指定文件,我們一個(gè)自然的思路是查看日志驗(yàn)證問題。需要注意,這里要查看的是服務(wù)端的日志,即 beeline 連接的 hiveserver2 實(shí)例的日志,在 cdh 中一般是 /var/log/hive下。果不其然,看到了熟悉的報(bào)錯(cuò)信息:

hiveserver2-log

進(jìn)一步咨詢產(chǎn)品部人員,他們把該配置文件上傳到了 /user/root/ 目錄下,沒有上傳過其它目錄。這也解釋了,為什么 他們 hive service --cli 方式能夠成功,而 beeline方式如 beeline -u jdbc:hive2://xxx:10000/default -n userA -p passwd 方式卻會(huì)失敗:因?yàn)樗麄兪褂们罢邥r(shí)是固定在 root 登錄用戶的身份下提交的作業(yè)(這其實(shí)不太合規(guī)范,一般不建議用root身份運(yùn)行應(yīng)用程序),而使用后者時(shí)實(shí)際生效的用戶是 -n 參數(shù)指定的用戶而不是當(dāng)前登錄用戶!(沒有啟用用戶身份認(rèn)證或啟用ldap認(rèn)證時(shí),都是通過 -n 參數(shù)指定用戶身份;啟用kerberos認(rèn)證時(shí),通過kerberos的 principal指定用戶身份)。這里還有個(gè)小細(xì)節(jié),如果沒有啟用身份認(rèn)證且 beeline后沒有使用 -n參數(shù)指定用戶,真正生效的用戶時(shí)anonyous匿名用戶,對(duì)應(yīng)的 home directory 是 /user/anonymous.

分析到這里,我們覺得只需要上傳該配置文件到對(duì)應(yīng)用戶的 home directory下,即可解決該問題了。但實(shí)際驗(yàn)證發(fā)現(xiàn),啪啪打臉,同樣的問題仍然存在!

問題進(jìn)一步分析與解決

再次仔細(xì)查看相關(guān)代碼,發(fā)現(xiàn)了問題所在:該 UDF 讀取配置文件的內(nèi)容,使用的是類的靜態(tài)代碼塊(不是靜態(tài)方法)。為什么使用靜態(tài)代碼塊會(huì)引起問題?要回答這個(gè)問題,需要比較扎實(shí)的 JAVA 功底, 和對(duì) UDF 執(zhí)行機(jī)制的深刻理解。小伙伴們可以下想下。

code-static

不賣關(guān)子,直接說原因:我們知道 SQL 和 UDF 的解析編譯優(yōu)化和生成 mr/tez/spark 任務(wù)是在 hiveserver2 中進(jìn)行的,但并不是所有的 sql 和 udf 都會(huì)生成 mr/tez/spark 任務(wù),比如這里該 UDF就不會(huì)生成 mr/tez/spark 任務(wù),也不需要向 yarn 申請(qǐng)資源獲得 container 容器,而是直接在 hiveserver2 中執(zhí)行的。所以前幾次 UDF的失敗調(diào)用時(shí),該 hiveserver2 這個(gè)jvm 已經(jīng)加載了對(duì)應(yīng)的類,此次再次調(diào)用該 UDF 時(shí)不需要重新加載該類,自然也不會(huì)重新執(zhí)行類的靜態(tài)代碼塊,所以沒有重新讀取配置文件的內(nèi)容,所以沒有更新對(duì)應(yīng)的配置變量,執(zhí)行也就失敗了。

重新啟動(dòng)該 hiveserver2 實(shí)例后,再次提交該 udf,會(huì)重新加載對(duì)應(yīng)的類,并執(zhí)行其中的靜態(tài)代碼塊讀取配置文件的內(nèi)容,讀取成功后會(huì)更新對(duì)應(yīng)的配置變量,最后作業(yè)執(zhí)行成功。

問題總結(jié)

  • HDFS 有相對(duì)路徑的概念,即代碼中用相對(duì)路徑方式指定的文件, 在不同用戶執(zhí)行作業(yè)時(shí)會(huì)被解析為不同用戶的根目錄下的文件,比如相對(duì)路徑 dir1/fileA, 使用hive 用戶執(zhí)行時(shí)作業(yè)時(shí)會(huì)被解析為 /user/hive/dir1/fileA, 使用xyz用戶執(zhí)行作業(yè)時(shí)會(huì)被解析為 /user/xyz/dir1/fileA, 很多 hdfs 上的文件找不到的問題都是因?yàn)樵撛?
  • Hive SQL 和 UDF 的解析編譯和優(yōu)化是在 hiveserver2 中進(jìn)行的,解析編譯和優(yōu)化的結(jié)果一般是生成 mr/tez/spark 任務(wù),這些 mr/tez/spark 任務(wù)是在向 yarn 申請(qǐng)獲得的 container 容器對(duì)應(yīng)的 jvm 中執(zhí)行的;但并不是所有的 sql 和 udf 都會(huì)生成 mr/tez/spark 任務(wù),此時(shí)其真正的執(zhí)行就是直接在 hiveserver2 這個(gè)已經(jīng)存在的 jvm 中執(zhí)行的,該 hiveserver2 這個(gè) jvm 的生命周期跟 udf 的執(zhí)行無關(guān),如果涉及到配置環(huán)境變量,系統(tǒng)參數(shù),或加載類及執(zhí)行靜態(tài)代碼塊,要尤其小心,必要時(shí)需要重啟 hiveserver2;(udf 中需要謹(jǐn)慎只用靜態(tài)代碼塊,因?yàn)殪o態(tài)代碼塊只有在初次加載類的時(shí)候才會(huì)執(zhí)行)
  • udf中讀取配置文件,有多種方式,常見的有:

 

配置文件使用絕對(duì)路徑指定,且在代碼中寫死絕對(duì)路徑;

配置文件使用絕對(duì)路徑,但在代碼中通過讀取本地配置文件獲取hdfs上配置文件的最終絕對(duì)路徑;

配置文件使用相對(duì)路徑,在客戶現(xiàn)場部署時(shí)需要確定執(zhí)行作業(yè)的真正用戶身份,并上傳該配置文件到對(duì)應(yīng)用戶的跟目錄下的特定路徑;

 

責(zé)任編輯:武曉燕 來源: 明哥的IT隨筆
相關(guān)推薦

2011-07-11 13:29:03

JAVA

2010-06-23 17:26:01

2011-06-23 15:33:24

SEO

2021-08-04 10:15:14

Go路徑語言

2009-08-06 18:31:57

C#相對(duì)路徑絕對(duì)路徑

2010-03-18 08:48:30

Python入門

2022-08-29 14:11:10

Linux絕對(duì)路徑相對(duì)路徑

2022-11-16 10:13:29

Linux相對(duì)路徑絕對(duì)路徑

2009-08-07 13:24:35

C#獲取相對(duì)路徑

2022-04-24 15:33:38

鴻蒙開發(fā)操作系統(tǒng)

2009-08-07 13:38:18

C#文件相對(duì)路徑

2009-08-07 13:16:27

c#相對(duì)路徑寫法

2009-08-06 18:03:21

C#相對(duì)路徑

2009-08-07 14:47:23

C#路徑問題

2024-02-01 08:28:28

2009-08-27 10:40:56

Java路徑

2016-11-24 15:03:58

JAVANATIVE野指針

2016-11-24 15:39:03

JavaNATIVE野指針

2021-09-02 07:56:46

HDFSHIVE元數(shù)據(jù)

2019-08-30 09:54:39

LinuxC語言文本編輯器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

成人av第一页| 欧美日本久久| 欧美性欧美巨大黑白大战| 神马影院我不卡午夜| 97精品人妻一区二区三区香蕉 | 亚洲乱码国产乱码精品精天堂| 国产福利视频在线播放| 熟女俱乐部一区二区| 在线观看特色大片免费视频| 中文字幕精品一区二区三区精品 | 白嫩亚洲一区二区三区| 亚洲成人午夜影院| 日韩精品欧美在线| 性网爆门事件集合av| 老司机午夜精品视频| 久久香蕉国产线看观看av| 中文字幕人妻一区| 久久人体av| 欧美日韩精品在线观看| 麻豆中文字幕在线观看| 亚洲色图欧美视频| 国产乱码一区二区三区| 国产精品99免视看9| 久久精品www人人爽人人| 精品国产乱码久久久久久果冻传媒| 日韩视频免费直播| 蜜臀一区二区三区精品免费视频| a级片免费在线观看| 中文成人av在线| 国产一区二区精品在线| 国产精品久久久久久69| 日韩国产欧美在线播放| 久久乐国产精品| 五月天av网站| 天天超碰亚洲| 在线观看中文字幕亚洲| 91精品国产自产| 一区二区三区四区高清视频| 精品视频一区二区不卡| av免费中文字幕| av资源新版天堂在线| 亚洲精品自拍动漫在线| 免费看啪啪网站| 在线免费看黄网站| 国产女同性恋一区二区| 蜜桃传媒视频麻豆第一区免费观看| 亚洲女人18毛片水真多| 国产一区二区三区久久悠悠色av | 久久国际精品| 欧美精品xxxxbbbb| 成年网站在线播放| 日韩天堂在线| 欧美自拍丝袜亚洲| 香蕉视频网站入口| 免费电影日韩网站| 日本精品免费观看高清观看| 国产精品无码专区av在线播放| 九色porny丨国产首页在线| 亚洲狠狠爱一区二区三区| 4444亚洲人成无码网在线观看| 黄色网在线看| 亚洲视频狠狠干| 99热这里只有精品7| 精品麻豆一区二区三区| 亚洲欧美视频一区| 男女啪啪免费观看| 国产三线在线| 午夜精品成人在线| 免费观看精品视频| 视频精品导航| 91精品国产免费久久综合| 涩多多在线观看| 亚洲精品国产九九九| 亚洲第一级黄色片| 中文字幕在线免费看线人| 国产毛片一区二区三区| 中文字幕国产亚洲| 国产黄在线免费观看| 欧美午夜久久| 欧美在线激情网| 少妇无套内谢久久久久| 激情综合一区二区三区| 91欧美精品午夜性色福利在线 | 91久久久久久白丝白浆欲热蜜臀| 精品视频999| 中文字幕亚洲日本| 日韩精品亚洲aⅴ在线影院| 亚洲性夜色噜噜噜7777| 神马午夜精品91| 亚洲高清久久| 国产精品久久久久久久久免费| 国产精品久久久久久久久久久久久久久久久久 | 超碰在线网站| 一道本成人在线| 女人高潮一级片| 极品束缚调教一区二区网站| 亚洲人成电影网| 成熟的女同志hd| 亚洲中午字幕| 91在线播放国产| 日韩欧美在线观看一区二区| 亚洲欧洲日本在线| 91成人app| 国产亚洲一区二区三区| 自拍偷拍99| 一区二区三区短视频| 欧美日韩五月天| 中文字幕乱视频| 99久久影视| 4438全国成人免费| 国产又黄又大又爽| 久久蜜桃av一区精品变态类天堂| 黄色免费高清视频| 97久久香蕉国产线看观看| 日韩精品一区二区在线| 韩国女同性做爰三级| 欧美日韩视频一区二区三区| 国产精品精品一区二区三区午夜版 | 午夜精彩视频在线观看不卡| 在线观看免费的av| 亚洲欧洲色图| 高清欧美性猛交| 国产口爆吞精一区二区| 久久精品在线观看| 久久久久久免费看| 久久久久久久久久久久电影| 亚洲人成绝费网站色www| 精品在线免费观看视频| 激情都市一区二区| 亚洲国产欧美一区二区三区不卡| 漫画在线观看av| 精品国产一区二区三区不卡| 搜索黄色一级片| 美女久久久精品| 欧美性色黄大片人与善| 成人观看网址| 亚洲白虎美女被爆操| 日韩高清dvd碟片| 捆绑变态av一区二区三区| 欧美一区2区三区4区公司二百 | 国产精品久久久久免费a∨| 五月天婷婷社区| 亚洲午夜免费电影| www.黄色网| 欧美另类视频| 91免费在线观看网站| 91精选在线| 日韩三级在线观看| 欧美精品色哟哟| 国产成人精品亚洲777人妖| 欧美a级黄色大片| 欧美2区3区4区| 免费91在线视频| 国产丝袜视频在线观看| 亚洲精品中文字幕乱码三区 | 少妇精品在线| 欧美国产日本在线| 亚洲经典一区二区三区| 亚洲午夜精品久久久久久久久| 99热这里只有精品2| 欧美日韩mv| 国产精品久久7| 久草免费在线视频| 亚洲人成电影网站色xx| 中文字幕第三页| 中文字幕亚洲综合久久菠萝蜜| 在线观看免费的av| 欧美淫片网站| 久久精品日产第一区二区三区| 天堂在线中文网官网| 国产性猛交xxxx免费看久久| 日本视频www色| 亚洲欧美激情小说另类| 无码人妻久久一区二区三区蜜桃| 亚洲精品一级| 日韩一区二区电影在线观看| 亚洲伊人精品酒店| 久久久女人电视剧免费播放下载| 天堂网在线中文| 欧美伊人精品成人久久综合97| 91ts人妖另类精品系列| 国产精品一二三区| 亚洲自偷自拍熟女另类| 欧美艳星介绍134位艳星| 91色中文字幕| 校园春色亚洲| 久久精品国产欧美激情| 亚洲奶汁xxxx哺乳期| 一本大道av伊人久久综合| 女教师淫辱の教室蜜臀av软件| 国产传媒欧美日韩成人| 凹凸日日摸日日碰夜夜爽1| 天天天综合网| 久久综合婷婷综合| 96视频在线观看欧美| 97国产精品视频人人做人人爱| 国产免费a∨片在线观看不卡| 欧美一区二区三区在线视频 | 亚洲久久视频| 亚洲永久一区二区三区在线| 国产劲爆久久| 国产精品亚洲综合天堂夜夜| 毛片在线导航| 中文字幕一区二区精品| 日批免费在线观看| 91精品视频网| www.久久久久久久| 亚洲午夜精品网| 欧美视频一区二区在线| 久久久久久久久久久久久女国产乱 | 国产成人精品亚洲777人妖 | 国产精品午夜影院| 亚洲三级在线播放| av女人的天堂| 91亚洲精品久久久蜜桃| 免费人成视频在线播放| 日本特黄久久久高潮| 黄色国产一级视频| 午夜国产精品视频免费体验区| 日韩成人在线资源| 夜色77av精品影院| 国产伦精品一区二区三区在线 | 婷婷五月色综合| 加勒比色老久久爱综合网| 91久久精品视频| 日本肉肉一区| 茄子视频成人在线| 超碰99在线| 午夜欧美不卡精品aaaaa| 成人在线观看亚洲| 色狠狠久久aa北条麻妃| 九色视频网站在线观看| 亚洲第一中文字幕| 亚洲黄色片视频| 欧美一区二区在线看| 97视频免费在线| 欧美一区二区在线不卡| 国产女主播福利| 欧美日韩国产色站一区二区三区| 日本中文字幕在线观看视频| 狠狠色狠狠色综合日日五| 日韩精品一区二区在线播放| 午夜精品成人在线| 欧美一二三区视频| 懂色av影视一区二区三区| 日产亚洲一区二区三区| 亚洲一二三四在线| 国产一级免费观看| 亚洲国产精品综合小说图片区| 欧美交换国产一区内射| 亚洲一区二区精品久久av| 久久精品国产av一区二区三区| 亚洲一区二区av在线| 伊人国产在线观看| 午夜精品久久久久久不卡8050 | 欧美性淫爽ww久久久久无| 波多野结衣视频网址| 欧美性色黄大片手机版| 中文文字幕一区二区三三| 欧美日韩你懂得| 国产绳艺sm调教室论坛| 欧美大片日本大片免费观看| 黑人精品一区二区三区| 亚洲国产高清高潮精品美女| 手机福利在线| 中文字幕日韩视频| caopon在线免费视频| 欧美第一淫aaasss性| av成人福利| 日本aⅴ大伊香蕉精品视频| 日本一区二区三区视频在线| 成人免费在线网址| 成人看片黄a免费看视频| 久久免费99精品久久久久久| 精品视频国产| 蜜臀av性久久久久蜜臀av| 最新成人av网站| 天堂中文视频在线| 国产剧情一区二区三区| 欧美xxxxx精品| 国产欧美一区二区精品忘忧草 | 91成人看片| 精品久久久久久久久久中文字幕| 日韩黄色小视频| 日韩av.com| 国产成人精品亚洲午夜麻豆| 一级国产黄色片| 国产精品美女久久久久aⅴ| 青青草原国产视频| 欧美在线制服丝袜| 午夜美女福利视频| 亚洲一级黄色av| 性欧美高清come| 国产精品电影在线观看| 日韩成人18| 婷婷久久青草热一区二区| 亚洲性图久久| 亚洲黄色av片| 91麻豆国产福利精品| 老熟妻内射精品一区| 疯狂做受xxxx欧美肥白少妇| 97av免费视频| 日韩国产精品视频| a级影片在线| 国产精品777| 激情小说一区| 50度灰在线观看| 蜜桃精品视频在线| 黄色录像a级片| 亚洲欧洲av另类| 五月天婷婷导航| 亚洲国产欧美在线成人app| 免费的黄网站在线观看| 欧洲永久精品大片ww免费漫画| 国产一区二区三区免费观看在线 | 蜜桃无码一区二区三区| 亚洲午夜免费视频| jlzzjlzz亚洲女人18| 在线播放亚洲激情| 伊人网在线播放| 国产精品久久7| 欧美久久视频| 中文字幕在线观看视频www| 国产精品美女久久久久久久久久久 | 成人免费网址| 国产精品视频中文字幕91| 午夜先锋成人动漫在线| 免费在线观看视频a| 国产成人免费视频| 99精品久久久久| 欧美高清视频在线高清观看mv色露露十八| 国内三级在线观看| 国产成人黄色av| 亚欧洲精品视频在线观看| 国产 日韩 亚洲 欧美| 国产99久久久国产精品| 丰满少妇被猛烈进入一区二区| 欧美三级韩国三级日本三斤| 国产在线91| 国产精品久久av| 欧美理论电影大全| 免费黄色一级网站| 国产偷国产偷亚洲高清人白洁| 无码人妻精品一区二区| 亚洲男人天堂视频| 亚洲黄色免费看| 日本一区高清在线视频| 丝袜美腿一区二区三区| 丰满少妇高潮一区二区| 91国模大尺度私拍在线视频| 福利小视频在线观看| 国产精品久久久久久久久免费| 成人一区而且| 久久9精品区-无套内射无码| 久久麻豆一区二区| 波多野结衣高清视频| 在线播放日韩欧美| 国产精品毛片aⅴ一区二区三区| 久久最新免费视频| 高清在线成人网| www.日本精品| 亚洲少妇激情视频| 日本精品久久| 欧美在线观看黄| 99久久精品国产毛片| 蜜臀精品一区二区三区| 中文字幕亚洲综合久久筱田步美| 综合久久av| 草草视频在线免费观看| 久久精品视频网| 一级做a爰片久久毛片16| 久久69精品久久久久久国产越南| ccyy激情综合| 成人精品视频一区二区| 综合分类小说区另类春色亚洲小说欧美| 国产视频在线观看视频| 国内外成人免费激情在线视频网站| 男男gay无套免费视频欧美| 在线观看av网页| 亚洲激情中文1区| 邻居大乳一区二区三区| 成人午夜高潮视频| 亚洲高清电影| 精品人体无码一区二区三区| 日韩视频免费直播| 美女写真久久影院| 99精品一级欧美片免费播放| 成人的网站免费观看| 最近中文字幕免费在线观看| 精品中文字幕在线| 国产精品欧美日韩一区| 91 视频免费观看| 欧美日韩综合视频| 米奇精品一区二区三区| 精品一区二区三区免费毛片| 麻豆精品视频在线观看| 日韩精品视频播放| 久久成人综合视频| 国产精品欧美日韩一区| 99免费观看视频|