在线支持
在线支持
微信支持
微信支持
【集成方案】Kettle对接TDH手把手教学贴
2022-10-24 17:03:09
195次阅读
0个评论

推荐采用先将数据同步到服务器目录,然后再上传到inceptor外表对应的hdfs目录,然后再将数据从外表插入到orc表。这样做的好处有:

  • Kettle同步到服务器本地目录的速度十分快,例如同步到本地文件夹可以达到100000条/s;
  • 可以对接开启了安全认证的inceptor或者hdfs。
流程图如下

image.png


下面以samba方式举例说明同步过程
本示例中,172.18.9.30的/tmp目录共享给Windows免密访问。
访问路径:\\172.18.9.30\test

注意事项:

1. windows需要使用本地账户登陆;

2. 防火墙关闭,selinux关闭;

3. Windowslinux的机器最好在同一网段,跨网段139445端口不要限制访问。

4. 445端口曾经出现过比较严重的安全事故,很多公司的网络安全管理员都把这个端口封了,不在同一局域网无法通过445实现共享。

通过Samba服务共享给Windows访问

(1) 安装samba

yum install –y samba


(2) 配置samba

vi /etc/samba/smb.conf

在security = user下加入如下一句:

map to guest = Bad User

注意:如果网络限制了445端口,则应该再加入smb ports = xxxx(port number)以更改samba服务的端口。

在文件最后加入:

[test]

        comment = WORKGROUP

        path = /tmp

        public = yes

        writable = yes

        browseable = yes


(3) 启动samba服务:

service smb restart


(4) 配置开机启动:

/etc/rc.d/rc.local里,添加service smb start

最终效果如下图:

image.png


配置kettle进行数据处理及输出

先下载kettle软件包,https://community.hitachivantara.com/home,然后解压下载的软件包,进入解压的目录下,执行Spoon.bat

image.png


(1)建立转换配置数据源

点击文件->新建->转换,建立转换任务

新建转换后选中左边的"主对象树",建立DB连接用以连接数据库。如图所示:

image.png

image.png

注意:在数据库链接的过程中,可能会报某个数据库连接找不到的异常。那是因为你没有对应的数据库链接驱动,请下载对应驱动后,放入kettle的lib文件夹。

(2)简单的数据表插入更新

在左边的面板中选择“核心对象”,在核心对象里面选择“输入->表输入”,用鼠标拖动到右边面板。如图所示:

image.png

双击拖过来的表,可以编辑表输入。
选择数据库连接和编辑sql语句,在这一步可以点击预览,查看自己是否连接正确


image.png


(3)在左边面板中选择核心对象、选择“输出->文本文件输出”如图所示:

文件名称使用前面配置的samba共享路径

image.png

选中表输入,按住shift键,拖向插入更新,表输入连接插入更新

image.png


到这里基本上,这个转换就要做完了,可以点击运行查看效果,看是否有误


(4)页面点击执行

image.png

上图中的速度是3000条左右每秒,是因为测试环境用的网络很不好的idc环境;如果在同一网段,百兆宽带的速度将是十分快的,参考如下的将数据同步到本地文件。如下图所示:

image.png


将数据文件导入Inceptor

(1)下载tdh-client,并上传到集群

tar -xvf tdh-client.tar

source TDH-Client/init.sh

然后执行hdfs dfs -ls /,可以看到,已经能够使用hdfs命令。


(2)将数据文件上传到HDFS

image.png

使用hdfs命令将文件上传到某个hdfs中的目录, 假设用hdfs上的/tmp/test/文件夹作为示例外表的目录

image.png


(3)建立基于上述hdfs目录的外表并查看外表中的数据

image.png


(4)将外表数据插入Inceptor的ORC表

①创建相同表结构的ORC表

②将外表数据插入ORC表

image.png


完成。

收藏 0 0

登录 后评论。没有帐号? 注册 一个。

admin

官方人员
  • 0 回答
  • 0 粉丝
  • 0 关注