1. 程式人生 > >Sqoop-1.4.6安裝部署及詳細使用介紹和部分報錯資訊彙總

Sqoop-1.4.6安裝部署及詳細使用介紹和部分報錯資訊彙總

最近在開發oozie的排程系統中遇到了下面錯誤

ERROR tool.ImportTool: EncounteredIOException running import job: java.io.IOException: DataStreamer Exception:
       atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:796)
Caused by: java.lang.OutOfMemoryError:unable to create new native thread
       at java.lang.Thread.start0(Native Method)
       at java.lang.Thread.start(Thread.java:714)
       atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.initDataStreaming(DFSOutputStream.java:581)
       at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:669)


經過分析查找了這篇文章,故作收藏

之所以選擇Sqoop1是因為Sqoop2目前問題太多。無法正常使用,綜合比較後選擇Sqoop1。

Sqoop1安裝配置比較簡單

一、安裝部署

解壓到/opt/cdh5/sqoop

(2)、拷貝mysql的jdbc驅動包mysql-connector-java-5.1.31-bin.jar到sqoop/lib目錄下。

(3)、配置環境變數

#sqoop

export SQOOP_HOME=/opt/cdh5/sqoop

export PATH=$PATH:$SQOOP_HOME/bin

(4)、複製sqoop/conf/sqoop-env-template.sh為sqoop-env.sh

新增相關的配置

#Setpath to where bin/hadoop is available

exportHADOOP_COMMON_HOME=/opt/cdh5/hadoop

#Setpath to where hadoop-*-core.jar isavailable

exportHADOOP_MAPRED_HOME=/opt/cdh5/hadoop

#setthe path to where bin/hbase isavailable

exportHBASE_HOME=/opt/cdh5/hbase 

#Setthe path to where bin/hive is available

exportHIVE_HOME= /opt/cdh5/hive

#Setthe path for where zookeper config diris

exportZOOCFGDIR= /opt/cdh5/zookeeper

(5)、測試Sqoop

發現有警告

修改$SQOOP_HOME/bin/configure-sqoop

註釋掉HCatalog,Accumulo檢查(除非你準備使用HCatalog,Accumulo等HADOOP上的元件) 

## Moved to be a runtime check in sqoop.

#if [ ! -d "${HCAT_HOME}" ]; then

# echo "Warning: $HCAT_HOME does not exist! HCatalog jobs willfail."

# echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'

#fi

#if [ ! -d "${ACCUMULO_HOME}" ];then

# echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports willfail."

# echo 'Please set $ACCUMULO_HOME to the root of your Accumuloinstallation.'

#fi 

再次執行sqoop version

你也可以檢視某一個命令的使用說明:

$ sqoopimport --help

$ sqoophelp import

sqoop import 的一個示例如下:

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS

你還可以使用 --options-file 來傳入一個檔案,使用這種方式可以重用一些配置引數:

$ sqoop --options-file /users/homer/work/import.txt --table TEST

/users/homer/work/import.txt 檔案內容如下:

import
--connect
jdbc:mysql://192.168.56.121:3306/metastore
--username
hiveuser
--password 
redhat

二、Sqoop使用說明

1、測試連線:

(1)顯示mysql資料庫列表

sqoop list-databases –connect jdbc:mysql://hadoop003:3306/--username root –P

(2)顯示資料庫裡所有表:

sqoop list-tables --connectjdbc:mysql://hadoop003:3306/EDW --username root -P

2、Mysql與HDFS互導

(1)mysql匯入到hdfs

把mysql中表fin_cashier_order匯入到hdfs,匯入之前查詢一下fin_cashier_order表中的資料

共:199條

sqoop import --connectjdbc:mysql://hadoop003:3306/ssa --username root --password *****  --table fin_cashier_order --target-dir/user/hadoop/databases/ssa/fin_cashier_order -m 4

-m 表示Map併發數

若是不寫--target-dir 則預設是hdfs上的user/username/tablename 路徑

如果重複執行,會提示目錄已經存在,可以手動刪除

執行完mapreduce結束後去HDFS上檢查

驗證hdfs上匯入的資料:

hadoop fs -ls /user/hadoop/databases/ssa/fin_cashier_order

hadoop fs -cat /user/hadoop/databases/ssa/fin_cashier_order/part-m-00000

