kettleftp
❶ ETL之kettle学习
Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
外文名
Kettle
中文名
水壶
产品
Spoon、Pan、CHEF、Kitchen
脚本文件
transformation和job,
特点
绿色无需安装
最新版本
8.2
❷ Kettle spoon 下的ftp功能报错,大家给看看这该怎么配置啊
FTPS一般端口是22吧,先测试下是否连接成功 test connection
❸ 如何修改kettle slaveserver的最大连接数
背景
在使用ftp下载插件时,发现进行本地执行时可以正常,但当选择了远程执行并指定了远程服务器后发现出现了错误:从 FTP:User cannot log in. 获取文件时发生错误。根据错误信息可以判断是因为ftp登录不上的原因,至于具体的原因无法定位,为了一探究竟,于是便萌生了调试远程作业的想法,顺便深入了解一下了解kettle运行原理以及源码学习。
思路
carte服务器实际上就是一个web server,该web server 是基于 Jetty 这个嵌入式的开源 servlet 容器。这个web server主要是提供转换运行的环境,另外一个重要的功能通过提供servlet来在客户端、主服务器和从属服务器之间进行通讯和控制。主服务器和从属 服务器之间是通过httpClient来进行通讯的,通讯时传递的数据是xml格式。通过提供的servlet,可以实现启动、停止、暂停转换或者作业、 获得转换或者作业的状态、注册子服务器、获得子服务器的列表等等.
其实思路以及LZ使用的方法很简单:通过java代码在eclipse中启动一个Carte服务器,然后远程执行作业时指定服务器作为载体。
搭建Carte服务启动环境
首先创建一个普通的java project项目,如果没有kettle源码环境的话可以创建maven project,这样直接从中心仓库上面获得jar包以及源码。刚好LZ之前有编译过kettle源码且已 经作为项目导入了eclipse中,所以 源码以及相关kettle的jar包都已经有了。
创建了项目后,需要把相关的jar包加到java bulid path中,下面的jar包也可以从PDI工具的lib目录下获得:
把依赖包加入到项目中后,创建一个类来启动Carte服务:
public class CarteServer {
publicstaticvoid main(String[] args) throws Exception {
SlaveServerConfig config =new SlaveServerConfig("192.168.31.43", 7088,true);//ip与端口与通过Carte.bat启动时指定的参数一样
Carte.runCarte(config); //通过该静态方法启动carte
}
}
开始远程调试
1.启动carte服务,建好CarteServer类后,直接debug as --> java application,即可启动carte服务,在控制台可以看到以下信息:
2016/08/11 10:55:55 - Carte - 创建 web 服务监听器 @ 地址: 192.168.31.43:7088
2016-08-11 10:55:55.912:INFO::jetty-6.1.26
2016-08-11 10:55:55.933:INFO::Started [email protected]:7088
2.打开spoon工具,创建一个job,下面的job是从ftp服务器上下载文件:
3.因为作业用到了FTP下载插件,在源码中对应JobEntryFTP类,打开该类并在execute()方法中打上断点:
4.运行job,选择远程执行,选择上述类CarteServer中启动的服务器(要先在spoon工具中新建一个子服务器):
5.观察断点位置,看到已经进入了调试:
大功告成,至于ftp下载插件为什么在远程执行中错误另外说明。
远程执行流程
用户运行kettle作业并选择“远程执行”,触发org.pentaho.di.job.Job类的sendToSlaveServer方法
在sendToSlaveServer方法中,首先生成XML格式的作业元数据描述。
调用SlaveServer的sendXML()方法把这些元数据会被发送到远程的carte服务器。
服务器端AddJobServlet接收到请求后,进入doGet()方法通过元数据构造出Job实体并把作业保存到JobMap中。
在sendToSlaveServer方法中,把XML发送到carte服务器后,接着调用SlaveServer的execService()方法进行启动远程的job
此时服务器端StartJobServlet会接收到请求后,会给job(其实是一个Thread)做一堆初始化工作,最后调用job的start方法进行启动。
❹ elt kettle,请问在FTP上的远程目录应该怎么填
想知道这个后面弄好了吗?怎么处理?
❺ 我现在想通过kettle 将一个远程目录的文件复制到另外一个远程目录下,求思路。
遇到相同问题,觉得应该可以尝试借助FTP工具,本地的文件上传至FTP,远程服务器那边从FTP下载到远程主机本地;然后定时执行这个作业
❻ ODI与kettle的区别
大哥 你说这玩意 估计没几个人能知道 我用kettle已经快2年了 但是odi基本没用过
你要说区别我还能知道点 你要具体点还真具体不了 光kettle里面的东西就够研究了
网络就是坑货 现在 odi和kettle有几本书啊 补充下还老是审批不通过
我说下kettle的特点 你和odi对比下吧
1,kettle是纯java 对各种平台都支持
2,kettle对java开发api 在项目中集成也方便
3,提供图形化界面 拖拖拽拽搞开发 轻松
4,提供数据库已经文件2种形式的资源库 使用起来灵活
5,使用组件形式进行逻辑处理
6,支持各种数据接口:主流数据库就不说了 扁平文件,xml文件,excel文件甚至xbase的数据库文件都可以轻松读取
7,辅助功能强大:支持各种对文件的操作(移动,删除等),邮件功能,ftp,ssh2等等
8,组件包含 公式,js,java class等 语法简单轻松
在就想不起来了 上面说的都是我用过的(ftp,ssh2除外) 其中xbase当时是坑死我了 开始用ojdbc去弄死活弄不了 后来才发现可以直接读文件
然后就是与weblogic的jar包冲突 其他问题都好说
odi Oracle Data Integrator公司之所以没用他 就是感觉太麻烦 而且在项目中集成也很麻烦
存手打 求采纳 希望能帮到你
❼ kettle 找不到ftp怎么用
我也遇到这问题了,分享一下解决方法吧以后没准还有人能用到。我机器的主要问题是环境变量JAVA_HOME的值不对,应该写到jdk也就是C:\Program Files\Java\jdk1.7.0_25,并且,改完后要重启机器才行(这个很重要)。
❽ kettle有什么技巧解压rar吗
可以写一个java程序解压RAR,然后用KETTLE的java类控件来调用
❾ kettle内存占用怎么解决
kettle工具本身也会占用很大的内存,可以将需要执行的job用kitchen命令写成bat脚本,这样就可以直接在windows上运行,节省很大的内存占用,如果需要定时执行,可以添加到计划任务中。