1. 程式人生 > >hive實現txt資料匯入,理解hadoop中hdfs、mapreduce

hive實現txt資料匯入,理解hadoop中hdfs、mapreduce

背景:通過hive操作,瞭解hadoop的hdfs、mapreduce。 場景:hadoop雙機叢集、hive 版本:hadoop和hive的版本搭配最和諧的是什麼,目前沒有定論,每種版本的搭配都會有一些bug出現。           本例中版本:hadoop-1.0.3   hive-0.10.0-bin 實現:將本地的網路訪問日誌檔案匯入到hive中。 hive demo command list step1:登入hive建立表 [[email protected] conf]# hive
hive> create table dq_httplog                                                                                
         (ipdz string,
          ll string,
          sj string,
          khd string,
          fwq string,
          ym  string,
          urlmc string
          )
         row format delimited
         fields terminated by '\t' lines terminated by '\n'
         stored as textfile; step2:匯入本地txt檔案資料; hive> load data local inpath '/httplog.txt' into table dq_httplog;             可以用hive QL語句檢視資料和表結構            檢視資料的過程就是hive將hive QL語句轉換成mapreduce語句在hadoop中執行。           
           查看錶結構: hive> describe dq_httplog;  hive中建立的表是以檔案的形式儲存在hdfs中的 在hadoop中查詢 [[email protected] ~]# hadoop dfs -lsr /user/hive/warehouse
