搭建Hadoop集群的过程中的坑

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的执行情况。

不管是写配置文件还是 具体的项目代码的时候,都要万分小心仔细,不然 像这样不小心的疏忽可能造成巨大的坑,导致浪费大量的时间精力,而且像这种

由于自己写错导致的太垂直的问题,网上也很难找到答案,引以为戒,一定要用心!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值