[Hadoop] 解决hadoop 0.21.0 web下载文件失败的BUG_Hadoop,ERP及大数据讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Hadoop,ERP及大数据讨论区 »
总帖数
6
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3729 | 回复: 5   主题: [Hadoop] 解决hadoop 0.21.0 web下载文件失败的BUG        上一篇   下一篇 
0o卜先森o0
注册用户
等级:新兵
经验:66
发帖:1
精华:0
注册:2015-10-11
状态:离线
发送短消息息给0o卜先森o0 加好友    发送短消息息给0o卜先森o0 发消息
发表于: IP:您无权察看 2015-12-2 15:26:13 | [全部帖] [楼主帖] 楼主

坛子里面有一位朋友提出过这个后面我也遇到了相同的,找了很多方法,都无法解决,最后和同事分析源代码才找到了的原因。

先说一下解决方法吧。

在hadoop0.21.0的源文件路径下找到这个文件:

/org/apache/hadoop/hdfs/server/namenode/StreamFile.java

找到方法getDFSClient(),把其中的 name.conf 改成 datanode.conf,效果如下:

/** getting a client for connecting to dfs */  
protected DFSClient getDFSClient(HttpServletRequest request)      
throws IOException, InterruptedException {    
final Configuration conf =      
(Configuration) getServletContext().getAttribute("datanode.conf");        
UserGroupInformation ugi = getUGI(request, conf);    
DFSClient client = ugi.doAs(new PrivilegedExceptionAction() {      
@Override      
public DFSClient run() throws IOException {        
return new DFSClient(nameNodeAddr, conf);      
}    
});        
return client;  }

然后把这个类重新编译并更新到 $HADOOP_HOME/hadoop-hdfs-0.21.0.jar文件中(注意更新前备份原文件)

然后重新启动集群即可。

原因:

分析异常栈可以发现,是由于StreamFile在取name.conf的时候,取到的是一个空对象。而实际上,我们请求的是DN,DN在启动的时候其httpserver(变量

infoserver)根本没有设置name.conf属性而设置了datanode.conf属性!查看源码会发现,其实NN和DN加载的conf其实是一样的,我们只需要把name.conf改成

datanode.conf即可!



该贴被蜀山战纪编辑于2015-12-4 9:51:49



赞(0)    操作        顶端 
寂寞空庭春欲晚
注册用户
等级:下士
经验:175
发帖:0
精华:0
注册:2016-2-5
状态:离线
发送短消息息给寂寞空庭春欲晚 加好友    发送短消息息给寂寞空庭春欲晚 发消息
发表于: IP:您无权察看 2016-3-23 9:46:40 | [全部帖] [楼主帖] 2  楼

不错不错



赞(0)    操作        顶端 
shift_
注册用户
等级:上士
经验:298
发帖:13
精华:0
注册:2016-1-29
状态:离线
发送短消息息给shift_ 加好友    发送短消息息给shift_ 发消息
发表于: IP:您无权察看 2016-3-23 15:06:55 | [全部帖] [楼主帖] 3  楼

其实我也不是很懂这块。



赞(0)    操作        顶端 
九州大陆
注册用户
等级:上等兵
经验:121
发帖:0
精华:0
注册:2016-3-22
状态:离线
发送短消息息给九州大陆 加好友    发送短消息息给九州大陆 发消息
发表于: IP:您无权察看 2016-3-24 18:41:02 | [全部帖] [楼主帖] 4  楼

不错不错



赞(0)    操作        顶端 
海绵宝宝
注册用户
等级:下士
经验:154
发帖:1
精华:0
注册:2016-3-22
状态:离线
发送短消息息给海绵宝宝 加好友    发送短消息息给海绵宝宝 发消息
发表于: IP:您无权察看 2016-3-29 18:52:35 | [全部帖] [楼主帖] 5  楼

0000



赞(0)    操作        顶端 
wuli涛涛
注册用户
等级:下士
经验:192
发帖:1
精华:0
注册:2016-2-17
状态:离线
发送短消息息给wuli涛涛 加好友    发送短消息息给wuli涛涛 发消息
发表于: IP:您无权察看 2016-3-30 15:47:54 | [全部帖] [楼主帖] 6  楼

好的



赞(0)    操作        顶端 
总帖数
6
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论