在hive中查詢 hive> dfs -lsr /user/hive/warehouse
step3:建立分割槽表 create table dq_httplog_part (ll string,
 khd string,
fwq string,
ym  string,
urlmc string
partitioned by (ipdz string,sj string comment 'this is login time')   row format delimited
fields terminated by '\t' lines terminated by '\n'
stored as textfile; 注:分割槽欄位必須放在最後面; 匯入資料時可以指定分割槽,也可以動態分割槽匯入資料,動態分割槽先要設定動態分割槽的引數; hive> set hive.exec.dynamic.partition=true; hive> set hive.exec.dynamic.partition.mode=nonstrict; 設定完動態分割槽的引數後,可以動態匯入資料,匯入過程會按資料情況自動分割槽; hive> insert into table dq_httplog_part partition(ipdz,sj) select ll,khd,fwq,ym,urlmc,ipdz,sj from dq_httplog;
同樣可以檢視到表資料檔案和表結構等等; hive> dfs -lsr /user; hive>show partitions dq_httplog_part;
step4:hive web介面 hive web介面可以利用瀏覽器訪問網路介面,完成資料庫及表結構的查詢,hive查詢,系統診斷等; [[email protected] bin]# hive --service hwi
登入http://master:9999/hwi  可以使用webui和hive互動 資料庫查詢:     表結構查詢:     系統診斷: step5:hive中的查詢和計算 建表和匯入資料完成後就可以在hive中進行復雜查詢和計算了,並可以將結果已多種形式儲存。 常見錯誤: 1、Hadoop叢集安全模式未關閉,檢視建立檔案時報錯: mkdir: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hive/warehouse. Name node is in safe mode.

bin/hadoop dfsadmin -safemode leave   關閉安全模式就可以了;
hadoop的安全模式簡介:http://mazd1002.blog.163.com/blog/static/66574965201111304657632/ 2、啟動hive時: WARNING: org.apache.hadoop.metrics.jvm.EventCounter is deprecated. Please use org.apache.hadoop.log.metrics.EventCounter in all the log4j.properties files.  但不影響使用。 解決方法:將hive/conf的template檔案copy一份,便於個性化配置;
  1. cp hive-default.xml.template hive-default.xml   
  2. cp hive-default.xml.template hive-site.xml  
  3. cp hive-env.sh.template hive-env.sh  
  4. cp hive-log4j.properties.template hive-log4j.properties
將hive-log4j.properties中將log4j.appender.EventCounter的值修改為 org.apache.hadoop.log.metrics.EventCounter, 這樣就不會報WARNING了。 # log4j.appender.EventCounter=org.apache.hadoop.metrics.jvm.EventCounter
   log4j.appender.EventCounter=org.apache.hadoop.log.metrics.EventCounter 3、copy完hive配置檔案後,重新啟動hadoop或者執行hive時:
  1. hive-site.xml:180:3: The element type "description" must be terminated by the matching end-tag "</description>".  
  2. Exception in thread "main" java.lang.RuntimeException: org.xml.sax.SAXParseException: The element type "description" must be terminated by the matching end-tag "</description>".  
     解決方法:根據提示的行數,修改hive_site.xml檔案。上面的報錯就是hive_site.xml的180行沒有</description>結尾。 4、啟動hive的web介面服務hwi時:hive-site.xml not found on CLASSPATH       解決方法:需要配置haddoop的hadoop_env.sh,                如下新增$HADOOP_CLASSPATH,hive/conf,hive/bin,hive/lib export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/hive-0.10.0-bin/conf/:                                                          /hive-0.10.0-bin/bin:/hive-0.10.0-bin/lib

相關推薦

hive實現txt資料匯入理解hadoophdfsmapreduce

背景:通過hive操作,瞭解hadoop的hdfs、mapreduce。 場景:hadoop雙機叢集、hive 版本:hadoop和hive的版本搭配最和諧的是什麼,目前沒有定論,每種版本的搭配都會有一些bug出現。           本例中版本:hadoop-1.0.3

在Javawebpoi實現資料匯入支援03版和07版Excel匯入

注意資料型別的轉換,另外由於在後面的sid我不需要插入資料庫,所以最後就沒有set到實體物件 哪些不明白可以直問! import java.io.File; import java.io.FileInputStream; import java.io.IOExceptio

kettle 含參hadoop資料匯入過濾

kettle如果資料量過大在job的迴圈時,可能會出現程式崩潰問題,因此不採用變數傳遞方法去sql裡不斷查詢資料 不過kettle自帶的過濾資料無法傳入動態引數,因此這兒提供一種方法,將過濾資料匯出方法 將所有資料先查詢出來,放到hadoop裡,再通過 hado

Springboot框架實現請求資料解密響應資料加密的功能。

一、簡要說明:   在做這個功能的時候,參考了很多文章,也試了用過濾器解決。但總體來說還是很麻煩,所以換了另一種解決方案。直接實現RequestBodyAdvice和ResponseBodyAdvice兩個介面 ,進行加密解密處理。   關於RequestBodyAdvice和ResponseBodyAd

Hive中表的資料匯入(五種方式)

目錄 總結: load: insert: 建立表並載入資料(As Select): location: import: 總結: 總結: hive中一共有五種資料匯出的方式: ①:load data方式,如果路徑是local是追加,若為HDFS則

hive不同格式資料大小無重複資料

-- 重點,目標表無重複資料 -- dbName.num_result 無重複記錄 -- 插入資料 CREATE TABLE dbName.test_textfile( `key` string, `value` string, `p_key` string, `p_ke

實現新增資料關聯其他類比如新增商品時需要商品型別如何關聯這些型別

後臺: $detail是編輯時的模板資料 $yccart = D('Elecate')->where(array('cate_id' => $detail['cate_id'])) ->find(); $this->assign('yccart', $yccart

Python 實現MySQL資料匯入Excel

一、場景 場景如題,將mysql中的表資料匯入到excel 二、場景實現 1、建立mysql_util.py 將對mysql的操作寫在這個py檔案下 mysql_conf = { 'host': '主機host', 'user': '使用者名稱',

MVC利用Aspose.Cells.dll實現Excel資料匯入資料庫

/// <summary>匯入Excel資料到資料庫 /// /// </summary> /// <param name="file">檔案</param>

web專案實現Excel資料匯入匯出

        由於專案要求,需要實現一個數據庫資訊匯出為Excel檔案,並能將Excel檔案中的資訊匯入資料庫的功能,網上找了一下資料,發現大都只涉及到Excel檔案的簡單操作,所以特地在此分享了自己寫的兩個簡單的Web端Excel檔案匯入匯出的例子。         涉

JAVA實現資料庫資料匯入/匯出到Excel(POI技術)

準備工作: 1.匯入POI包:POI下載地址:http://download.csdn.net/detail/zxm1306192988/9522142(重要) 如下 2.匯入匯出到Excel工具類ExcelUtil.java,封裝了POI對Excel的操作 pa

Hive學習(二)-資料匯入及匯出

首先,要知道HIve中表的列(field)是以何種方式分隔的。Hive表中預設的記錄何欄位分割符分隔符描述\n對於文字檔案來說,每行都是一條記錄,因此換行符可以進行分隔^A(Ctrl+A)用於分隔欄位(列),在create table語句中可以使用八進位制編碼\001表示^B

十幾行程式碼帶你用Python批量實現txt轉xls方便快捷

前天看到後臺有一兄弟發訊息說目前自己有很多txt 檔案,領導要轉成xls檔案,問用python怎麼實現,我在後臺簡單回覆了下,其實完成這個需求方法有很多,因為具體的txt格式不清楚,當然如果是有明確分隔符的會更好處理些,可以直接把txt檔案轉成csv檔案,這樣可以用excel開啟後就是表格的樣式了,如果直接要

十幾行Python程式碼輕鬆實現txt轉xls方便快捷

前天看到後臺有一兄弟發訊息說目前自己有很多txt 檔案,領導要轉成xls檔案,問用python怎麼實現,我在後臺簡單回覆了下,其實完成這個需求方法有很多,因為具體的txt格式不清楚,當然如果是有明確分隔符的會更好處理些,可以直接把txt檔案轉成csv檔案,這樣可以用excel開啟後就是表格的樣式了,

SpringMVC 實現POI讀取Excle檔案資料匯入資料庫(上傳)匯出資料庫中資料到Excle檔案(下載)

package com.shiliu.game.utils; import java.io.OutputStream; import java.net.URLEncoder; import java.util.ArrayList; import java.util.List; import

day73_淘淘商城專案_06_搜尋工程的搭建 + linux下solr索引庫的搭建 + 把商品資料匯入到索引庫(後臺) + 商品搜尋功能實現(前臺) + 圖片顯示等問題解決_匠心筆記

淘淘商城專案_06 1、搜尋工程的搭建 1.1、Solr服務搭建 1.1.1、solr的環境 1.1.2、solr的搭建步驟 1.1.3、solr的使用 1.2、配置

Python實現資料庫資料匯入Excel

1 任務簡介把PostgreSql資料庫中5張表的資料匯出到Excel檔案中,查詢的欄位涉及到5張表,所以需要聯合查詢,其中還有兩張表存在自引用,所以還會更復雜一些。2 工具使用psycopg2模組連線資料庫使用xlwt模組操作Excel檔案2.1 psycopg2這個模組用

用Visual Studio(C#) 實現Excel資料匯入(對映)

本方法缺點:資料量有一定的限制,若列資料過多,則只能匯入2000條左右。此方法必須對錶格中的列進行類宣告。 1.get: public virtual async Task<ActionResult> ImportStudentMessage(

解決帶有日期格式的txt資料匯入oracle報錯的問題

將txt匯入oracle中有兩種方法1.使用sqlloader命令匯入 需要自己編寫ctl檔案 2.txt轉excel,再匯入oracle中 剛開始我這兩種方法都試過,可是都報錯誤,就是日類型別的資料報錯,這個錯誤折磨了我兩天,具體就不多說了,直接上解決方法 由於我的系統預

c# 程式實現ACCESS資料匯入SQL的方法

//連線ACCESS資料庫程式碼OleDbConnection adoConn= new OleDbConnection();string StrConn= "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password=密碼;Data source