1. 程式人生 > >sqoop工具在hive和mysql之間互相導資料

sqoop工具在hive和mysql之間互相導資料

參考:
Sqoop中文手冊

1、列出mysql資料庫:
sqoop list-databases --connect jdbc:mysql://192.168.100.13:3306 --username hive --password hive

[[email protected] sqoop]# sqoop list-databases --connect jdbc:mysql://192.168.100.13:3306/ --username hive --password hive
Warning: /opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
15/12/08 12:44:24 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.5.0
15/12/08 12:44:24 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
15/12/08 12:44:25 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
hive
mysql
test
[
[email protected]
sqoop]#

#################

2、列出mysql資料庫hive中的表:

sqoop list-tables --connect jdbc:mysql://192.168.100.13:3306/hive --username hive --password hive

##################

3、複製表結構:
mysql資料的表結構複製到hive中,只是複製表的結構,表中的內容沒有複製過去。

sqoop create-hive-table --connect jdbc:mysql://192.168.100.13:3306/hive --username hive --password hive \
--table tbl_6005  --hive-table sqoop_test

[
[email protected]
sqoop]# sqoop create-hive-table --connect jdbc:mysql://192.168.100.13:3306/hive --username hive --password hive \
> --table tbl_6005  --hive-table sqoop_test
Warning: /opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/bin/../lib/sqoop/../accumulo does not exist! Accumulo imports will fail.
Please set $ACCUMULO_HOME to the root of your Accumulo installation.
15/12/08 13:29:33 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6-cdh5.5.0
15/12/08 13:29:33 WARN tool.BaseSqoopTool: Setting your password on the command-line is insecure. Consider using -P instead.
15/12/08 13:29:33 INFO tool.BaseSqoopTool: Using Hive-specific delimiters for output. You can override
15/12/08 13:29:33 INFO tool.BaseSqoopTool: delimiters with --fields-terminated-by, etc.
15/12/08 13:29:34 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
15/12/08 13:29:34 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `tbl_6005` AS t LIMIT 1
15/12/08 13:29:34 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `tbl_6005` AS t LIMIT 1
15/12/08 13:29:46 INFO hive.HiveImport: Loading uploaded data into Hive

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/jars/hive-common-1.1.0-cdh5.5.0.jar!/hive-log4j.properties
OK
Time taken: 12.528 seconds
[
[email protected]
sqoop]#

###########################

4 從mysql資料庫匯入檔案到hive中

sqoop import --connect jdbc:mysql://192.168.100.13:3306/hive --username hive --password hive \
--table tbl_6005 --hive-import --hive-table sqoop_test -m 1

15/12/08 13:35:01 INFO mapreduce.ImportJobBase: Transferred 11.4287 KB in 66.9003 seconds (174.9319 bytes/sec)
15/12/08 13:35:01 INFO mapreduce.ImportJobBase: Retrieved 72 records.
15/12/08 13:35:01 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM `tbl_6005` AS t LIMIT 1
15/12/08 13:35:01 INFO hive.HiveImport: Loading uploaded data into Hive

Logging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.5.0-1.cdh5.5.0.p0.8/jars/hive-common-1.1.0-cdh5.5.0.jar!/hive-log4j.properties
OK
Time taken: 1.49 seconds
Loading data to table default.sqoop_test
chgrp: changing ownership of 'hdfs://mycluster/user/hive/warehouse/sqoop_test/part-m-00000': User does not belong to hive
Table default.sqoop_test stats: [numFiles=1, totalSize=11703]
OK
Time taken: 11.517 seconds
[[email protected] sqoop]#

##############################
#JDBC驅動版本bug(5.1.17版本有bug,需要換到5.1.32),更換更高版本正常。
http://blog.csdn.net/wangtao6791842/article/details/41041677

