Kettle 添加对应hadoop版本的支持
在hdp的官网上有一个ETL工具叫做Talend Open Studio,然后我就下了,并且在群里询问了一下,突然间冒出来一群ETL高手,经高人指点认识了一款叫做Kettle的软件,经过这两天的试用,从直观感受上,Kettle更容易使用和上手,资料更多,界面更友好。。。 优点很多,这里不一一列举了,关键是它对hadoop的支持我觉得是很全面的。
但是这里面有一个问题出现了,它不支持我现在用的版本,我用的是Hortonworks的HDP1.3,好吧,经过不懈的努力,终于被我搜索到了,哈哈,原来它可以支持的,并且官方已经提供了相应的包提供使用,只是不太好找罢了!下面把更新的过程和大家分享一下。
先提供文中所需内容的下载地址:
1.插件升级包
2.hdp1.3的支持包
https://pentaho.app.box.com/s/0wqy2qty3szv7j3qt2za
我使用的是4.4版本的kettle,大数据插件升级到了1.3.3.1了,所以要更新一下
1.删除plugins下的pentaho-big-data-plugin
2.删除libext/JDBC/pentaho-hadoop-hive-jdbc-shim-1.3.0.jar
3.把pentaho-big-data-shimtastic-1.3.3.1.zip解压到plugins目录下,可以删掉pentaho-big-data-plugin\hadoop-configurations 中不要的版本
4. 复制pentaho-hadoop-hive-jdbc-shim-1.3.3.jar 到libext/JDBC下
5.解压pentaho-instaview-templates-shimtastic-1.3.3.zip 到这个目录下,实际上没有这个目录,自己创建一下吧
plugins/spoon/agile-bi/platform/pentaho-solutions/system/instaview/templates/Big Data
更新完插件之后,我们要添加hdp1.3的支持,使用CDH4的童鞋比较幸福,不需要下载这个包,因为插件默认就带有cdh42的版本,支持最新的4.2-4.3
1.解压pentaho-hadoop-shims-hdp13-package-1.3.4.zip放到 plugins\pentaho-big-data-plugin\hadoop-configurations下面
2.编辑plugins/pentaho-big-data-plugin/plugin.properties文件,设置active.hadoop.configuration为该目录的名称
初始值是active.hadoop.configuration=hadoop-20,我的目录名称为hdp13,所以修改为active.hadoop.configuratio=hdp13
经过测试,目前Hadoop Copy Files和Oozie Job Executor能正常使用,Hadoop Job Executor不能使用,并且只支持旧的mapred的api,不支持最新的mapreduce的api,它自带的demo也运行不起来,报错了。
详细报错如下:
Error executing class org.pentaho.hadoop.sample.wordcount.WordCount. java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.pentaho.di.job.entries.hadoopjobexecutor.JobEntryHadoopJobExecutor$1.run(JobEntryHadoopJobExecutor.java:377) at java.lang.Thread.run(Thread.java:722) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.pentaho.di.job.entries.hadoopjobexecutor.JobEntryHadoopJobExecutor.executeMainMethod(JobEntryHadoopJobExecutor.java:660) at org.pentaho.di.job.entries.hadoopjobexecutor.JobEntryHadoopJobExecutor$1.run(JobEntryHadoopJobExecutor.java:360) ... 1 more Caused by: java.lang.RuntimeException: Error in configuring object at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:93) at org.apache.hadoop.util.ReflectionUtils.setConf(ReflectionUtils.java:64) at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:117) at org.apache.hadoop.mapred.JobConf.getInputFormat(JobConf.java:596) at org.apache.hadoop.mapred.JobClient.writeOldSplits(JobClient.java:1081) at org.apache.hadoop.mapred.JobClient.writeSplits(JobClient.java:1073) at org.apache.hadoop.mapred.JobClient.access$700(JobClient.java:179) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:983) at org.apache.hadoop.mapred.JobClient$2.run(JobClient.java:936) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1232) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:936) at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:910) at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1353) at org.pentaho.hadoop.sample.wordcount.WordCount.main(WordCount.java:79) ... 7 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.hadoop.util.ReflectionUtils.setJobConf(ReflectionUtils.java:88) ... 22 more Caused by: java.lang.IllegalArgumentException: Compression codec com.hadoop.compression.lzo.LzoCodec not found. at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:116) at org.apache.hadoop.io.compress.CompressionCodecFactory.<init>(CompressionCodecFactory.java:156) at org.apache.hadoop.mapred.TextInputFormat.configure(TextInputFormat.java:38) ... 27 more Caused by: java.lang.ClassNotFoundException: com.hadoop.compression.lzo.LzoCodec at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at org.apache.hadoop.conf.Configuration.getClassByName(Configuration.java:810) at org.apache.hadoop.io.compress.CompressionCodecFactory.getCodecClasses(CompressionCodecFactory.java:109) ... 29 more
这个问题可能是运行旧的mapred的api导致的,kettle自身的大数据插件上本身就支持hadoop-0.20版本以及CHD4(也是基于0.20版本的),可能是为了兼容的问题,运行hdp的程序的时候也是使用的旧的api,然后就引发了这个错误,这个错误也是报得莫名其妙,源码里面里面都没有使用压缩,我的集群本身也是配置了lzo的,例子运行的时候都能看到加载lzo的类库成功的提示信息。。。 我在hadoop里面运行新版的wordcount例子也是没问题,但是在kettle上就不行,看来只能走改源码的方法了,正好oozie的插件也有不尽如人意的地方,顺便把oozie的插件也修改一下,加上重新启动流程的功能。
不过比较安慰的是Hadoop Copy Files和Oozie Job Executor都可以用,MapReduce我可以配置到oozie里面执行,不要它那个破玩意儿了,太让人闹心了。
如果有用CDH4的童鞋,帮忙试一下你们的能不能用,如果有知道怎么解决这个问题的更好,感激涕零!
最后发一下原始的地址,E文好的童鞋可以自己去看看,找到适合自己的版本!
http://wiki.pentaho.com/display/BAD/4.4+Configuring+Pentaho+for+your+Hadoop+Distro+and+Version
Kettle 添加对应hadoop版本的支持的更多相关文章
- HBase各版本对Hadoop版本的支持情况
转载自:http://blog.csdn.net/sunny05296/article/details/54089194 安装HBase时,要考虑选择正确的Hadoop版本,否则可能出现不兼容的情况. ...
- hadoop版本与支持的hbase版本对照…
hadoop版本与支持的hbase版本对照表 分类: hbase2013-05-20 17:19 701人阅读 评论(2) 收藏 举报 HbaseHadoop As of Hive 0.9.0 the ...
- Hadoop版本变迁
内容来自<Hadoop技术内幕:深入解析YARN架构设计与实现原理>第2章:http://book.51cto.com/art/201312/422022.htm Hadoop版本变迁 当 ...
- hadoop版本比较 [转]
由于Hadoop版本混乱多变,因此,Hadoop的版本选择问题一直令很多初级用户苦恼.本文总结了Apache Hadoop和Cloudera Hadoop的版本衍化过程,并给出了选择Hadoop版本的 ...
- [转] 如何选择正确的Hadoop版本
Gartner:如何选择正确的Hadoop版本 这份报告的全名是<How to Choose the Right Apache Hadoop Distribution>.主要介绍了企业如何 ...
- Pig安装及简单使用(pig版本0.13.0,Hadoop版本2.5.0)
原文地址:http://www.linuxidc.com/Linux/2014-03/99055.htm 我们用MapReduce进行数据分析.当业务比较复杂的时候,使用MapReduce将会是一个很 ...
- 【转】Windows下使用VS2008编译OpenCV 2.1 添加Intel TBB和Python支持
Windows下使用VS2008编译OpenCV2.1 添加Intel TBB和Python支持 步骤: 1.仔细阅读OpenCV官网上的InstallGuide:http://opencv.will ...
- 内核添加对yaffs2文件系统的支持
移植方法: 第一步,我们需要YAFFS2的源码,如果大家有兴趣想了解YAFFS2文件系统的驱动原理的话可以直接去访问他们的官网,地址是www.yaffs2.net,上面说的很详细的,也有源码下载地址, ...
- Hadoop版本选择
刚开始学习Hadoop时就曾经一直抱怨Hadoop的安装部署为什么这么麻烦,对于一个新手需要捯饬一天才能把分布式环境安装配置好.而对于一个自学Hadoop而周围又没人交流的菜鸟来说,我对Hadoop的 ...
随机推荐
- python标准库介绍——33 thread 模块详解
?==thread 模块== (可选) ``thread`` 模块提为线程提供了一个低级 (low_level) 的接口, 如 [Example 3-6 #eg-3-6] 所示. 只有你在编译解释器时 ...
- 如何在ppt或word中添加高亮代码?
如何在ppt或word中添加高亮代码? 问题: 如何ppt中添加带有语法高亮的程序代码,就如同下面的形式(在ppt嵌入高亮代码,且可以编辑,带有行号) 详细的要求如下: 1.代码带有语法高亮. 2.结 ...
- webstorm 设置js或者html文件自动缩进为4个空格不生效
设置 tab 和自动缩进为4个空格不生效,解决办法如下 设置代码缩进 1. 依次打开files —- settings —- Editor —- Code Style —- JavaScript 2. ...
- 6个P2P流媒体开源项目介绍
P2P流媒体开源项目介绍 1. PeerCast 2002年成立,最早的开源P2P流媒体项目.PeerCast把节点按树结构组织起来, 每个频道都是一个树, 直播源是根节点,父节点只给子节点提供数据 ...
- ARC指南 strong和weak指针
一.简介 ARC是自iOS 5之后增加的新特性,完全消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain.release.autorelease语句.你不再需要担心内存管理,因为编 ...
- Go基础--终端操作和文件操作
终端操作 操作终端相关的文件句柄常量os.Stdin:标准输入os.Stdout:标准输出os.Stderr:标准错误输出 关于终端操作的代码例子: package main import " ...
- 坊间流传着的关于谷歌大牛Jeff Dean的传说
Jeff Dean,Google的软件架构天才.Google大型并发编程框架Map/Reduce作者. 在Google,公司最顶尖的编程高手Jeff Dean曾发明过一种先进的方法,该方法可以让一个程 ...
- Atitti 住房部建设指南
Atitti 住房部建设指南 1. 住房部建设的重要意义2 2. 房屋选址::首要核心要素,环境环境环境!!!2 2.1. 价格要素与地段..2 2.2. 与工作地距离,一般是半小时到一个半小时为好3 ...
- SQL存储过程教程
一直以来,对SQL SERVER的存储过程和触发器都基本没有用到,只是偶尔从网上找几个简单的函数PASTE到我的SQL中用.自己写总是感觉缺点什么,前几天单位的培训讲了一天的SQL SERVER, ...
- 【Unity】2.6 游戏视图(Game)
分类:Unity.C#.VS2015 创建日期:2016-03-29 一.简介 游戏视图 (Game View) 从游戏的相机 ((Camera(s)) 中呈现,代表所发布游戏的最终版.你将需要一台或 ...