1. 程式人生 > >Hive外部分割槽表載入flume打到hdfs上檔案,讀不到.tmp檔案

Hive外部分割槽表載入flume打到hdfs上檔案,讀不到.tmp檔案

    flume打到hdfs上時,按照檔案大小生成檔案,在達到指定大小之前資料都是以.tmp檔案形式儲存在hdfs上,hive外部表也會載入這些檔案,但是當檔案完成後.tmp會消失,這時候hive會報找不到檔案的錯誤。解決方法是自己寫hive的pathfilter類,hive載入資料的時候把tmp檔案過濾掉不載入即可。

 錯誤資訊如下:

自定義PathFilter類如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** * @Title: FileFilterExcludeTmpFiles.java  * @Description: hive載入分割槽表時會載入.tmp的檔案,該型別檔案在flume滾動資料之後就會消失,此時hive找不到該檔案就會報錯
*                     該類會將.tmp的檔案過濾掉,不載入進hive的分割槽表中  * @version V0.1.0 * @see */ public class FileFilterExcludeTmpFiles implements PathFilter{ private static final Logger logger = LoggerFactory.getLogger(FileFilterExcludeTmpFiles.class); public boolean accept(Path path) { // TODO Auto-generated method stub
        return !name.startsWith("_") && !name.startsWith(".") && !name.endsWith(".tmp"); } }
編寫完後,打成jar包上傳伺服器,再修改hive-site.xml檔案,修改如下: ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <property> <name>hive.aux.jars.path</name><value>file:///usr/lib/mylib/FilterTmpPath.jar</
value>
<description>The location of the plugin jars that contain implementations of user defined functions and serdes.</description> </property> <property> <name>mapred.input.pathFilter.class</name> <value>cn.utils.hive.FileFilterExcludeTmpFiles</value> </property>
切記:不能有回車換行這樣的字元,要不然回報一些亂七八糟的錯誤,博主就被坑的七零八碎的!!!!

相關推薦

Hive外部分割槽載入flumehdfs檔案到.tmp檔案

    flume打到hdfs上時,按照檔案大小生成檔案,在達到指定大小之前資料都是以.tmp檔案形式儲存在hdfs上,hive外部表也會載入這些檔案,但是當檔案完成後.tmp會消失,這時候hive會報找不到檔案的錯誤。解決方法是自己寫hive的pathfilter類,hive載入資料的時候把tmp檔案過濾

HiveHdfs外部分割槽

1、目錄及資料準備hadoop dfs -rmr /tmp/oss_access_test/2017-04-01 hadoop dfs -mkdir -p /tmp/oss_access_test/2

Hive 建立外部分割槽載入資料以及如何分桶

第一  建立資料庫並自定義路徑 如 /sogou/500w         hive> create  database  sogou location '/sogou/500w' ;              進入改表中建立表        hive> use

Hive內部外部分割槽以及外部分割槽建立以及匯入資料例項講解

源資料格式: [[email protected]144113 zhang_dd_edw]$ more data.txt 25502#hdfs://ns1/user/dd_edw/adm.db/adm_dealer_order_list_di_big/dt=2015-07-

Hive應用:外部分割槽

介紹 Hive可以建立外部分割槽表。建立表的時候,分割槽要在建表語句中體現。建完之後,你不會在表中看到資料,需要進行分割槽新增,使用alter語句進行新增。然後資料才會顯示。 微信公眾號:大資料小世界 樣例 有如下的目錄結構。 建表語句: create ext

hive中建立分割槽,再關聯到hdfs有關位置,而需匯入資料到hive

【需求】有時候我們不想匯入資料到hive中,而是通過在hive中建立關聯表的方式查詢hdfs上的資料,之後就能通過hive客戶端或者spark應用程式獲取hive的資料了。【原理】由於在hdfs中已存入了我們提前整理好的結構化資料(例如每條記錄都是以逗號分隔),那麼在hive

Hive建立外部分割槽

