资源下载链接:ETL服务器安装手册
1、rcrm用户创建:
Linux下新建组命令:
groupadd etl
–添加用户及指定挂在目录
useradd -d /home/etl -m etl
–更改新用户的密码
passwd etl
mkdir crm
cd crm
mkdir backup
mkdir kettle
mkdir cfg
mkdir data
mkdir log
mkdir reject
mkdir script
cd kettle
mkdir repfile
2、安装JDK 1.7.0_60(安装完忽略)
在oracle官网上下载JDK,并安装
rpm:rpm -ivh jdk-7u60-linux-x64.rpm – 安装jdk所依赖的rpm 包
bin: chmod +x jdk-7u60-linux-x64.bin
./ jdk-7u60-linux-x64.bin --给目录赋予执行安装的权限
tar:tar zxvf jdk-7u60-linux-x64.tar.gz --对JDK安装包进行解压
jdk安装在/opt/目录下(注:/usr/local/目录若不存在需新建)
3、ROOT用户配置环境变量:
3.1 设置环境变量
vi /etc/profile
#set java JDK
JAVA_HOME=/usr/local/jdk1.7.0_60
JRE_HOME=/usr/local/jdk1.7.0_60/jre
ORACLE_HOME=/opt/oracle/instantclient_11_2
TNS_ADMIN=
O
R
A
C
L
E
H
O
M
E
/
s
d
k
/
n
e
t
w
o
r
k
/
a
d
m
i
n
L
D
L
I
B
R
A
R
Y
P
A
T
H
=
ORACLE_HOME/sdk/network/admin LD_LIBRARY_PATH=
ORACLEHOME/sdk/network/adminLDLIBRARYPATH=ORACLE_HOME:
L
D
L
I
B
R
A
R
Y
P
A
T
H
P
A
T
H
=
LD_LIBRARY_PATH PATH=
LDLIBRARYPATHPATH=PATH:
J
A
V
A
H
O
M
E
/
b
i
n
:
JAVA_HOME/bin:
JAVAHOME/bin:JRE_HOME/bin:
O
R
A
C
L
E
H
O
M
E
:
/
u
s
r
/
l
o
c
a
l
/
z
o
o
k
e
e
p
e
r
−
3.4.5
/
b
i
n
C
L
A
S
S
P
A
T
H
=
ORACLE_HOME:/usr/local/zookeeper-3.4.5/bin CLASSPATH=
ORACLEHOME:/usr/local/zookeeper−3.4.5/binCLASSPATH=JAVA_HoME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
KETTLE_HOME=/home/ecif/kettle/data-integration
NLS_LANG=‘SIMPLIFIED CHINESE_CHINA.ZHS16GBK’
export JAVA_HOME
export JRE_HOME
export ORACLE_HOME
export PATH
export CLASSPATH
export KETTLE_HOME
export TNS_ADMIN
export LD_LIBRARY_PATH
export NLS_LANG
3.2 使环境变量生效
source /etc/profile --执行source名,对配置文件进行编译
3.3 检查jdk是否安装成功
java –version
表示安装成功…
4、Kettle安装
4.1 安装配置kettle:
1)下载kettle并在服务器上解压,赋予sh的执行权限(chmod +x *.sh)
Kettle官网下载连接:
http://sourceforge.net/projects/pentaho/files/Data Integration/6.0/pdi-ce-6.0.0.0-353.zip/download
2)使用ecif用户将kettle绿色安装包上传至Linux服务器对应的目录:
新建目录:/home/ecif/kettle
上传kettle绿色安装包上传至/home/ecif/kettle下
最终结果: /home/ecif/kettle/pdi-ce-5.4.0.1-130/data-integration
4.2图形化配置设置
编辑/home/ecif/kettle/pdi-ce-5.4.0.1-130/data-integration/spoon.sh,见下:(红色部分)
OPT="$OPT
P
E
N
T
A
H
O
D
I
J
A
V
A
O
P
T
I
O
N
S
−
D
j
a
v
a
.
l
i
b
r
a
r
y
.
p
a
t
h
=
PENTAHO_DI_JAVA_OPTIONS -Djava.library.path=
PENTAHODIJAVAOPTIONS−Djava.library.path=LIBPATH -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false
4.3 kettle中文支持安装
执行以下命令:
1) yum groupinstall “Chinese Support”
2) dbus-uuidgen > /var/lib/dbus/machine-id
4.4 检查kettle是否安装成功
1)切换目录运行kettle
cd /home/ecif/kettle/data-integration/
sh spoon.sh
2)正确启动展示如下图:
5、ETL程序下发
5.1 上传文档(shell脚本及加密解密程序)
- 投产当天需将调度脚本上传至生产LINUX服务器:/home/etl/crm/script 目录下,需要上传的脚本见下:
注意: 1)shell脚本是通过sqlplus连接数据库传入用户名和密码以及TNS名称即可
2)保证传入的TNS名称和/home/etl/crm/cf/etl.cfg中传入的ORLSID相同即可;
6.2 导入kettle的程序xml文件 - Linux下将rcrm作业文件包导入到资源库之前,需要新建新资源库,然后将rcrm作业文件包导入
建立资源库见下图:点击”连接资源库”
2)会出现以下对话框,然后点击”+”按钮,添加资源库
此时会让你选择创建文件资源库还是数据库资源库,依照目前我们的做法创建的是文件资源库,所以按照下图创建文件资源库即可;
资源库信息见下:
新建数据库连接,并进行rcrm数据连通性测试,点击”测试” 按钮,如果测试不成功,需要将OJDBC.jar包放到linux下kettle的安装目录中,目录见下:(/home/etl/crm/kettle/data-integration/lib)
新建完之后,按照下图操作,点击”创建或更新” 按钮,此时会让在rcrm数据库中创建资源库的相关表信息,点击”是”即可,获取登录资源库权限
在这里插入图片描述
注:以上是建立整个资源库的过程。
3)整个资源库建完之后,导入已开发好的资源库文件信息,步骤见下:
默认将资源库文件导入到根目录,以下是选择导入资源库文件存放的路径
导入资源库文件的对话框信息见下图:
4) Kettle数据库配置信息进行修改
打开资源库信息(快捷键:Ctrl + E)
选择”连接” 标签,对数据库的配置信息进行修改:
在这里插入图片描述
6.3 KETTLE数据库连接配置设置(引用变量)
Kettle中使用变量来进行数据库连接配置,配置步骤见下:
1)进入Kettle安装目录:/home/etl/.kettle
2)vi kettle.properties 编辑属性文件,添加一下信息:(红色部分以实际生产为准)
#crm数据库配置信息
DB_IP = 168.31.63.201
DB_SID = xycrm
DB_NAME = xycrm
DB_PW = xycrm
DB_PORTS = 1521
3)参数信息添加完,保存并退出;
4)登录kettle图形化界面,修改资源库连接信息,见下图:
修改完以上信息,登录资源库,并将资源库中的连接信息一并修改,见图:
以上数仓的配置信息同理,并进行连通性测试;
6.3 ETL调度介绍
- 调度分为初始化,日常
已经将shell相关的调度脚本上传至/home/etl/crm/script目录下
初始化调度,需在kettle下来进行调度(上线运行一次):
20160707为上线日期,执行以下SQL:
Truncate table b_pub_rqb;
insert into b_pub_rqb
(
object_id
, currentday
, lastday
, nextday
, last_month
,sysstatus
)
values (1, to_date(‘20160707’, ‘yyyymmdd’), to_date(‘20160731’, ‘yyyymmdd’), to_date(‘20160708’, ‘yyyymmdd’), to_date(‘20160707’, ‘yyyymmdd’),‘0’)
;
Commit;
初始化调度命令:
nohup /home/etl/crm/kettle/data-integration/kitchen.sh -rep crm -user admin -pass “
R
E
P
U
S
E
R
P
A
S
S
"
−
d
i
r
/
h
o
m
e
/
e
t
l
/
c
r
m
/
k
e
t
t
l
e
/
r
e
p
f
i
l
e
/
C
R
M
/
F
I
R
S
T
/
J
O
B
S
/
D
i
s
p
a
t
c
h
−
j
o
b
T
O
L
C
R
M
D
A
I
L
Y
F
−
l
e
v
e
l
=
b
a
s
i
c
−
p
a
r
a
m
:
e
t
l
d
a
t
e
=
"
{REPUSERPASS}" -dir /home/etl/crm/kettle/repfile/CRM/FIRST/JOBS/Dispatch -job TOL_CRM_DAILY_F -level=basic -param:etl_date="
REPUSERPASS"−dir/home/etl/crm/kettle/repfile/CRM/FIRST/JOBS/Dispatch−jobTOLCRMDAILYF−level=basic−param:etldate="{BatchDate}” 2>&1
nohup /home/etl/crm/kettle/data-integration/kitchen.sh -rep crm -user admin -pass “ R E P U S E R P A S S " − d i r / h o m e / e t l / c r m / k e t t l e / r e p f i l e / C R M / F I R S T / J O B S / D i s p a t c h − j o b T O L C R M M A N U A L F − l e v e l = b a s i c − p a r a m : e t l d a t e = " {REPUSERPASS}" -dir /home/etl/crm/kettle/repfile/CRM/FIRST/JOBS/Dispatch -job TOL_CRM_MANUAL_F -level=basic -param:etl_date=" REPUSERPASS"−dir/home/etl/crm/kettle/repfile/CRM/FIRST/JOBS/Dispatch−jobTOLCRMMANUALF−level=basic−param:etldate="{BatchDate}” 2>&1
在LINUX下执行以下命令,执行日常任务调度工作,命令见下:
日常任务调度命令见下:
nohup /home/etl/crm/kettle/data-integration/kitchen.sh -rep crm -user admin -pass “
R
E
P
U
S
E
R
P
A
S
S
"
−
d
i
r
/
h
o
m
e
/
e
t
l
/
c
r
m
/
k
e
t
t
l
e
/
r
e
p
f
i
l
e
/
C
R
M
/
J
O
B
S
/
D
i
s
p
a
t
c
h
−
j
o
b
C
R
M
M
A
N
U
A
L
D
I
S
P
A
T
C
H
−
l
e
v
e
l
=
b
a
s
i
c
−
p
a
r
a
m
:
e
t
l
d
a
t
e
=
"
{REPUSERPASS}" -dir /home/etl/crm/kettle/repfile/CRM/JOBS/Dispatch -job CRM_MANUAL_DISPATCH -level=basic -param:etl_date="
REPUSERPASS"−dir/home/etl/crm/kettle/repfile/CRM/JOBS/Dispatch−jobCRMMANUALDISPATCH−level=basic−param:etldate="{BatchDate}” 2>&1
- 日常作业重调,需要执行以下命令:
日常重调任务命令:
nohup /home/etl/crm/kettle/data-integration/kitchen.sh -rep crm -user admin -pass “ R E P U S E R P A S S " − d i r / h o m e / e t l / c r m / k e t t l e / r e p f i l e / C R M / J O B S / D i s p a t c h − j o b T O L C R M D A I L Y R E P − l e v e l = b a s i c − p a r a m : e t l d a t e = " {REPUSERPASS}" -dir /home/etl/crm/kettle/repfile/CRM/JOBS/Dispatch -job TOL_CRM_DAILY_REP -level=basic -param:etl_date=" REPUSERPASS"−dir/home/etl/crm/kettle/repfile/CRM/JOBS/Dispatch−jobTOLCRMDAILYREP−level=basic−param:etldate="{BatchDate}” 2>&1
6.4 KETTLE进程监控
ps –ef |grep ‘kitchen.sh’
ps –ef |grep ‘spoon.sh’
ps -ef | grep TOL_CRM_DAILY --日批作业进程
详细进程见下图:
6.5 KETTLE日志监控作业跑批情况
1.查看日志目录请执行:cd /home/etl/crm/log
2.日志文件夹生成规则:当天跑批日期
3.跑批日志生成规则为:作业名+当天跑批日期+随机数.log
4.详细见图:
:
6.4 KETTLE进程监控
执行如下sql:
select * from e_etl_info;
select * from e_etl_job_info;
详细进程见下图:
查看是否成功:
6.5 KETTLE日志监控作业跑批情况
5.查看日志目录请执行:cd /home/etl/crm/log
6.日志文件夹生成规则:当天跑批日期
3.跑批日志生成规则为:作业名+当天跑批日期+随机数.log
4.详细信息见下图: