ETL-kettle踩坑:从Cassandra到HDFS

kettle是一个开源的ETL工具,基于java,在windows和linux上都可以解压后直接使用。最近在用kettle从Cassandra向hdfd抽取数据的时候,遇到不少问题,特此记录一下。

版本信息:

java:  1.8

kettle:  kettle-8.2.0.0-342

hadoop: 2.7.3

 

配置kettle

  • 进入kettle以后,选择主对象树 -> Hadoop cluster -> New cluster -> HDFS ->填写hostname(IP或者配的host都可以)-> Zookeeper -> 填写hostname(IP或者配的host都可以)

Username和Password我没有填。其他不填应该也可。

  • 点击测试,如果是首次配置会蹦出一个框如下,用户根据自己的版本选择。测试选的CDH5.1.4。如果需要重新选择可以点击kettle最上面的工具->Hadoop Distribution 重新进行选择。

ETL-kettle踩坑:从Cassandra到HDFS

  • 如果配置成功会出现如下所示,印象中好像红框前面是绿勾就可以了。

ETL-kettle踩坑:从Cassandra到HDFS

  • 上面的测试通过,需要把hadoop集群上的一系列xml配置文件放到 D:\Soooftware\kettle-8.2.0.0-342\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh514路径下一份。hdfs-site.xml 是必须的。

ETL-kettle踩坑:从Cassandra到HDFS

  • 上述完成,重启一下kettle,基本配置就完成了。有问题请百度。

 

连接Cassandra

  • 点击kettle右上方文件 -> 新建 -> 转换
  • 左侧栏选择核心对象-> Big Data -> Cassandra input ->拖拽到右侧画图区 

ETL-kettle踩坑:从Cassandra到HDFS

  • 点击上面图标,蹦出框,按照下面提示填写你的cassandra连接信息。成功的话 Show schema会出来表的相关信息,预览也能出来表数据。

ETL-kettle踩坑:从Cassandra到HDFS

 

连接HDFS

  • 左侧栏选择核心对象-> Big Data -> Hadoop file output ->拖拽到右侧画图区 
  • 鼠标停在cassandra input图标上,会弹出小框,选择如下所示,将出现的线连到hadoop file output图标上

ETL-kettle踩坑:从Cassandra到HDFS        ETL-kettle踩坑:从Cassandra到HDFS

  • 点击hadoop file out,进行设置,如下图所示

ETL-kettle踩坑:从Cassandra到HDFS

ETL-kettle踩坑:从Cassandra到HDFS

ETL-kettle踩坑:从Cassandra到HDFS

一些其他的内容都可以尝试设置。

测试转换任务

  • 保存文件,点击三角符号进行测试。

ETL-kettle踩坑:从Cassandra到HDFS

没有什么问题的话,如下所示就是成功了。可以去hdfs上查看导出来的数据。

ETL-kettle踩坑:从Cassandra到HDFS