当前位置: 首页 > news >正文

如何在Kettle4.2上面实现cassandra的输入与输出

这是在QQ群里有人问到的一个问题。

如何在pdi-ce-4.2.X-stable上面实现cassandra的输入与输出,或是实现hadoop,hbase,mapreduce,mongondb的输入输出?

在kettle中实现cassandra的输入与输出有以下两种方式:

  • 第一种方式:自己编写cassandra输入输出组件
  • 第二种方式:使用别人编写好的插件,将其集成进来

当然还有第三种方法,直接使用4.3版本的pdi.

第一种方法需要对cassandra很熟悉编写插件才可以做到,第二种方法可以通过拷贝pdi-ce-big-data-4.3.0-preview中的文件来完成.

在pdi-ce-big-data-4.3.0-preview(下载页面)版本中可以看到kettle开始支持cassandra的输入和输出.

故我们可以将4.3版本中的cassandra相关文件拷贝到4.2.1中.我使用的是pdi-ce-4.2.1-stable.

在pdi-ce-big-data-4.3.0-preview/plugins目录下有以下目录或文件:

.
|-- databases
|-- hour-partitioner.jar
|-- jobentries
|-- kettle-gpload-plugin
|-- kettle-hl7-plugin
|-- kettle-palo-plugin
|-- pentaho-big-data-plugin
|-- repositories
|-- spoon
|-- steps
`-- versioncheck

pentaho-big-data-plugin目录是kettle对大数据的集成与支持,我们只需要将该目录拷贝到pdi-ce-4.2.1-stable/plugins目录下即可.最后的结构如下

.
|-- databases
|-- hour-partitioner.jar
|-- jobentries
|   `-- DummyJob
|       |-- DPL.png
|       |-- dummyjob.jar
|       `-- plugin.xml
|-- pentaho-big-data-plugin
|   |-- lib
|   |   |-- apache-cassandra-1.0.0.jar
|   |   |-- apache-cassandra-thrift-1.0.0.jar
|   |   |-- aws-java-sdk-1.0.008.jar
|   |   |-- commons-cli-1.2.jar
|   |   |-- guava-r08.jar
|   |   |-- hbase-comparators-TRUNK-SNAPSHOT.jar
|   |   |-- jline-0.9.94.jar
|   |   |-- libthrift-0.6.jar
|   |   |-- mongo-java-driver-2.7.2.jar
|   |   |-- pig-0.8.1.jar
|   |   |-- xpp3_min-1.1.4c.jar
|   |   `-- xstream-1.3.1.jar
|   `-- pentaho-big-data-plugin-TRUNK-SNAPSHOT.jar
|-- repositories
|-- spoon
|-- steps
|   |-- DummyPlugin
|   |   |-- DPL.png
|   |   |-- dummy.jar
|   |   `-- plugin.xml
|   |-- S3CsvInput
|   |   |-- jets3t-0.7.0.jar
|   |   |-- plugin.xml
|   |   |-- S3CIN.png
|   |   `-- s3csvinput.jar
|   `-- ShapeFileReader3
|       |-- plugin.xml
|       |-- SFR.png
|       `-- shapefilereader3.jar
`-- versioncheck
    |-- kettle-version-checker-0.2.0.jar
    `-- lib
	`-- pentaho-versionchecker.jar

13 directories, 29 files

启动pdi-ce-4.2.1-stable之后,打开一个转换,在核心对象窗口就可以看到Big Data步骤目录了.

获取pentaho-big-data-plugin源码 如果想在eclipse中查看或修改pentaho-big-data-plugin源码,该怎么做呢? 你可以从这里下载到源码,然后将src下的文件拷贝到你的pdi-ce-4.2.1-stable源码工程中.

然后,需要在kettle-steps.xml中注册步骤节点 例如,下面是MongoDbInput步骤的注册方法,请针对不同插件的不同类路径加以修改.

<step id="MongoDbInput">
<description>i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MongoDbInput
<classname>org.pentaho.di.trans.steps.mongodbinput.MongoDbInputMeta
<category>i18n:org.pentaho.di.trans.step:BaseStep.Category.Input
<tooltip>i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MongoDbInput
<iconfile>ui/images/mongodb-input.png
</iconfile></tooltip>
</category>
</classname>
</description>
</step>
注意: 由于pdi-ce-4.2.1-stable中存在hive组件,故添加pentaho-big-data-plugin插件之后有可能会出现找不到类的情况,这是由于jar重复版本不一致导致的,按照异常信息,找到重复的jar并按情况删除一个jar包即可.

扩展阅读:

  • Pentaho Big Data Plugin http://wiki.pentaho.com/display/BAD/Getting+Started+for+Java+Developers
  • pentaho-big-data-plugin ci http://- - ci.pentaho.com/job/pentaho-big-data-plugin/lastSuccessfulBuild/artifact/pentaho-big-data-plugin/dist/
  • Pentaho Community Edition (CE) downloads http://wiki.pentaho.com/display/BAD/Downloads

相关文章:

  • hibernate延迟加载
  • EventBus (四) Sticky事件
  • Centos6.6搭建中文版本的Cacti监控
  • 模拟停车POJ(3505)
  • 翻页效果
  • HDU 1162 prime+邻接矩阵
  • 特殊二维数组的查找
  • win8 开发之旅(19) --足球游戏揭秘6
  • linux下sed基本用法详解
  • [翻译] UPCardsCarousel
  • Java编程的逻辑 (1) - 数据和变量
  • ABP源码分析三十二:ABP.SignalR
  • office2003 安装步骤及注意事项
  • 我的屌丝giser成长记-研一篇(下)
  • 本周活动
  • Google 是如何开发 Web 框架的
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Android Volley源码解析
  • Android优雅地处理按钮重复点击
  • CentOS 7 防火墙操作
  • ECS应用管理最佳实践
  • Hexo+码云+git快速搭建免费的静态Blog
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • mysql常用命令汇总
  • ng6--错误信息小结(持续更新)
  • nginx 配置多 域名 + 多 https
  • node学习系列之简单文件上传
  • Objective-C 中关联引用的概念
  • socket.io+express实现聊天室的思考(三)
  • sublime配置文件
  • 分享一份非常强势的Android面试题
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 判断客户端类型,Android,iOS,PC
  • 浅谈web中前端模板引擎的使用
  • 如何实现 font-size 的响应式
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 算法-插入排序
  • 延迟脚本的方式
  • 找一份好的前端工作,起点很重要
  • 06-01 点餐小程序前台界面搭建
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • ​什么是bug?bug的源头在哪里?
  • ​水经微图Web1.5.0版即将上线
  • #QT项目实战(天气预报)
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (poj1.2.1)1970(筛选法模拟)
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (初研) Sentence-embedding fine-tune notebook
  • (六)激光线扫描-三维重建
  • (六)什么是Vite——热更新时vite、webpack做了什么
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (三)elasticsearch 源码之启动流程分析
  • (十五)使用Nexus创建Maven私服