上面是一个简单的数据迁徙脚本,从数据库导出数据到EXCEL文件中。
Kettle处理HBase
本教程使用的软件版本信息如下: 1)Hadoop(1.2.1)
2)Pantaho Data Integration(5.2.0) 3)HBase(0.94.19)。
Pentaho Shim(社区版)目前支持的Hadoop版本:
参考:
http://wiki.pentaho.com/display/BAD/Configuring+Pentaho+for+your+Hadoop+Distro+and+Version
注:从上表中看出它不支持hadoop 1.2.x版本。
解决办法是使用HDP13的插件(基于hadoop-1.0.3/hbase-0.94.6)替代,步骤如下:
1)从https://pentaho.box.com/50-hdp12下载hdp13的shim插件。
2)解压到plugins/pentaho-big-data-plugin/hadoop-configurations目录下,目录名为hdp13。
3)进入plugins/pentaho-big-data-plugin目录,修改plugin.properties文件中的active.hadoop.configuration属性为,缺省值为hadoop-20,如下:
active.hadoop.configuration=hdp13
3)替换掉hdp13/lib目录下与Hbase和hadoop有关的Jar包,拷贝一份hbase-site.xml到hdp13目录下。
| hdp13/lib/pmr目录下替换后的Jar包:
| hdp13/lib/client目录下替换后的Jar包:
* 在HBase中创建一个weblogs表,步骤如下: 1)打开HBase shell,在命令行中输入: hbase shell 2)在Hbase中创建一个表,在hbase shell中输入: create 'weblogs', 'pageviews' * 上面命令会创建一个带有一个列族pageviews的weblogs的表。 3)执行quit退出HBase shell。 参考文档: http://help.pentaho.com/Documentation/5.2/0L0/0Y0/0F0/040/000/000/030 1. 从下面网址下载weblogs_hbase.txt.zip压缩文件作为文本文件数据源导入: http://wiki.pentaho.com/download/attachments/23530622/weblogs_hbase.txt.zip
2. 从Spoon(Kettle)中,创建一个新的转换,选择“文件—新建—转换”。 点击“核心对象—输入”标签,然后把“文本文件输入”拖到画板中。 3. 双击文本文件输入,弹出文本文件输入对话框,点击“浏览…”按钮选择weblog_hbase.txt文件,点击“添加”按钮。
选择“内容”标签,清空分隔符点击“Insert TAB”按钮,选中“头部行数量”选择框,从格式的下拉菜单中选择Unix格式。
配置输入字段,从“字段”标签页中选择“获取字段”按钮,弹出可用的字段列表,询问采样的数量,输入100点击“OK”按钮。修改字段key的类型为String,长度为20。
点击“OK”按钮关闭对话框。
? 在“核心对象—Big Data”下,把HBase Output图标拖入到面板中。并且
把文本文件输入与HBase Outpu连接起来(按住shift+拖曳)。
? 双击Hbase Output,在弹出对话框中输入Zookeeper的主机名和端口号。
1)Zookeeper host(s)字段中输入Zookeeper主机名,多个主机名使用逗号分隔。对于本地集群使用localhost。 2)在Zookeeper port字段中,输入你的Zookeeper端口号,缺省值2181。
? 创建一个Hbase映射,在Create/Edit mappings标签页中告诉Pentaho在
HBase中如何存储数据。
1)点击Get table names按钮,在HBase table name的选择框中选择weblogs
2)Mapping name,输入pageviews 3)点击“Get imcoming fields”按钮
4)从Alias的key这行修改Key为Y,清除掉Column family和Column name字段,并且设置Type字段为String,点击Save mapping。
? 配置HBase out使用上面刚刚创建的映射。
1)进入到Configuration Connection标签页,点击Get table names。
2)点击Get table names,在Hbase table name的选择框中选择weblogs。 3)点击Get mappings for speficed table获取指定的表。
4)点击Mapping name,选择pageviews,点击“确认”按钮关闭窗口。
点击“文件—另存为”菜单保存转换,在选择目录中输入load_hbase.ktr作为文件名。
? 点击转换工具栏中的运行按钮运行转换,或者选择“动作—运行”菜单
打开一个执行转换的窗口,点击“启动”按钮。
在Spoon接口的下面打开一个执行结果窗口,显示运行时转换的进度。在几十秒之后完成转换。
如果在转换过程中出现任何错误,将会红色高亮显示,在日志标签页查看错误信息。
? 通过查询HBase验证数据
1)从命令行中,输入下面命令打开HBase shell:hbase shell 2)通过这个命令查询HBase:scan 'weblogs', {LIMIT => 10} 应该返回数据的行数。