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 只是給帶有雙引號或單引號的欄位值加上指定的符號,故叫可選的 |
出現如下錯誤:
錯誤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