作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 欢迎转载

  最近把之前写的Hadoop MapReduce程序又总结了下,发现很多逻辑基本都是大致相同的,于是想到能不能利用ETL工具来进行配置相关逻辑来实现MapReduce代码自动生成并执行,这样可以简化现有以及之后的一部分工作.于是选取了上手容易并对Hadoop支持的比较成熟的Pentaho Kettle来测试,把一些配置过程和遇到的坑记录下来.
  Kettle可以在官网下载到,但是官网会让你注册才能下载而且速度不稳定,所以推荐在这个链接进行下载,各个版本都有,我用的是PDI(Pentaho Data Integration)6.1,需要连接的集群是Hadoop2.6.0-CDH5.4.0.
  进入链接里的6.1文件夹直接下载pdi-ce-6.1.0.1-196.zip解压,进入data-integration根目录启动Spoon.bat,等待kettle启动成功.

一.准备工作
       
   在配置PDI连接Bigdata source之前,需要检查下需要连接的source版本和对应的Pentaho的组件是否兼容,如下图

  

  可以看到,之前下载的PDI(上表中属于PDI Spoon),基本上是支持连接CDH,MapR,EMR,HDP等主流数据源的.我连接的集群是CDH5.4,也在支持范围内.

二.配置Pentaho组件Shims

  Shims这里我的理解是Pentaho提供的一系列连接各个source的适配器,具体配置位置根据Pentaho的组件来决定,现在的PDI Spoon的配置位置在../data-integration/plugins/pentaho-big-data-plugin/hadoop-configurations 下,注意这个地方要配置好对应数据源的shims,如下图有好几种数据源,

  

  
  比如我当前连接的是CDH5.4.0,那么我先清空cdh55下的内容,随后下载对应的shims来解压拷贝到该目录下,具体shims下载位置在

  https://sourceforge.net/projects/pentaho/files/Big%20Data%20Shims

  选择相应的PDI版本进入,下载对应的CDH版本的shims,我需要下载的是 pentaho-hadoop-shims-cdh54-package-61.2016.04.01-196-dist.zip,打开该zip,双击install.bat进行shims解压,将解压后的cdh54目录下的内容全部拷贝到hadoop-configurations下的默认的cdh55文件下里面去(其实cdh55这个应该可以改名为cdh54,但是修改完这个文件夹名称的话,PDI找不到该配置了,应该可以在哪儿设置,暂时没找到,找到的同学可以告诉我).

  这个地方一定要下载好对应的shims,否则PDI中即使你配置好正确的CDH连接信息,那么随后在使用过程中也会报各种莫名其妙的错误.

三.编辑Cluster配置文件

  完成上一步内容后,进入cdh55目录下,将CDH5.4集群上的hive-site.xml,mapred-site.xml,hbase-site.xml,core-site.xml,hdfs-site.xml,yarn-site.xml等配置文件拷贝到当前目录覆盖.然后进行一些必要的修改.如下

  修改hive-site.xml,将hive的metastore修改为和集群保持一致

<property>
<name>hive.metastore.uris</name>
<value>修改为集群的thrift地址</value>
</property>

  修改mapred-site.xm,如没有则添加并和集群保持一致

<property>
<name>mapreduce.jobhistory.address</name>
<value>修改为集群的jobhistory地址</value>
</property>
<property>
<name>mapreduce.app-submission.cross-platform</name>
<value>true</value>
</property>

  修改yarn-site.xml对应属性值,如没有则添加并和集群保持一致

