Hadoop默认端口表及用途
端口 | 用途 |
9000 | fs.defaultFS,如:hdfs://172.25.40.171:9000 |
9001 | dfs.namenode.rpc-address,DataNode会连接这个端口 |
50070 | dfs.namenode.http-address |
50470 | dfs.namenode.https-address |
50100 | dfs.namenode.backup.address |
50105 | dfs.namenode.backup.http-address |
50090 | dfs.namenode.secondary.http-address,如:172.25.39.166:50090 |
50091 | dfs.namenode.secondary.https-address,如:172.25.39.166:50091 |
50020 | dfs.datanode.ipc.address |
50075 | dfs.datanode.http.address |
50475 | dfs.datanode.https.address |
50010 | dfs.datanode.address,DataNode的数据传输端口 |
8480 | dfs.journalnode.rpc-address |
8481 | dfs.journalnode.https-address |
8032 | yarn.resourcemanager.address |
8088 | yarn.resourcemanager.webapp.address,YARN的http端口 |
8090 | yarn.resourcemanager.webapp.https.address |
8030 | yarn.resourcemanager.scheduler.address |
8031 | yarn.resourcemanager.resource-tracker.address |
8033 | yarn.resourcemanager.admin.address |
8042 | yarn.nodemanager.webapp.address |
8040 | yarn.nodemanager.localizer.address |
8188 | yarn.timeline-service.webapp.address |
10020 | mapreduce.jobhistory.address |
19888 | mapreduce.jobhistory.webapp.address |
2888 | ZooKeeper,如果是Leader,用来监听Follower的连接 |
3888 | ZooKeeper,用于Leader选举 |
2181 | ZooKeeper,用来监听客户端的连接 |
60010 | hbase.master.info.port,HMaster的http端口 |
60000 | hbase.master.port,HMaster的RPC端口 |
60030 | hbase.regionserver.info.port,HRegionServer的http端口 |
60020 | hbase.regionserver.port,HRegionServer的RPC端口 |
8080 | hbase.rest.port,HBase REST server的端口 |
10000 | hive.server2.thrift.port |
9083 | hive.metastore.uris |
9 M+ I1 T; l# h4 r. }6 R: f; Z4 p
其中最常用的应该是50070和8088了,WEB界面中监控hdfs:0 _. `+ b2 Z# d6 g9 s
http://ip:50070/
WEB界面中监控任务执行状况:) [; `- m& Q, t
http://ip:8088
在搭建hadoop集群的时候 ,主要要注意的就是一下几个方面:
1.linux环境的配置,包括关闭防火墙、配置master到slaves的无密码ssh登录等
2.hadoop的安装,所有的机器上的安装路径要完全相同,JAVA_HOME变量要在hadoop_env.sh文件中重新设置,
还有{HADOOP_DIR}/etc/hadoop目录下面的一堆配置文件要配置好。
3.注意{HADOOP_DIR}/etc/hadoop 这个目录下面没有slaves文件的话,就要手动创建一个该文件。然后在里面写上作为datanode的节点的主机名eg:
cloud002
cloud003
cloud004
今天碰到了一个非常坑爹的问题,搞了好久,总算搞定了,问题是这样的:
我在mac本机搭建了一个hadoop 的伪集群,运行了一个job后,能通过yarn的8088端口看到job的执行情况。
但是在virtualbox虚拟机中构建了一个包含四台centos的hadoop完全分布式集群,也能成功的运行一个job,但就是在yarn的8088端口上 看不到job的执行情况,各种查资料想办法,就是百思不得其解,后来总算在StackOverflow上无意间看到一个人说道一句话,"job可能实在本地运行的,并没有在集群中运行",后来仔细检查了配置文件,终于被我发现了一个天大的疏忽,在mapred-site.xml文件中,配置mapredduce的runner的时候,本来应该配置成yarn的:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
而我不小心写成了:
<property>
<name>mapreduce.frame.name</name>
<value>yarn</value>
</property>
这个配置属性名写错了,所以hadoop在运行job的时候还是以local作文runner来运行job的,并不是以yarn来运行job的。所以之前mac本机的伪集群是可以在yarn的8088
端口上看到job的执行情况,但是在virtualbox中的完全分布式集群中,却不能通过yarn的8088端口看到job的执行情况。
不管是写配置文件还是 具体的项目代码的时候,都要万分小心仔细,不然 像这样不小心的疏忽可能造成巨大的坑,导致浪费大量的时间精力,而且像这种
由于自己写错导致的太垂直的问题,网上也很难找到答案,引以为戒,一定要用心!!