通過WebChat訪問Hive元數(shù)據(jù)

      網(wǎng)友投稿 1055 2025-04-01

      WebHcat樣例代碼

      Hive提供了WebHcat接口。該文檔利用java把該接口進行了封裝,可以使用java代碼訪問Hive。

      代碼中只封裝了一些常用接口,對于沒有其他的接口,可以參考封裝好的代碼自行進行封裝。

      通過WebChat訪問Hive元數(shù)據(jù)

      1.1??????主要難點:

      因hive的webHcat接口未提供認(rèn)證接口,我們這邊只能借助spnego的方式來進行kerberos認(rèn)證。

      首先,先進行kerberos認(rèn)證。認(rèn)證完成后,獲得認(rèn)證的信息。(Subject對象用于存放認(rèn)證信息。這是kerberos底層實現(xiàn),有興趣可以自行研究下。)

      然后,對HTTP進行封裝,設(shè)置spnego方式需要的配置參數(shù)。參考該方法:WebHcatHttpClient。

      最后,采用Subject.doas()方法建立認(rèn)證通道。在該方法內(nèi)進行所有的業(yè)務(wù)操作。

      1.2??????代碼介紹:

      Body文件夾:webHcat需要用到的一些對象。

      Information文件夾:HTTP請求需要的一些類。

      比如:

      HttpAuthInfo:用于構(gòu)建HTTP請求。

      Kerberos:用于封裝kerberos認(rèn)證需要的信息。

      RestApi:WebHcat的接口類。

      RestHelper:響應(yīng)頭的解析和json字符串轉(zhuǎn)換。

      WebHcatHttpClient:構(gòu)建spnego的請求。

      WebHcat:主類,里面提供了webhcat接口的使用方法。

      1.3??????樣例代碼

      String user = "lyysxg@HADOOP.COM"; String keytab = "D:\\fwc\\SparkStudy\\src\\main\\resources\\user.keytab"; String krb5Location = "D:\\fwc\\SparkStudy\\src\\main\\resources\\krb5.conf"; InputStream InputStream = null; HttpAuthInfo httpAuthInfo = null; try { inputStream = new FileInputStream(WebHcat.class.getClassLoader().getResource(DEFAULT_CONFIG_FILE).getPath()); Properties p = new Properties(); p.load(inputStream); httpAuthInfo = HttpAuthInfo.newBuilder().setIp(p.getProperty("ip")) .setPort(Integer.valueOf(p.getProperty("port"))) .build(); WebHcatHttpClient client = WebHcatHttpClient.getClient(httpAuthInfo); RestApi api = new RestApi(client); api.login(user, keytab, krb5Location);

      User:是用戶名。

      Keytab:keytab文件的路徑。

      krb5Location:krb5文件的路徑。

      api.login(user, keytab, krb5Location):調(diào)用認(rèn)證代碼進行認(rèn)證。

      1.?????列出所有的數(shù)據(jù)庫---api.searchPath();

      2.?????獲取指定數(shù)據(jù)庫的詳細信息。api.searchPath(reqDatabaseBody1);

      參數(shù):ReqDatabaseBody對象。

      3.?????創(chuàng)建數(shù)據(jù)庫api.CreateDataBase(createDataBaBody,?"Test1");

      參數(shù):CreateDataBaBody對象,為數(shù)據(jù)庫的名字。

      4.?????創(chuàng)建表,api.CreateTable(reqCreateTableBody,?"Test1",?"lyysxg1");

      參數(shù):ReqCreateTableBody對象,數(shù)據(jù)庫名,表名

      5.?????查詢數(shù)據(jù)庫中的所有,api.searchTable(searchTable);

      參數(shù):searchTable對象

      6.?????重命名表,api.RenameTable("Test1",?"lyysxg1",?"zwllyysxg");

      參數(shù):數(shù)據(jù)庫,表名,新表名

      7.?????刪除表,api.DeleteTable(reqDelTableBody);

      參數(shù):ReqDelTableBody對象

      8.?????刪除數(shù)據(jù)庫,api.DeleteDatabase(delete);

      參數(shù):DeleteDataBaseBody對象。

      運行效果:

      1.4??????附件

      EI企業(yè)智能 FusionInsight Hive 數(shù)據(jù)庫

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel如何自動向下復(fù)制?(excel怎么設(shè)置向下拖是自動復(fù)制)
      下一篇:Python學(xué)習(xí)筆記:閉包與作用域
      相關(guān)文章
      亚洲国产精品久久网午夜| 亚洲精品无码久久久久| 久久久久亚洲AV无码麻豆| 国产精一品亚洲二区在线播放| 2048亚洲精品国产| 亚洲Av无码乱码在线观看性色| 亚洲av无码一区二区三区天堂| 国产亚洲中文日本不卡二区| 亚洲三级在线播放| 亚洲videos| 亚洲综合色婷婷在线观看| 国内精品久久久久影院亚洲 | 国产成人亚洲精品影院| 亚洲成AV人在线观看网址| 亚洲国产91精品无码专区| gogo全球高清大胆亚洲| 亚洲国产a级视频| 国产亚洲欧洲Aⅴ综合一区| 久久青青草原亚洲av无码| 中文字幕亚洲一区二区va在线| 精品亚洲视频在线观看| 亚洲一区二区三区香蕉| 亚洲av永久无码精品表情包| 亚洲视频精品在线| 亚洲国产av一区二区三区丶| 亚洲资源最新版在线观看| 国产AV旡码专区亚洲AV苍井空| 亚洲一日韩欧美中文字幕在线| 亚洲妇女无套内射精| 国产午夜亚洲精品不卡电影| 亚洲精品久久久www | 亚洲精品无码永久在线观看| jlzzjlzz亚洲乱熟在线播放| 亚洲热妇无码AV在线播放| 久久亚洲成a人片| 亚洲日本在线播放| 亚洲熟女综合一区二区三区| 国产成人亚洲综合a∨| 中文字幕亚洲一区二区va在线| 亚洲AV无码成人精品区天堂| 亚洲第一成年网站大全亚洲|