<property>
<name>yarn.application.classpath</name>
<value>$HADOOP_CLIENT_CONF_DIR,$HADOOP_CONF_DIR,$HADOOP_COMMON_HOME/*,$HADOOP_COMMON_HOME/lib/*,$HADOOP_HDFS_HOME/*,$HADOOP_HDFS_HOME/lib/*,$HADOOP_YARN_HOME/*,$HADOOP_YARN_HOME/lib/*</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>clouderamanager.cdh5.test</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>clouderamanager.cdh5.test:8032</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>clouderamanager.cdh5.test:8033</value>
</property>

修改config.properties添加如下属性,注意我这里CDH5.4测试用,没有开启Kerberos认证

authentication.superuser.provider=NO_AUTH

如果开启了Kerberos认证,则需要修改更多参数.

 四.新建Cluster连接并测试

  完成上述配置后,启动Spoon.bat, 进入PDI开发界面.菜单栏中选择Tools->Hadoop Distribution,然后选择Cloudera CDH5.4并点击ok,然后重启PDI.  

  在左边的View视图下会看到Hadoop clusters然后右键新建Cluster,如下图

  

  配置好对应的集群连接信息(可以参考shims下集群的*.xml配置文件),点击"Test"进行测试,如下

  

  确保所有的结果都变为绿色则表示配置成功,如果有红色肯定是连接信息和集群不一致.

Pentaho Kettle 6.1连接CDH5.4.0集群的更多相关文章

  1. apache-kylin-2.5.2-bin-cdh57与cdh-5.13.0集群整合运用

    1.下载kylin最新版apache-kylin-2.5.2-bin-cdh57: 2.解压配置环境变量: export BASE_PATH="/opt/cloudera/parcels/C ...

  2. Hadoop ha CDH5.15.1-hadoop集群启动后,两个namenode都是standby模式

    Hadoop ha CDH5.15.1-hadoop集群启动后,两个namenode都是standby模式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一说起周五,想必大家都特别 ...

  3. Redis 3.0.0 集群部署

    简述: 1.0.1:redis cluster的现状 目前redis支持的cluster特性 1):节点自动发现 2):slave->master 选举,集群容错 3):Hot reshardi ...

  4. Spring集成jedis支持Redis3.0集群

    接着上一节,我们通过spring FactoryBean实现redis 3.0集群JedisCluster与spring集成.  http://www.linuxidc.com/Linux/2016- ...

  5. elasticsearch5.0集群+kibana5.0+head插件插件的安装

    elasticsearch5.0集群+kibana5.0+head插件插件的安装 es集群的规划: 两台16核64G内存的服务器: yunva_etl_es1  ip:1.1.1.1 u04es01. ...

  6. 在Hadoop-2.2.0集群上安装 Hive-0.13.1 with MySQL

    fesh个人实践,欢迎经验交流!本文Blog地址:http://www.cnblogs.com/fesh/p/3872872.html 软件环境 操作系统:Ubuntu14.04 JDK版本:jdk1 ...

  7. redis3.0 集群实战1 -- 安装和配置

    本文主要是在centos7上安装和配置redis集群实战 参考: http://hot66hot.iteye.com/blog/2050676 集群教程: http://redisdoc.com/to ...

  8. Redis 3.0 集群搭建

    Redis 3.0 集群搭建 开启两个虚拟机 分别在两个虚拟机上开启3个Redis实例 3主3从两个虚拟机里的实例互为主备 下面分别在两个虚拟机上安装,网络设置参照codis集群的前两个主机 分别关闭 ...

  9. redis3.0集群搭建

    生产环境中准备使用redis3.0集群了,花了一天时间研究了一下,下面记录一下集群搭建的过程. 服务器规划: 192.168.116.129    7000,7003 192.168.116.130 ...

随机推荐

  1. phoenix 开发API系列(一)创建简单的http api

    安装 phoenix framework 安装 phoenix 很简单: mix archive.install https://github.com/phoenixframework/archive ...

  2. 微软connect教程系列—EntityFramework7(三)

      随着Asp.NET5的开源,以及跨平台,ORM框架EF7也与时俱进,支持asp.net core,也支持关系型数据库和非关系型数据库,以及在linux和mac上跨平台使用. 下面演示的即通过使用E ...

  3. 《BI深入浅出》笔记

    今年的项目涉及到BI的知识点,读了<商业智能深入浅出>,这本书是基于IBM的产品做的,基础知识部分讲的非常成体系.记下来做个备忘: 1. BI简介 1.1 实施方案 1)项目规划: 2)系 ...

  4. Java多线程2:Thread中的实例方法

    Thread类中的方法调用方式: 学习Thread类中的方法是学习多线程的第一步.在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别: 1 ...

  5. 设计模式之美:Iterator(迭代器)

    索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Iterator 模式结构样式代码. 实现方式(二):实现 IEnumerable 中序遍历二叉树. 实现方式(三):实现 Bi ...

  6. Javascript事件模型系列(三)jQuery中的事件监听方式及异同点

    作为全球最知名的js框架之一,jQuery的火热程度堪称无与伦比,简单易学的API再加丰富的插件,几乎是每个前端程序员的必修课.从读<锋利的jQuery>开始,到现在使用jQuery有一年 ...

  7. JavaScript获取两个数之间的任意随机数

    通过JavaScript的Math.random()方法可以获取0到1之间的任意随机数,那如何获取任意给定的两个数之间的随机数呢?如获取2和5之间的随机数,5和10之间的随机数等. 由于Math.ra ...

  8. 解决方法of未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序

    在开发的一个报表转换功能涉及到Excel97-2003(.xls)文件的导入.使用oledb来读取excel数据.代码为: public static DataSet LoadDataFromExce ...

  9. Redis学习笔记~分布式的Pub/Sub模式

    回到目录 redis的客户端有很多,这次用它的pub/sub发布与订阅我选择了StackExchange.Redis,发布与订阅大家应该很清楚了,首先一个订阅者,订阅一个服务,服务执行一些处理程序(可 ...

  10. 大叔也说Xamarin~Android篇~原生登陆与WebView的网站如何共享Session

    回到目录 事情是这样的,我们最近开了一个APP,主要使用xamarin做了一个登陆,它与服务器API进行数据通讯,当用户名密码正确去,跳转到新的activity,并在webview控件中打开服务端的H ...