sheel指令碼的執行。
Sqoop 指令碼開發規範
Sqoop 指令碼開發規範
目錄規範
1.目錄結構體系
/home/hadoop(開發使用者)/app/djt(資料來源、業務)/sh/sqoop
示例:/home/hadoop/app/djt/sh/sqoop
home/hadoop(開發使用者)/app/djt(資料來源、業務)/sh/param
示例:/home/hadoop/app/djt/sh/param
2.指令碼檔案命名規範
2.1檔名規範:資料庫型別_資料層_日期_表實體命名。
2.2副檔名規範:副檔名為sh。
2.3檔名命名舉例:sq_ods_d_djt_user_copy.sh
3.指令碼執行、除錯、編輯
3.1指令碼執行環境
在liunx作業系統上執行,通過命令方式呼叫指令碼
3.2呼叫指令碼和終止指令碼
3.2.1可以用多種方式呼叫指令碼如下
a)Sh 指令碼名
b)./指令碼名
c)Source 指令碼名
/xxxx/xxx/指令碼名 -----指令碼的全路徑
3.2.2終止指令碼
通過ps命令查詢到正在執行指令碼的程序,用kill命令殺掉執行中的指令碼。
ps –ef|grep 指令碼名;
kill 指令碼的程序
3.2.3編輯工具
使用linux系統自帶的vi編輯,UE等
4.指令碼註釋說明
指令碼中需要有基本的註釋資訊方便以後維護,如引數、執行示例、指令碼存放位置、日誌檔案地址、建立人、建立日期等資訊。
指令碼註釋示例:
###################################################################
#說明:將使用者資料從HDFS匯入MySQL
#引數CONNECTURL 說明:MySQL 連線地址 示例:jdbc:mysql://dajiangtai/djtdb_test
#引數USERNAME 說明:MySQL 賬號 示例:root
#引數PASSWORD 說明:MySQL 密碼 示例:root
#執行示例: sh /home/hadoop/app/djt/sh/sqoop/sq_ods_d_djt_user_copy.sh
#指令碼存放地址:/home/hadoop/app/djt/sh/sqoop
#日誌檔案地址:/home/hadoop/app/djt/sh/log
#建立人:dajiangtai
#建立日期:20161201
#最新修改日期:20170101
#修改人、修改時間、修改內容:xxxxxxxxxxxxxxxxx
#修改人、修改時間、修改內容:xxxxxxxxxxxxxxxxx
###################################################################
5.指令碼變數、引數命名規範
1)指令碼變數命名
變數名:v_開頭
2)引數命名
表名引數: v_tableName
匯出欄位引數:v_fields
匯出檔案目錄:v_src
6.指令碼環境變數配置檔案規範
配置檔案是指令碼中用到的環境變數,mysql連線,公共指令碼地址等都放到配置檔案用方便以後管理。
1) 配置檔案存放路徑及其命名配置檔案路徑及命名:/home/hadoop/app/djt/sh/param/sq_shell.config
2) 配置檔案中示例內容如下
CONNECTURL=jdbc:mysql://dajiangtai/djtdb_test
USERNAME=root
PASSWORD=root
3) 配置檔案編寫規範:配置檔案中以等號做分割符,第一列是變數名需要大寫
7.編寫指令碼環境變數配置檔案
vi /home/hadoop/app/djt/sh/param/sq_shell.config
CONNECTURL='jdbc:mysql://192.168.8.200/djtdb_test?useUnic
ode=true&characterEncoding=utf-8'
USERNAME='root'
PASSWORD='111111'
8.編寫sqoop執行指令碼
vi
/home/hadoop/app/djt/sh/sqoop/sq_ods_d_djt_user_copy.sh
#! /bin/sh
source /etc/profile
source /home/hadoop/app/djt/sh/param/sq_shell.config
#表名稱
v_tableName=djt_user_copy
#需要匯入的表字段
v_fields=name,sex,age,profile
#HDFS資料存放地址
v_src=/sqoop/test/djt_user
sqoop export \
--connect $CONNECTURL \
--username $USERNAME \
--password $PASSWORD \
--table $v_tableName \
--columns $v_fields \
--export-dir $v_src \
--input-fields-terminated-by "@" \
-m 1