1. 程式人生 > >sheel指令碼的執行。

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