15/12/08 13:09:24 ERROR manager.SqlManager: Error reading from database: java.sql.SQLException: Streaming result set [email protected] is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.
java.sql.SQLException: Streaming result set [email protected] is still active. No statements may be issued when any streaming result sets are open and in use on a given connection. Ensure that you have called .close() on any active streaming result sets before attempting more queries.
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:934)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931)
        at com.mysql.jdbc.MysqlIO.checkForOutstandingStreamingData(MysqlIO.java:2735)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1899)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2569)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1524)
        at com.mysql.jdbc.ConnectionImpl.getMaxBytesPerChar(ConnectionImpl.java:3003)
        at com.mysql.jdbc.Field.getMaxBytesPerCharacter(Field.java:602)
        at com.mysql.jdbc.ResultSetMetaData.getPrecision(ResultSetMetaData.java:445)
        at org.apache.sqoop.manager.SqlManager.getColumnInfoForRawQuery(SqlManager.java:286)
        at org.apache.sqoop.manager.SqlManager.getColumnTypesForRawQuery(SqlManager.java:241)
        at org.apache.sqoop.manager.SqlManager.getColumnTypes(SqlManager.java:227)
        at org.apache.sqoop.manager.ConnManager.getColumnTypes(ConnManager.java:327)
        at org.apache.sqoop.orm.ClassWriter.getColumnTypes(ClassWriter.java:1834)
        at org.apache.sqoop.orm.ClassWriter.generate(ClassWriter.java:1646)
        at org.apache.sqoop.tool.CodeGenTool.generateORM(CodeGenTool.java:107)
        at org.apache.sqoop.tool.ExportTool.exportTable(ExportTool.java:64)
        at org.apache.sqoop.tool.ExportTool.run(ExportTool.java:100)
        at org.apache.sqoop.Sqoop.run(Sqoop.java:143)
        at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
        at org.apache.sqoop.Sqoop.runSqoop(Sqoop.java:179)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:218)
        at org.apache.sqoop.Sqoop.runTool(Sqoop.java:227)
        at org.apache.sqoop.Sqoop.main(Sqoop.java:236)
15/12/08 13:09:24 ERROR tool.ExportTool: Encountered IOException running export job: java.io.IOException: No columns to generate for ClassWriter
[[email protected] sqoop]#

相關推薦

sqoop工具hivemysql之間互相資料

參考: Sqoop中文手冊 1、列出mysql資料庫: sqoop list-databases --connect jdbc:mysql://192.168.100.13:3306 --username hive --password hive [[email 

利用sqoophiveMySQL資料互匯入

1.    hadoop、hive、MySQL安裝(略)啟動hadoop 執行start-all.sh start-dfs.sh start-yarn.sh 2.    下載sqoop 3.    解壓 #tar -zxvfsqoop-1.4.6.bin__hadoop-

PNGPVR之間互相轉換的腳本

path ken 文件 free .gz mar lock packer files 項目經常會將png和pvr之間互相轉換,這裏mark一個腳本,會將當前目錄下的文件全部批量轉換 png轉換成pvr @echo off path %path%;"C:\Program

javamysql之間的時間日期類型傳遞

兩個 其他 方案 entity 最優解 都是 nan set mat mysql(版本:5.1.50)的時間日期類型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59

解決VM VirtualBox 主機之間互相貼上--拖放問題

1.  開啟 VirtualBox,選擇裝置--共享貼上板/拖放,選擇"雙向": 2.   如果還是不行,那麼需要安裝增強功能:           ①

Python實現WindowsLinux之間互相傳輸檔案(資料夾)的方法

   專案中需要從Windows系統傳輸ISO檔案到Linux測試系統,然後再Linux測試系統裡安裝這個ISO檔案。所以就需要實現如何把檔案從Windows系統傳輸到Linux系統中。 在專案中使用了pscp.exe這個工具,只要按照pscp.exe的使用說明操作即可。只要進入pscp.exe的安裝位置

資料平臺MySQL之間資料匯出匯入