(2)HDFS匯入到mysql

把HDFS中資料匯入到Mysql表中,mysql中需要預先建立空表fin_cashier_order2,此時該表為空

sqoop export --connectjdbc:mysql://hadoop003:3306/ssa --table fin_cashier_order2 --username root--password ****** --export-dirhdfs://jrtestcluster/user/hadoop/databases/ssa/fin_cashier_order/

執行完顯示

16/02/25 16:23:39 INFOmapreduce.ExportJobBase: Transferred 70.4619 KB in 48.3235 seconds (1.4581KB/sec)

16/02/25 16:23:39 INFO mapreduce.ExportJobBase:Exported 199 records.

顯示匯出199條記錄。

到表fin_cashier_order2檢視

並且正好也是199條。

至此,用Sqoop將mysql與HDFS互導功都驗證完畢

你還可以指定其他的引數:

引數 說明
--append 將資料追加到hdfs中已經存在的dataset中。使用該引數,sqoop將把資料先匯入到一個臨時目錄中,然後重新給檔案命名到一個正式的目錄中,以避免和該目錄中已存在的檔案重名。
--as-avrodatafile 將資料匯入到一個Avro資料檔案中
--as-sequencefile 將資料匯入到一個sequence檔案中
--as-textfile 將資料匯入到一個普通文字檔案中,生成該文字檔案後,可以在hive中通過sql語句查詢出結果。
--boundary-query <statement> 邊界查詢,也就是在匯入前先通過SQL查詢得到一個結果集,然後匯入的資料就是該結果集內的資料,格式如:--boundary-query 'select id,no from t where id = 3',表示匯入的資料為id=3的記錄,或者 select min(<split-by>), max(<split-by>) from <table name>,注意查詢的欄位中不能有資料型別為字串的欄位,否則會報錯
--columns<col,col> 指定要匯入的欄位值,格式如:--columns id,username
--direct 直接匯入模式,使用的是關係資料庫自帶的匯入匯出工具。官網上是說這樣匯入會更快
--direct-split-size 在使用上面direct直接匯入的基礎上,對匯入的流按位元組數分塊,特別是使用直連模式從PostgreSQL匯入資料的時候,可以將一個到達設定大小的檔案分為幾個獨立的檔案。
--inline-lob-limit 設定大物件資料型別的最大值
-m,--num-mappers 啟動N個map來並行匯入資料,預設是4個,最好不要將數字設定為高於叢集的節點數
--query,-e <sql> 從查詢結果中匯入資料,該引數使用時必須指定–target-dir–hive-table,在查詢語句中一定要有where條件且在where條件中需要包含 \$CONDITIONS,示例:--query 'select * from t where \$CONDITIONS ' --target-dir /tmp/t –hive-table t
--split-by <column> 表的列名,用來切分工作單元,一般後面跟主鍵ID
--table <table-name> 關係資料庫表名,資料從該表中獲取
--delete-target-dir 刪除目標目錄
--target-dir <dir> 指定hdfs路徑
--warehouse-dir <dir> 與 --target-dir 不能同時使用,指定資料匯入的存放目錄,適用於hdfs匯入,不適合匯入hive目錄
--where 從關係資料庫匯入資料時的查詢條件,示例:--where "id = 2"
-z,--compress 壓縮引數,預設情況下資料是沒被壓縮的,通過該引數可以使用gzip壓縮演算法對資料進行壓縮,適用於SequenceFile, text文字檔案, 和Avro檔案
--compression-codec Hadoop壓縮編碼,預設是gzip
--null-string <null-string> 可選引數,如果沒有指定,則字串null將被使用
--null-non-string <null-string> 可選引數,如果沒有指定,則字串null將被使用

示例程式:

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS --columns "tbl_id,create_time" --where "tbl_id > 1" --target-dir /user/hive/result

使用 sql 語句

參照上表,使用 sql 語句查詢時,需要指定 $CONDITIONS

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --query 'SELECT * from TBLS where \$CONDITIONS ' --split-by tbl_id -m 4 --target-dir /user/hive/result

上面命令通過 -m 1 控制併發的 map 數。

使用 direct 模式:

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS --delete-target-dir --direct --default-character-set UTF-8 --target-dir /user/hive/result

指定檔案輸出格式:

sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS --fields-terminated-by"\t" --lines-terminated-by "\n" --delete-target-dir --target-dir /user/hive/result

這時候檢視 hdfs 中資料(觀察分隔符是否為製表符):

$ hadoop fs -ls result
Found 5 items
-rw-r--r--   3 root hadoop          0 2014-08-04 16:07 result/_SUCCESS
-rw-r--r--   3 root hadoop         69 2014-08-04 16:07 result/part-m-00000
-rw-r--r--   3 root hadoop          0 2014-08-04 16:07 result/part-m-00001
-rw-r--r--   3 root hadoop        142 2014-08-04 16:07 result/part-m-00002
-rw-r--r--   3 root hadoop         62 2014-08-04 16:07 result/part-m-00003

$ hadoop fs -cat result/part-m-00000
34  1406784308  8   0   root    0   45  test1   EXTERNAL_TABLE  null    null    null

$ hadoop fs -cat result/part-m-00002
40  1406797005  9   0   root    0   52  test2   EXTERNAL_TABLE  null    null    null
42  1407122307  7   0   root    0   59  test3   EXTERNAL_TABLE  null    null    null

指定空字串:

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS --fields-terminated-by "\t" --lines-terminated-by "\n" --delete-target-dir --null-string '\\N' --null-non-string '\\N' --target-dir /user/hive/result

如果需要指定壓縮:

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS --fields-terminated-by "\t" --lines-terminated-by "\n" --delete-target-dir --null-string '\\N' --null-non-string '\\N' --compression-codec "com.hadoop.compression.lzo.LzopCodec" --target-dir /user/hive/result

附:可選的檔案引數如下表。

引數 說明
--enclosed-by <char> 給欄位值前後加上指定的字元,比如雙引號,示例:--enclosed-by '\"',顯示例子:"3","jimsss","[email protected]"
--escaped-by <char> 給雙引號作轉義處理,如欄位值為"測試",經過 --escaped-by "\\" 處理後,在hdfs中的顯示值為:\"測試\",對單引號無效
--fields-terminated-by <char> 設定每個欄位是以什麼符號作為結束的,預設是逗號,也可以改為其它符號,如句號.,示例如:--fields-terminated-by
--lines-terminated-by <char> 設定每條記錄行之間的分隔符,預設是換行串,但也可以設定自己所需要的字串,示例如:--lines-terminated-by "#" 以#號分隔
--mysql-delimiters Mysql預設的分隔符設定,欄位之間以,隔開,行之間以換行\n隔開,預設轉義符號是\,欄位值以單引號'包含起來。
--optionally-enclosed-by <char> enclosed-by是強制給每個欄位值前後都加上指定的符號,而--optionally-enclosed-by只是給帶有雙引號或單引號的欄位值加上指定的符號,故叫可選的
 3、Mysql與Hive互導

出現如下錯誤:

錯誤1:

ERROR tool.ImportTool: EncounteredIOException running import job: java.io.IOException: DataStreamer Exception:

       atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:796)

Caused by: java.lang.OutOfMemoryError:unable to create new native thread

       at java.lang.Thread.start0(Native Method)

       at java.lang.Thread.start(Thread.java:714)

       atorg.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.initDataStreaming(DFSOutputStream.java:581)

       at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:669)

解決方法:

net.ipv4.ip_local_port_range = 1024 65000

修改系統引數

echo "100000" > /proc/sys/kernel/threads-max

