推荐采用先将数据同步到服务器目录,然后再上传到inceptor外表对应的hdfs目录,然后再将数据从外表插入到orc表。这样做的好处有:
流程图如下
下面以samba方式举例说明同步过程
本示例中,172.18.9.30的/tmp目录共享给Windows免密访问。
访问路径:\\172.18.9.30\test
注意事项:
1.windows需要使用本地账户登陆;
2.防火墙关闭,selinux关闭;
3.Windows和linux的机器最好在同一网段,跨网段139和445端口不要限制访问。
4.445端口曾经出现过比较严重的安全事故,很多公司的网络安全管理员都把这个端口封了,不在同一局域网无法通过445实现共享。
(3) 启动samba服务:
service smb restart
(4) 配置开机启动:
/etc/rc.d/rc.local里,添加service smb start
最终效果如下图:
配置kettle进行数据处理及输出
先下载kettle软件包,https://community.hitachivantara.com/home,然后解压下载的软件包,进入解压的目录下,执行Spoon.bat
1、建立转换配置数据源
点击文件->新建->转换,建立转换任务
新建转换后选中左边的"主对象树",建立DB连接用以连接数据库。如图所示:
注意:在数据库链接的过程中,可能会报某个数据库连接找不到的异常。那是因为你没有对应的数据库链接驱动,请下载对应驱动后,放入kettle的lib文件夹。
2、简单的数据表插入更新
在左边的面板中选择“核心对象”,在核心对象里面选择“输入->表输入”,用鼠标拖动到右边面板。如图所示:
3、在左边面板中选择核心对象、选择“输出->文本文件输出”如图所示:
文件名称使用前面配置的samba共享路径
选中表输入,按住shift键,拖向插入更新,表输入连接插入更新
到这里基本上,这个转换就要做完了,可以点击运行查看效果,看是否有误
4、页面点击执行
上图中的速度是3000条左右每秒,是因为测试环境用的网络很不好的idc环境;如果在同一网段,百兆宽带的速度将是十分快的,参考如下的将数据同步到本地文件。如下图所示:
1、下载tdh-client,并上传到集群
tar -xvf tdh-client.tar
source TDH-Client/init.sh
然后执行hdfs dfs -ls /,可以看到,已经能够使用hdfs命令。
2、将数据文件上传到HDFS
使用hdfs命令将文件上传到某个hdfs中的目录, 假设用hdfs上的/tmp/test/文件夹作为示例外表的目录
3、建立基于上述hdfs目录的外表并查看外表中的数据
4、将外表数据插入Inceptor的ORC表
①创建相同表结构的ORC表
②将外表数据插入ORC表
完成