1. 程式人生 > >scoop匯入資料從mysql到hive

scoop匯入資料從mysql到hive

mysql裡的表格式:

desc track_log18;CREATE TABLE `track_log18` (
  `id` varchar(1000) DEFAULT NULL,
  `url` varchar(5000) DEFAULT NULL,
  `referer` varchar(5000) DEFAULT NULL,
  `keyword` varchar(5000) DEFAULT NULL,
  `type` varchar(1000) DEFAULT NULL,
  `guid` varchar(1000) DEFAULT NULL,
  `pageId` varchar(1000) DEFAULT NULL,
  `moduleId` varchar(1000) DEFAULT NULL,
  `linkId` varchar(1000) DEFAULT NULL,
  `attachedInfo` varchar(1000) DEFAULT NULL,
  `sessionId` varchar(1000) DEFAULT NULL,
  `trackerU` varchar(1000) DEFAULT NULL,
  `trackerType` varchar(1000) DEFAULT NULL,
  `ip` varchar(1000) DEFAULT NULL,
  `trackerSrc` varchar(1000) DEFAULT NULL,
  `cookie` varchar(5000) DEFAULT NULL,
  `orderCode` varchar(1000) DEFAULT NULL,
  `trackTime` varchar(1000) DEFAULT NULL,
  `endUserId` varchar(1000) DEFAULT NULL,
  `firstLink` varchar(1000) DEFAULT NULL,
  `sessionViewNo` varchar(5000) DEFAULT NULL,
  `productId` varchar(1000) DEFAULT NULL,
  `curMerchantId` varchar(1000) DEFAULT NULL,
  `provinceId` varchar(1000) DEFAULT NULL,
  `cityId` varchar(1000) DEFAULT NULL,
  `ds` varchar(20) DEFAULT NULL,                           //ds 在hive表裡是分割槽欄位
  `hour` varchar(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;  //hour在hive表裡是分割槽欄位

1 直接匯入到hdfs的檔案系統

表格式如下:

 desc track_log;

id                      string
url                     string
。。。
cityid                  string
ds                      string
hour                    string

# Partition Information
# col_name              data_type               comment

ds                      string
hour                    string

jimmy>sqoop import --connect  jdbc:mysql://localhost:3306/track_log --username root --password Nokia123 

 --table track_log18   //mysql的源表

--target-dir /user/hive/warehouse/track_log/ds=20150827/hour=18    //直接到hdfs,

--split-by id      //根據id分段生成多個檔案   

結果自動生成多個檔案:

-rw-r--r--   1 jimmy supergroup          0 2016-12-18 15:17 /user/hive/warehouse/track_log/ds=20150827/hour=18/_SUCCESS
-rw-r--r--   1 jimmy supergroup          0 2016-12-18 15:17 /user/hive/warehouse/track_log/ds=20150827/hour=18/part-m-00000
-rw-r--r--   1 jimmy supergroup   13711664 2016-12-18 15:17 /user/hive/warehouse/track_log/ds=20150827/hour=18/part-m-00001
-rw-r--r--   1 jimmy supergroup    2712180 2016-12-18 15:17 /user/hive/warehouse/track_log/ds=20150827/hour=18/part-m-00002
-rw-r--r--   1 jimmy supergroup    2655849 2016-12-18 15:17 /user/hive/warehouse/track_log/ds=20150827/hour=18/part-m-00003
-rw-r--r--   1 jimmy supergroup    2576800 2016-12-18 15:17 /user/hive/warehouse/track_log/ds=20150827/hour=18/part-m-00004
-rw-r--r--   1 jimmy supergroup    1391853 2016-12-18 15:17 /user/hive/warehouse/track_log/ds=20150827/hour=18/part-m-00005

注意:

A)匯入後還要在hive裡指定分割槽地址:

hive》alter table track_log add partition(ds='20150828' ,hour='17') location '/user/hive/warehouse/track_log/ds=20150827/hour=18';

B)hive查詢時候有問題 ,比如select  id from track_log時候返回多列

2.匯入到hive表裡

這裡表track_log19從track_log拷貝而來,就沒有分割槽了

hive>create table track_log19 as select * from track_log;

表格式如下:

 desc track_log19;
OK
id                      string
...
ds                      string                     //ds仍然是欄位,但不是分割槽
hour                    string                    //hour仍然是欄位,但不是分割槽

jimmy>sqoop import --connect  jdbc:mysql://localhost:3306/track_log --username root --password Nokia123  -                                                                                         -table track_log19         //源表

--hive-import 

--hive-table track_log19  //目的表

 --hive-overwrite 

                         -m 1  //(最後生成一個檔案)

結果(直接到warehouse下目錄生成檔案track_log19)

drwxrwxrwx   - jimmy supergroup          0 2016-12-18 15:17 /user/hive/warehouse/track_log
drwxrwxrwx   - jimmy supergroup          0 2016-12-18 15:35 /user/hive/warehouse/track_log19

相關推薦

scoop匯入資料mysql到hive

mysql裡的表格式: desc track_log18;CREATE TABLE `track_log18` (   `id` varchar(1000) DEFAULT NULL,   `url` varchar(5000) DEFAULT NULL,   `refer

Oracle 使用SQL Loader 外部匯入資料

在專案中經常會有一些基礎資料需要從Excel或其他檔案中匯入。大部分的格式都是樹結構。如果是這樣,我們對資料稍加整理,即可使用Oracle的資料匯入工具SQL Loader匯入我們所需要的資料到指定的表中。SQL Loader的詳細用法,可自己查詢相關詳細的文件,這裡只做簡單的使用介紹。 1

使用Sqoop將資料RDBMS(關係型資料庫) 到hdfs和Hive的匯入匯出

一、RDBMS 到 HDFS/HIVE 1.首先啟動Mysql service mysql start 2.在mysql中新建一張表並插入資料 # mysql -uroot -proot mysql> create table dept(id int pri

利用sqoop指定列指定條件的方式將資料mysql中增量匯入hive表中

========1、sqoop增量(指定列指定條件的方式增量匯入hive表中)匯入hive指令碼======= #!/bin/bash #Set the RDBMS connection params rdbms_ip=$1 rdbms_connect="jdbc:mysq

利用sqoop把資料SqlServer匯入到Hadoop

一、sqoop安裝和配置 1.下載和解壓,設定環境變數(略) 2.配置 修改sqoop/server/conf/catalina.properties common.loader==SQOOP_HOME新增/usr/local/src/sqoop-1.99.4-bin-

學習筆記:0開始學習大資料-28. solr儲存資料在hdfs並mysql匯入資料

環境 centos7  hadoop2.6.0  solr-7.5.0 一、建立hdfs為儲存的core 1.在hdfs建立索引資料目錄 [[email protected] bin]# hadoop fs -mkdir /user/solr/ [[email&

sqoop使用,hive向oracle匯入資料

author: lf sqoop export 使用說明 --export-dir 和 (--table和--call中的一個)是必須的。 指定了將要填充的表(或將要呼叫的儲存過程),以及hdfs包含資源資料的目錄 --columns 預設將查詢出表中所有的欄位。通過

hive Excel中匯入資料

拿到Excel表後將資料保留,其他的亂七八糟都刪掉,然後另存為txt格式的文字,用nodepad++將文字轉換為UTF-8編碼,此處命名為cityprovince.txt 將cityprovince.txt傳入操作的Linux環境中 hive建表,注

用java實現txt文字檔案批量匯入資料至資料庫

今天同事讓我準備一個專案的測試資料,要向一個表中插入上千條記錄,並且保證每條記錄內容不同,如果用手工一條一條插入肯定是不可能,也不會有哪個SB去做這樣的事,我最開始想到了用迴圈,但要求插入的記錄內容不能相同,用迴圈實現比較麻煩,於是我想到了將記錄從文字檔案匯入至資料庫(其實

【學習OpenCV】通過DLL實現影象資料.dat匯入Mat

目的:主要為了將C++的影象處理部分交給C#介面,特此學習怎麼用DLL。 一、生成DLL 1、在vs中建立名為datFile的dll專案,設定包含目錄和庫目錄為opencv路徑 2、編寫datFile類的標頭檔案和實現 datFile.h #ifndef DATFILE_H

一個小例子集合xlrd,matplotlib,numpy,scipy使用方法(Excel匯入資料

最近因為一篇論文的原因,要從Excel中取得部分資料平作圖,但是得到的圖都是點陣圖,不是太好插入到論文中,因此,決定使用Python畫圖來解決此問題(不使用MATLAB的原因在於它畫出的圖是在是不好看呀) 首先使用的庫是xlrd庫,此庫的作用是從讀取Exc

使用sqoop將資料hdfs中匯入mysql時,卡在INFO mapreduce.Job: map 100% reduce 0%的解決辦法

最近在將hdfs中已經處理好的資料匯入到mysql的時候遇到這麼一個現象,當任務執行到 INFO mapreduce.Job: map 100% reduce 0% mapreduce任務卡在map100% ,任何reduce不繼續執行。 總結了以下解決辦法: 一,如果沒

SQLite3建立資料庫的方法 和 SQLiteExcel檔案中匯入資料 及 python/qpython sqlite 中文 亂碼

之一 有關SQLite3使用: 1.將sqlite3.exe檔案放在任何位置(本人放在E:\Php) 2.在CMD下進入到E:\Php下(cd .. cd E:\php) PS:進入其他驅動盤不需要打cd命令,比如進入D盤打D:\就可以了。cd命令是開啟檔案目

SQLiteExcel檔案中匯入資料

      Android客戶端開發的時候使用了SQLite資料庫,為了測試,需要將一些excel檔案中的資料匯入到資料庫的表中,下面是幾個步驟:資料庫表的定義:  create table bookroom(id integer, roomname nvarchar(2

solr5.5之資料庫中匯入資料並建立索引

前面已經介紹了solr-5.5.0的安裝與部署,接下來我將分享solr-5.5.0資料匯入之從資料庫中匯入資料並建立索引的例子。由於本人也是剛剛接觸solr,不足之處,請大家多多見諒。solr和lucene版本更新太快了,版本之間的差異十分大。比如之前的版本中,在core中

使用 SqlBulkCopy 批量execl中匯入資料

 string text11 = "E:/UserFile/201638114343778799.xls";  //批量從execl中匯入資料               string strConn = "Provider=Microsoft.ACE.OLEDB.12.0

Solr資料庫匯入資料

一. 資料匯入(DataImportHandler-DIH) DIH 是solr 提供的一種針對資料庫、xml/HTTP、富文字物件匯入到solr 索引庫的工具包。這裡只針對資料庫做介紹。 A、準備以下jar包 apache-solr-dataimporthandl

ORACLE 批量插入 主鍵為自增序列 有幾個欄位資料其他表匯入的 有幾個是固定的

ORACLE 批量插入   主鍵為自增序列   有幾個欄位資料從其他表匯入的 有幾個是固定的 insert into CUSTOMERPRODUCTCATEGORY----------目標表  (CUSTOMERPRODUCTCATEGORYID,ORIGINALID,WE

向HBase中匯入資料3:使用MapReduceHDFS或本地檔案中讀取資料並寫入HBase(增加使用Reduce批量插入)

前面我們介紹了:為了提高插入效率,我們在前面只使用map的基礎上增加使用reduce,思想是使用map-reduce操作,將rowkey相同的項規約到同一個reduce中,再在reduce中構建put物件實現批量插入測試資料如下:注意到有兩條記錄是相似的。package cn

利用poiexcel中匯入資料到資料庫

最近遇到了從excel向資料庫匯入資料的情況,利用POI技術實現資料的匯入: 前臺頁面程式碼如下: <input type="file" name="" id="file" style="width: 165px"> <button type="butto