方式一:
將sqoop寫入Shell腳本
#!/bin/bash
source /etc/profile
sqoop import \
--connect jdbc:mysql://hadoop001:3306/sales_source \
--username root \
--password 123456 \
--table sales_order \
--hive-import \
--fields-terminated-by '','' \
--hive-table sales_rds.sales_order
注意:這個shell腳本的格式不僅要是utf8還要是Linux下的utf8格式,這兩者的換行符是不一樣的
普通的utf8報錯
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 2: /etc/profile
26-09-2019 04:54:36 CST sqoop INFO - : 沒有那個文件或目錄
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 3: sqoop: command not found
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 4: --connect: command not found
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 5: --username: command not found
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 6: --password: command not found
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 7: --table: command not found
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 8: --hive-import: command not found
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 9: --fields-terminated-by: command not found
26-09-2019 04:54:36 CST sqoop INFO - sqoop.sh: line 10: --hive-table: command not found
26-09-2019 04:54:36 CST sqoop INFO - Process completed unsuccessfully in 0 seconds.
用notepad++更改相應格式或者把寫好的腳本放在linux上vi一下再拉到windows上傳。
嫌麻煩用下面這樣的方式
方式二
.project文件
azkaban-flow-version: 2.0
.flow
nodes:
- name: insert_RDS_sales_order_data
type: command
config:
command: /opt/moudle/sqoop/bin/sqoop --options-file insertRdsdata.sh
command: /opt/moudle/sqoop/bin/sqoop --options-file insertRdsdata.sh 必須指到sqoop安裝目錄
也可以用job的方式
type: command
command: /opt/moudle/sqoop/bin/sqoop --options-file insertRdsdata.sh
insertRdsdata.sh(後綴名隨意的)屬性和值之間必須換行
import
--connect
jdbc:mysql://hadoop001:3306/sales_source
--username
root
--password
123456
--table
sales_order
--hive-import
-m
1
--fields-terminated-by
','
--hive-overwrite
--hive-table
sales_rds2.sales_order
-
打成zip包,注意編碼utf-8。
我這裏拿我的一個測試樣例舉例的。
-
azkaban新建一個任務
-
上傳這個zip包
-
執行就好
-
azkaban新建一個任務
-
上傳這個zip包
-
執行就好