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 重新进行选择。
- 如果配置成功会出现如下所示,印象中好像红框前面是绿勾就可以了。
- 上面的测试通过,需要把hadoop集群上的一系列xml配置文件放到 D:\Soooftware\kettle-8.2.0.0-342\data-integration\plugins\pentaho-big-data-plugin\hadoop-configurations\cdh514路径下一份。hdfs-site.xml 是必须的。
- 上述完成,重启一下kettle,基本配置就完成了。有问题请百度。
连接Cassandra
- 点击kettle右上方文件 -> 新建 -> 转换
- 左侧栏选择核心对象-> Big Data -> Cassandra input ->拖拽到右侧画图区
- 点击上面图标,蹦出框,按照下面提示填写你的cassandra连接信息。成功的话 Show schema会出来表的相关信息,预览也能出来表数据。
连接HDFS
- 左侧栏选择核心对象-> Big Data -> Hadoop file output ->拖拽到右侧画图区
- 鼠标停在cassandra input图标上,会弹出小框,选择如下所示,将出现的线连到hadoop file output图标上
- 点击hadoop file out,进行设置,如下图所示
一些其他的内容都可以尝试设置。
测试转换任务
- 保存文件,点击三角符号进行测试。
没有什么问题的话,如下所示就是成功了。可以去hdfs上查看导出来的数据。