drop table if exists employee; create external table employee ( name string, salar

Hive: 建立分割槽(partition)及分割槽匯入csv文字檔案資料

2018.11.21 文章目錄 前言 方法 前言 某專案生產環境中的Hive是按月份分割槽,而測試環境的沒有分割槽,導致部分功能無法驗證。 方法 基本思路:分別建立兩個表,一張是分割槽表,另一

hive新建分割槽

hive新建分割槽表語句如下: create table table_name (col1_name string comment '備註1', col2_name string comment '備註2', col3_name string comment '備註3', col4_name string

大資料開發之Hive篇----分割槽的構建

在hive當中為什麼要分割槽呢?就是要提高我們的查詢速度,那麼它是怎麼提高查詢速度的呢?首先,分割槽是指根據某個或幾個欄位來將資料表格切分成多個板塊,根據你所指定的欄位,這個欄位裡面有多少個值,我們就將分割槽建成多少個。所以,分割槽其實是在表這個單位下的下一個單位。因此,在H

Hive學習筆記 --- Hive建立分割槽

wechat:812716131 ------------------------------------------------------ 技術交流群請聯絡上面wechat ----------------------------------------------

通過spark sql建立HIVE分割槽

今天需要通過匯入文字中的資料到HIVE資料庫,而且因為預設該表的資料會比較大,所以採用分割槽表的設計方案。將表按地區和日期分割槽。在這個過程出現過一些BUG,記錄以便後期檢視。 spark.sql("use oracledb") spark.sql("CREATE TABL

Hive優化--分割槽與分桶

1.  根據業務特徵建立分割槽表 使用分割槽表能有效地分隔資料,分割槽條件作為查詢條件時,減少掃描的資料量,加快查詢的效率。     如果業務資料有明顯的時間、區域等維度的區分,同時有較多的對應維度的查詢條件時,建議按照相應維度進行一級或多級分割槽。2.  根據業務特徵建立

hive修改分割槽

新增分割槽 ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1'; //示例 ALTER TABLE t

Hive分割槽及陷阱

分割槽表分割槽表實際就是對應hdfs檔案系統上的的獨立的資料夾,該檔案是夾下是該分割槽所有資料檔案。分割槽可以理解為分類,通過分類把不同型別的資料放到不同的目錄下。分類的標準就是分割槽欄位,可以一個,也可以多個。分割槽表的意義在於優化查詢。查詢時儘量利用分割槽欄位。如果不使用分割槽欄位,就會全部掃描。在查詢是

Hive靜態分割槽

 Hive的分割槽表分為動態分割槽和靜態分割槽,分割槽表的使用能夠為巨量表查詢效能的提高提供幫助。 靜態分割槽在資料載入前需要事先將分割槽建好,使用起來稍顯複雜,而動態表可以根據資料自動建立分割槽,但同時花費了巨大的效能代價。如果分割槽是可以確定的話,一定不要用動態分割

hive內部分割槽(ORC格式)新增欄位後出現的問題

hive內部分割槽表(ORC格式)在新增欄位後出現的問題:1、在新增欄位後的分割槽內查詢資料正常2、在新增欄位前的分割槽內查詢資料異常3、分割槽刪不掉,一直卡著不動出現原因:當我們修改hive表結構以後,mysql中元資料庫中的SDS中該hive表對應的CD_ID會改變,但是

flumehdfs中寫入會生成很多小檔案

問題: flume監控的目錄寫入大檔案的時候不能同步記錄在hdfs中 flume監控的目錄寫入大檔案的時候,同步記錄到hdfs中後變成多個小檔案 flume從kafka中讀取資料下沉到hdfs中會生成很多小檔案 解決辦法:更改flume的配置資訊(主要更改滾動方式),滾動的意思是當flu

Hadoop Hive Spark hive建表語句對錶在hdfs儲存的file或block數量、以及後續spark檔案跑模型的影響

問題描述: 前段時間使用hive語句建了兩張較為相似的資料表,後來在spark上用這兩張表跑相同的模型,發現兩張表的模型訓練時間不同,其中一張表跑起來非常慢。而兩張表的欄位數量和資料量並沒有太大的差別,頗為奇怪。 解決方法: 先說結論: 以上問題是兩

【轉】文件各種開的

dal 不變 沒有 each post str 線程 order bmi 閱讀目錄 利用表單實現文件上傳 表單異步上傳(jquery.form插件) 模擬表單數據上傳(FormData) 分片上傳 使用HTML5 拖拽、粘貼上傳 上傳插件(WebUploader