資料的匯出和匯入都是針對大資料平臺(HDFS,Hive,HBase)來定義的 資料從MySQL到大資料平臺----------資料匯入 資料從大資料平臺到MySQL-----------資料匯出 一、資料匯出(大資料平臺---->Mysql) 1.匯出 HDFS資料到MySQL

LinkedListArrayList之間互相轉換

ArrayList與類LinkedList不能強制資料型別轉換。 1.通過構造方法轉換 ArrayList arrayList = new ArrayList(); LinkedList linkedList = new LinkedList(arrayList); L

mysqli、pdo_mysqlmysql之間的區別以及選擇

這裡對在PHP應用開發過程中需要和Mysql資料庫互動時可用的選擇進行一個簡單介紹。 什麼是API? 一個應用程式介面(Application Programming Interface的縮寫),定義了類,方法,函式,變數等等一切 你的應用程式中為了完成特定任務而需要

陣列物件之間互相轉換的方法

/** * 陣列 轉 物件 * * @param array $arr 陣列 * @return object */ function array_to_object($arr) {

HbaseMysql檔案互相匯入

以下的步驟都是我實驗成功後的記錄下來的,只記錄了大體的步驟,由於環境的差異,可能導致你的操作並不一定會成功!不要機械的式的複製,要結合你本機的環境去處理。對於配置選項,有些我也不擡理解,待理解之後再來補充。 實驗環境: Linux 16.04.3 hadoop-2.8.1 h

postpreSqlmysql之間語句的區別,目前使用發現到的

1.首先是資料庫表的欄位,postpreSql對大小寫敏感,所以儘量用小寫,或者XX_XX_XX的形式寫.. 2.mysql中分頁使用limit pageNum,pageSize ,postpreSql中是limit pageSize offset page

tmux內部外部之間互相複製貼上

在tmux內複製一段文字到緩衝區後,可以貼上到其他面板,視窗,甚至是其他會話,但是還是不能貼上到其他應用(如firefox),這時候可以用xclip。 安裝xclip後,在.tmux.conf中增加

HIve MySQL 的區別 轉載部落格

                                                               注: Local FS  :Local File System ,本地檔案系統 資料更新:這一行     HQL 不支援,SQL 支援

AmazonMysql之間的那點事兒

初始 公司專案初始,就使用了亞馬遜的各項雲服務,亞馬遜的各項服務真的非常棒,大大簡化了公司產品的擴容和運維工作。 之前公司使用亞馬遜的EC2例項,一切都非常好。隨著業務的擴充套件,客戶需要mysql關係型資料庫,為了使用方便,我們選了亞馬遜提供的RDS服務,這玩意兒就

vue 的父元件子元件互相獲取資料方法

父元件主動獲取子元件的資料和方法 1.呼叫子元件的時候 定義一個ref <headerchild ref="headerChild"></headerchild> 2.在父元件裡面通過 this.$refs.headerChild.屬性 this.$refs.h

使用Apache SparkMySQL打造強大的資料分析

藉助真實案例和程式碼樣本,本文作者展示瞭如何將Sparke和MySQL結合起來,創造資料分析上的強大工具。 Apache Spark是一個類似Apache Hadoop的叢集計算框架,在Wikipedia上有大量描述:Apache Spark是一個開源叢集計算框架,出自加州大學伯克利分校的AMPLa

如何建立WindowsLinux之間的共享資料

以win10和centos為例: 第一步,點選虛擬機器,設定: 第二步,點選選項: 第三部,點選共享資料夾,點選總是啟用,然後點選新增: 第四步,新增共享資料夾: 新增成功

利用SqoopMySQL數據Hive

sqoop參考http://www.cnblogs.com/iPeng0564/p/3215055.htmlhttp://www.tuicool.com/articles/j2yayyjhttp://blog.csdn.net/jxlhc09/article/details/168568731.list da

python腳本 用sqoopmysql數據hive

def 通過 語言 article oop color eat onos exe 轉:https://blog.csdn.net/wulantian/article/details/53064123 用python把mysql數據庫的數據導入到hive中,該過程主要是通過p