场景
在aws emr时,通过hue并使用oozie的workflow调度作业时,一般会习惯将jar包,脚本等文件存放在hdfs上进行调用,
但是为了适应存算分离架构,建议尽量将数据存储在s3上,同时也可以避免因集群异常导致的数据丢失。
问题
在hue中点击s3图标时,会出现500的页面返回,并立马跳转到其他页面,导致无法查看s3上所存储的文件,不方便进行使用。
注意:这个问题一般会在对emr的角色限制了桶访问权限的情况下出现,如果emr角色本身就有对所有桶的访问权限,则不会出现这个问题
排查过程
查询hue运行日志,发现如下报错:
File "/usr/lib/hue/build/env/lib/python2.7/site-packages/boto-2.46.1-py2.7.egg/boto/__init__.py", line 141, in connect_s3
return S3Connection(aws_access_key_id, aws_secret_access_key, **kwargs)
File "/usr/lib/hue/build/env/lib/python2.7/site-packages/boto-2.46.1-py2.7.egg/boto/s3/connection.py", line 205, in __init__
"When using SigV4, you must specify a 'host' parameter."
很明显时缺少host配置,那么就给它配置上
解决方法
找到hue的ini文件,在hue.ini文件中找到[aws],然后往下找到host选项,将注释取消并配置上:
host=s3.us-east-1.amazonaws.com
注意:us-east-1是s3所在桶的region