这里写自定义目录标题
kettle的安装配置
大家好!相信kettle对于玩数据的同学来说可谓是非常熟悉了,但是对于小白来说有时候确实不是太友好就是,这里的安装配置我就不自己编写说明了,因为珠玉在前,我就不现丑了,直接给大家推荐这位大神的文章,超级详细:
链接: Kettle构建Hadoop ETL实践(三):Kettle对Hadoop的支持.
我踩过的坑
我主要给大家介绍的是我好了大量时间和精力才解决的小问题,希望大家能避免和我一样的损失:
在咱们按照前边的指引安装配置好我们的kettle、mysql、hadoop等等一系列模块后,其中在kettle传输mysql数据到hive的时候,很可能会出现以下莫名其妙的报错。
1、 所有配置都OK,集群测试也通过了;
居中的图片:
2、点及文件上传就是报错
.3、主要错误有“Error writing line”
4、“Error writing field content to file”
5、“Caused by: org.pentaho.di.core.exception.KettleStepException: ”
6、“Caused by: java.nio.channels.UnresolvedAddressException:”
7、“Caused by: java.io.IOException: DataStreamer Exception: ”
解决方法及说明
1、一开始以为是权限问题导致的hdfs文件上传中断引起的,对此使用了下列一系列的命令:
su hdfs
hdfs dfs -ls /
hdfs dfs -cat [文件路径]
hdfs dfs -getfacl [文件路径]
hdfs dfs -chmod 777 [文件路径]
在确认确实是文件权限导致上传失败的时候可以试试
2、但是之所以导致我们上述问题出现的主要原因是在于hadoop主机节点的映射问题上,由于上云了,很多时候我们的服务器都会将IP封装成域名,而这时候若kettle的服务器和hadoop服务器没有在同一个云环境下,就会出现上述问题:
a、主要错误有“Error writing line”
b、“Error writing field content to file”
c、“Caused by: org.pentaho.di.core.exception.KettleStepException: ”
d、“Caused by: java.nio.channels.UnresolvedAddressException:”
e、“Caused by: java.io.IOException: DataStreamer Exception: ”
而且要注意的是:不要光配置NameNode的域名映射,DataNodes的域名映射也必须要配置
最后希望这个能帮助到大家减少解决问题的时间。
[1]怎么配置window下的hosts: https://blog.csdn.net/weixin_58942821/article/details/120669937
[2]怎么安装配置kettle: https://wxy0327.blog.csdn.net/article/details/108341342?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-108341342-blog-122957903.pc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2-108341342-blog-122957903.pc_relevant_multi_platform_whitelistv3&utm_relevant_index=5