echo "100000" > /proc/sys/kernel/pid_max (預設32768

echo "200000" > /proc/sys/vm/max_map_count (預設65530

修改/etc/security/limits.conf

* - nproc 999999
* -nofile 999999

PS:nproc是修改系統的max user processes大小;nofile 是修改open files的大小,另外linux 2.6.25核心之前有個巨集定義,定義了這個值的最大值,為1024*1024,正好是100萬,而在2.6.25核心及其之後,這個值是可以通過/proc/sys/fs/nr_open來設定,不過,999999足夠用了。很多人可能會遇到,只能啟動32000多個執行緒就不能再起更多的執行緒了,其實就是pid_max = 32768 給限制住了

增加map數量,通過sqoop -m 選項指定更多的map。通過更多的map,降少每個子程序佔用的heap space,避免超出hadoop設定的java heap space 大小
sqoop ... -m <map 數量>

錯誤2:

Caused by: java.lang.RuntimeException:java.sql.SQLException: Access denied for user 'root'@'hadoop003' (usingpassword: YES)

       atorg.apache.sqoop.mapreduce.db.DBInputFormat.getConnection(DBInputFormat.java:220)

       atorg.apache.sqoop.mapreduce.db.DBInputFormat.setConf(DBInputFormat.java:165)

       ... 9 more

程式正常執行,結果也正確。說明資料庫連線是正確的,而且單獨用mysql連線也是可以的。就是報這個異常錯誤。 

查詢資料庫裡使用者資訊


JDBC連線的機器名是hadoop003,雖然已經賦予root所有機器的遠端訪問許可權(“%”),但是hadoop003這個賬戶可能沒有開通機器的遠端許可權。於是給hadoop003這個機器開通遠端許可權。

GRANT ALL PRIVILEGES ON *.* TO'root'@'hadoop003' IDENTIFIED BY '********' WITH GRANT OPTION;

再次執行匯入命令。成功。不再出現上面錯誤。

錯誤3:

從mysql匯入到Hive裡報如下錯誤:

ERROR hive.HiveConfig: Could not loadorg.apache.hadoop.hive.conf.HiveConf. Make sure HIVE_CONF_DIR is set correctly.

16/02/26 14:43:47 ERROR tool.ImportTool:Encountered IOException running import job: java.io.IOException:java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf

資料已經匯入到HDFS。從HDFS移動到Hive裡時出錯。提示HIVE_CONF_DIR配置不對。

但是將HIVE_CONF_DIR新增到sqoop-env.sh、hadoop-env.sh、hive-env.sh都不起作用。

最終正確的解決方法:

在/etc/profile  裡新增下面一句話

exportHADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*

Sqoop-1.4.7版本好像解決了這個問題。期待這個版本


之所以選擇Sqoop1是因為Sqoop2目前問題太多。無法正常使用,綜合比較後選擇Sqoop1。

Sqoop1安裝配置比較簡單

一、安裝部署

解壓到/opt/cdh5/sqoop

(2)、拷貝mysql的jdbc驅動包mysql-connector-java-5.1.31-bin.jar到sqoop/lib目錄下。

(3)、配置環境變數

#sqoop

export SQOOP_HOME=/opt/cdh5/sqoop

export PATH=$PATH:$SQOOP_HOME/bin

(4)、複製sqoop/conf/sqoop-env-template.sh為sqoop-env.sh

新增相關的配置

#Setpath to where bin/hadoop is available

exportHADOOP_COMMON_HOME=/opt/cdh5/hadoop

#Setpath to where hadoop-*-core.jar isavailable

exportHADOOP_MAPRED_HOME=/opt/cdh5/hadoop

#setthe path to where bin/hbase isavailable

exportHBASE_HOME=/opt/cdh5/hbase 

#Setthe path to where bin/hive is available

exportHIVE_HOME= /opt/cdh5/hive

#Setthe path for where zookeper config diris

exportZOOCFGDIR= /opt/cdh5/zookeeper

(5)、測試Sqoop

發現有警告

修改$SQOOP_HOME/bin/configure-sqoop

註釋掉HCatalog,Accumulo檢查(除非你準備使用HCatalog,Accumulo等HADOOP上的元件) 

## Moved to be a runtime check in sqoop.

#if [ ! -d "${HCAT_HOME}" ]; then

# echo "Warning: $HCAT_HOME does not exist! HCatalog jobs willfail."

# echo 'Please set $HCAT_HOME to the root of your HCatalog installation.'

#fi

#if [ ! -d "${ACCUMULO_HOME}" ];then

# echo "Warning: $ACCUMULO_HOME does not exist! Accumulo imports willfail."

# echo 'Please set $ACCUMULO_HOME to the root of your Accumuloinstallation.'

#fi 

再次執行sqoop version

你也可以檢視某一個命令的使用說明:

$ sqoopimport --help

$ sqoophelp import

sqoop import 的一個示例如下:

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS

你還可以使用 --options-file 來傳入一個檔案,使用這種方式可以重用一些配置引數:

$ sqoop --options-file /users/homer/work/import.txt --table TEST

/users/homer/work/import.txt 檔案內容如下:

import
--connect
jdbc:mysql://192.168.56.121:3306/metastore
--username
hiveuser
--password 
redhat

二、Sqoop使用說明

1、測試連線:

(1)顯示mysql資料庫列表

sqoop list-databases –connect jdbc:mysql://hadoop003:3306/--username root –P

(2)顯示資料庫裡所有表:

sqoop list-tables --connectjdbc:mysql://hadoop003:3306/EDW --username root -P

2、Mysql與HDFS互導

(1)mysql匯入到hdfs

把mysql中表fin_cashier_order匯入到hdfs,匯入之前查詢一下fin_cashier_order表中的資料

共:199條

sqoop import --connectjdbc:mysql://hadoop003:3306/ssa --username root --password *****  --table fin_cashier_order --target-dir/user/hadoop/databases/ssa/fin_cashier_order -m 4

-m 表示Map併發數

若是不寫--target-dir 則預設是hdfs上的user/username/tablename 路徑

如果重複執行,會提示目錄已經存在,可以手動刪除

執行完mapreduce結束後去HDFS上檢查

驗證hdfs上匯入的資料:

hadoop fs -ls /user/hadoop/databases/ssa/fin_cashier_order

hadoop fs -cat /user/hadoop/databases/ssa/fin_cashier_order/part-m-00000

(2)HDFS匯入到mysql

把HDFS中資料匯入到Mysql表中,mysql中需要預先建立空表fin_cashier_order2,此時該表為空

sqoop export --connectjdbc:mysql://hadoop003:3306/ssa --table fin_cashier_order2 --username root--password ****** --export-dirhdfs://jrtestcluster/user/hadoop/databases/ssa/fin_cashier_order/

執行完顯示

16/02/25 16:23:39 INFOmapreduce.ExportJobBase: Transferred 70.4619 KB in 48.3235 seconds (1.4581KB/sec)

16/02/25 16:23:39 INFO mapreduce.ExportJobBase:Exported 199 records.

顯示匯出199條記錄。

到表fin_cashier_order2檢視

並且正好也是199條。

至此,用Sqoop將mysql與HDFS互導功都驗證完畢

你還可以指定其他的引數:

引數 說明
--append 將資料追加到hdfs中已經存在的dataset中。使用該引數,sqoop將把資料先匯入到一個臨時目錄中,然後重新給檔案命名到一個正式的目錄中,以避免和該目錄中已存在的檔案重名。
--as-avrodatafile 將資料匯入到一個Avro資料檔案中
--as-sequencefile 將資料匯入到一個sequence檔案中
--as-textfile 將資料匯入到一個普通文字檔案中,生成該文字檔案後,可以在hive中通過sql語句查詢出結果。
--boundary-query <statement> 邊界查詢,也就是在匯入前先通過SQL查詢得到一個結果集,然後匯入的資料就是該結果集內的資料,格式如:--boundary-query 'select id,no from t where id = 3',表示匯入的資料為id=3的記錄,或者 select min(<split-by>), max(<split-by>) from <table name>,注意查詢的欄位中不能有資料型別為字串的欄位,否則會報錯
--columns<col,col> 指定要匯入的欄位值,格式如:--columns id,username
--direct 直接匯入模式,使用的是關係資料庫自帶的匯入匯出工具。官網上是說這樣匯入會更快
--direct-split-size 在使用上面direct直接匯入的基礎上,對匯入的流按位元組數分塊,特別是使用直連模式從PostgreSQL匯入資料的時候,可以將一個到達設定大小的檔案分為幾個獨立的檔案。
--inline-lob-limit 設定大物件資料型別的最大值
-m,--num-mappers 啟動N個map來並行匯入資料,預設是4個,最好不要將數字設定為高於叢集的節點數
--query,-e <sql> 從查詢結果中匯入資料,該引數使用時必須指定–target-dir–hive-table,在查詢語句中一定要有where條件且在where條件中需要包含 \$CONDITIONS,示例:--query 'select * from t where \$CONDITIONS ' --target-dir /tmp/t –hive-table t
--split-by <column> 表的列名,用來切分工作單元,一般後面跟主鍵ID
--table <table-name> 關係資料庫表名,資料從該表中獲取
--delete-target-dir 刪除目標目錄
--target-dir <dir> 指定hdfs路徑
--warehouse-dir <dir> 與 --target-dir 不能同時使用,指定資料匯入的存放目錄,適用於hdfs匯入,不適合匯入hive目錄
--where 從關係資料庫匯入資料時的查詢條件,示例:--where "id = 2"
-z,--compress 壓縮引數,預設情況下資料是沒被壓縮的,通過該引數可以使用gzip壓縮演算法對資料進行壓縮,適用於SequenceFile, text文字檔案, 和Avro檔案
--compression-codec Hadoop壓縮編碼,預設是gzip
--null-string <null-string> 可選引數,如果沒有指定,則字串null將被使用
--null-non-string <null-string> 可選引數,如果沒有指定,則字串null將被使用

示例程式:

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS --columns "tbl_id,create_time" --where "tbl_id > 1" --target-dir /user/hive/result

使用 sql 語句

參照上表,使用 sql 語句查詢時,需要指定 $CONDITIONS

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --query 'SELECT * from TBLS where \$CONDITIONS ' --split-by tbl_id -m 4 --target-dir /user/hive/result

上面命令通過 -m 1 控制併發的 map 數。

使用 direct 模式:

$ sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS --delete-target-dir --direct --default-character-set UTF-8 --target-dir /user/hive/result

指定檔案輸出格式:

sqoop import --connect jdbc:mysql://192.168.56.121:3306/metastore --username hiveuser --password redhat --table TBLS --fields-terminated-by"\t" --lines-terminated-by "\n" --delete-target-dir --target-dir /user/hive/result

這時候檢視 hdfs 中資料(觀察分隔符是否為製表符):

$ hadoop fs -ls result
Found 5 items
-rw-r--r--   3 root hadoop          0 2014-08-04 16:07 result/_SUCCESS
-rw-r--r--   3 root hadoop         69 2014-08-04 16:07 result/part-m-00000
-rw-r--r--   3 root hadoop          0 2014-08-04 16:07 result/part-m-00001
-rw-r--r--   3 root hadoop        142 2014-08-04 16:07 result/part-m-00002
-rw-r--r--   3 root hadoop         62 2014-08-04 16:07 result/part-m-00003

$ hadoop fs -cat result/part-m-00000
34  1406784308  8   0   root    0   45  test1   EXTERNAL_TABLE  null    null    null

$ hadoop fs -cat result/part-m-00002
40  1406797005  9   0   root    0   52  test2   EXTERNAL_TABLE  null    null    null
42  1407122307  7   0   root    0   59  test3   EXTERNAL_TABLE  null    null    null

相關推薦

Sqoop-1.4.6安裝部署詳細使用介紹部分資訊彙總

最近在開發oozie的排程系統中遇到了下面錯誤 ERROR tool.ImportTool: EncounteredIOException running import job: java.io.IOException: DataStreamer Exception:

Sqoop-1.4.6安裝部署

部署的前提是已經存在HADOOP、HBASE、HIVE、ZOOKEEPER環境 (1)下載地址:sqoop-1.4.6 解壓到/home/sqoop/sqoop1.4 (2)、配置環境變數在:/etc/profiles 檔案中新增下面內容 #sqoop  export S

大資料學習系列8-Centos6.7 hadoop-2.6.5下sqoop-1.4.6安裝部署

安裝sqoop的前提是已經具備java和hadoop的環境 1、下載並解壓 2、修改配置檔案 $ cd $SQOOP_HOME/conf $ mv sqoop-env-template.sh sqoop-env.sh 開啟sqoop-env.sh並編輯下面幾

sqoop-1.4.7安裝(一)

(一):簡介和環境說明 sqoop是apache旗下一款“Hadoop和關係資料庫伺服器之間傳送資料”的工具。   匯入資料:MySQL,Oracle匯入資料到Hadoop的HDFS、HIVE、HBASE等資料儲存系統;   匯出資料:從Hadoop的檔案系統中匯出資料到關係資料庫

Sqoop-1.99.7安裝配置(詳細圖文)

環境:centos 6.5,hadoop2.6.4叢集 1.解壓安裝sqoop 從官網下載好安裝包,傳送到叢集中任意一臺主機即可。相信大家已經看到,1.99.7跟1.4.6是不相容的,而且官網也不建議使用這個版本在生產環境中使用。可是,為了學習,搞吧!

web緩存服務器varnish-4.1.6部署配置詳解

是否 次數 tool 至少 hits 檢查 rep nat list web緩存服務器varnish-4.1.6的部署及配置詳解 1.安裝varnish4.1.6安裝依賴 yum install -y autoconf automake jemalloc-devel li

Kettle-6.1安裝部署使用教程

一、Kettle概念 Kettle是一款國外開源的ETL工具,純java編寫,可以在Window、Linux、Unix上執行,綠色無需安裝,資料抽取高效穩定。 Kettle 中文名稱叫水壺,該專案的主程式設計師MATT 希望把各種資料放到一個壺裡,然後以一種指定的格式流出。 Kettle這個ETL工具集

Spark專案之環境搭建(單機)四 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 安裝

上傳解壓 sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz,重新命名 tar -zxf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop 進入sqoop

CentOS 7安裝Samba 4.6 版本步驟錯誤解決方法

style chmod tab root 必須 共享文件夾 默認 mini div 首先通過這次教訓,讓我養成一個好習慣:備份 備份 備份 不管做什麽配置或者更改什麽東西之前先做好備份! 還有我本身的一個壞毛病:眼高手低! 工廠有一臺服務器,由以前的運維裝的S

從零開始搭建系統1.4——MySql安裝配置

get com class sql安裝 lan mysql安裝 ref logs sql 從零開始搭建系統1.4——MySql安裝及配置從零開始搭建系統1.4——MySql安裝及配置

MySQL-5.6.38 安裝部署介紹

root 準備 term p s 查詢 ace p12 libaio mmu 第1章 MySQL簡介及部署1.1 介紹1.1.1 什麽是數據數據是指對客觀事件進行記錄並可以鑒別的符號,是對客觀事物的性質、狀態以及相互關系等進行記載的物理符號或這些物理符號的組合。它是可識別的

1.4.Laravel安裝下載

方式一:直接下載方式部署laravel 下載Laravel: Laravel中文網: 框架檔案: 訪問方式:主機名/專案檔名稱/Public 例如:localhost/laravel/public,當訪問結果成功出現底下介面時,恭喜你們,laravel框架你

CentOS下Solr7.4.0安裝部署到Tomcat最全詳細教程

前言 作業系統:CentOS6.9 64位 Solr版本:Solr7.4.0 Tomcat版本:apache-tomcat-8.5.4 之前一直用Solr6,其實Solr7部署下來和Solr6是一樣的。 部署 第一步:下載安裝包 下載Solr7.4.0: w

資料遷移工具 sqoop 安裝部署實戰

目錄 概述 工作機制 安裝部署 實戰 1.概述 sqoop是apache旗下一款“Hadoop和關係資料庫伺服器之間傳送資料”的工具。 匯入資料:MySQL,Oracle匯入資料到Hadoop的HDFS、HIVE、HBASE等資料儲存系統; 匯

Flume-ng-1.4.0安裝執行遇到問題總結

2、解壓安裝包     tar -zxvf apache-flume-1.4.0-bin.tar.gz 3、配置環境變數 export FLUME_HOME=/root/install/apache-flume-1.4.0-bin export PATH=$PATH:$F

centos 7 安裝sqoop 1.4.7

1. 下載sqoop1.4.7 cd /home/workspace wget https://mirrors.tuna.tsinghua.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz tar -xzvf sqoop-

ElasticSearch 6.4.2 安裝部署elasticsearch-dump

elasticsearch-dump可用ES的資料備份、遷移、同步操作等 #wget https://nodejs.org/dist/v10.14.2/node-v10.14.2-linux-x64.tar.xz # tar -xJvf node-v10.14.2-linux-x64.tar.

hadoop3.1.0 HA高可用完全分散式叢集的安裝部署詳細教程)

1.環境介紹 伺服器環境:CentOS 7 5臺伺服器 兩臺namenode 三臺datanode 節點 IP NN DN ZK ZKFC

VS2010+OpenCV2.4.6安裝與配置常遇問題

#include "stdafx.h" #include <opencv.hpp> #include <iostream> #include <string> using namespace cv; using namespace std; int _tmain(int

搭建企業級wiki管理-confluence 5.4 安裝部署破解

  confluence 作為專案內協作、文件共享的工具,具統計已經有將近一半開發團隊在使用confluence來用於專案的wiki知識共享。IBM、Apache等眾多網站都在使用confluence來進行知識管理,順帶confluence的官方網站都是用con