在所有的进程启动之后除了用jps命令看看后台进程是否启动之外,还想用web界面验证
在登录namenode的界面的时候发现这个问题
但是其他的都是对的,从这个报错上来看应该后台进程起作用了,但是感觉好像端口制定的不对,所以,我决定重新设置一下端口
在设置的时候要注意,最好把所有的相关进程都关掉再设置,或者设置完之后重启所有相关的进程的。
还有,修改完配置文件要把它们分发到其它机器上,不能光改一台机器。
因为9000这个端口是 fs.defaultFS的值,所以我把这个修改成50070或者50075这样的值发现namenode进程还启动不了了。非要修改成9000上下的值才行。
后来通过查hadoop的默认端口了解了一些默认端口。
才知道,这个fs.defaultFS的值并不是http-address的值,而是客户端用来向namenode拷文件发请求的时候所用的ipc端口。如果要访问namenode的web ui的话
用到的端口号是dfs.namenode.http-address这个参数的值,而如果这个参数没有设置的话默认是50070。
维持原来的配置,在浏览器利用50070端口就访问到了namenode的界面。
这里其实还要说道,其实所有的端口都是有默认的端口的,比如说
fs.defaultFS的默认端口是8020,而为啥教程上用的是9000呢,在《single node setup》里面确实设置的fs.defaultFS的值是9000。
但是我看很多别的文献里面都是8020。
比如hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比
所以以后我将core-site.xml里面的fs.defaultFS的值改为8020,而
hdfs-site.xml的dfs.namenode.secondary.http-address修改为50090。
另外默认端口还可以在哪里看到呢。
参考hadoop官方文档XXX-default.xml这些文档