hadoop集群默认配置和常用配置

获取默认配置

配置hadoop,主要是配置core-site.xml,hdfs-site.xml,mapred-site.xml三个配置文件,默认下来,这些配置文件都是空的,所以很难知道这些配置文件有哪些配置可以生效,上网找的配置可能因为各个hadoop版本不同,导致无法生效。浏览更多的配置,有两个方法:
1.选择相应版本的hadoop,下载解压后,搜索*.xml,找到core-default.xml,hdfs-default.xml,mapred-default.xml,这些就是默认配置,可以参考这些配置的说明和key,配置hadoop集群。
2.浏览apache官网,三个配置文件链接如下:
   http://hadoop.apache.org/common/docs/r0.20.2/core-default.html
   http://hadoop.apache.org/common/docs/r0.20.2/hdfs-default.html
   http://hadoop.apache.org/common/docs/r0.20.0/mapred-default.html
   这里是浏览hadoop当前版本号的默认配置文件,其他版本号,要另外去官网找。
其中第一个方法找到默认的配置是最好的,因为每个属性都有说明,可以直接使用。
另外,core-site.xml是全局配置,hdfs-site.xml和mapred-site.xml分别是hdfs和mapred的局部配置。

常用的端口配置

HDFS端口

参数 描述 默认 配置文件 例子值
fs.default.name namenode RPC交互端口 8020 core-site.xml hdfs://master:8020/
dfs.http.address  NameNode web管理端口 50070  hdfs-site.xml  0.0.0.0:50070
dfs.datanode.address datanode 控制端口 50010  hdfs-site.xml  0.0.0.0:50010
dfs.datanode.ipc.address datanode的RPC服务器地址和端口  50020 hdfs-site.xml 0.0.0.0:50020
dfs.datanode.http.address datanode的HTTP服务器和端口  50075 hdfs-site.xml  0.0.0.0:50075


                                         
                     
                   
                   
             

MR端口

参数 描述 默认  配置文件 例子值
mapred.job.tracker job tracker交互端口  8021 mapred-site.xml hdfs://master:8021/
mapred.job.tracker.http.address job tracker的web管理端口 50030 mapred-site.xml  0.0.0.0:50030
mapred.task.tracker.http.address task tracker的HTTP端口 50060 mapred-site.xml 0.0.0.0:50060


                                            
                    
         

其他端口

参数 描述  默认  配置文件 例子值
dfs.secondary.http.address  secondary NameNode web管理端口  50090 hdfs-site.xml 0.0.0.0:28680


                                        

集群目录配置

参数 描述  默认  配置文件 例子值
dfs.name.dir name node的元数据,以,号隔开,hdfs会把元数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉

{hadoop.tmp.dir}

/dfs/name

hdfs-site.xm /hadoop/hdfs/name
dfs.name.edits.dir  node node的事务文件存储的目录,以,号隔开,hdfs会把事务文件冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉  ${dfs.name.dir} hdfs-site.xm ${dfs.name.dir}
 fs.checkpoint.dir secondary NameNode的元数据以,号隔开,hdfs会把元数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉

${hadoop.tmp.dir}

/dfs/namesecondary

core-site.xml /hadoop/hdfs/namesecondary
 fs.checkpoint.edits.dir secondary NameNode的事务文件存储的目录,以,号隔开,hdfs会把事务文件冗余复制到这些目录 ${fs.checkpoint.dir} core-site.xml ${fs.checkpoint.dir}
hadoop.tmp.dir 临时目录,其他临时目录的父目录 /tmp/hadoop-${user.name} core-site.xml /hadoop/tmp/hadoop-${user.name}
dfs.data.dir data node的数据目录,以,号隔开,hdfs会把数据存在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉

${hadoop.tmp.dir}

/dfs/data

hdfs-site.xm

/hadoop/hdfs/data1/data,

/hadoop/hdfs/data2/data

mapred.local.dir MapReduce产生的中间数据存放目录,以,号隔开,hdfs会把数据存在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉

${hadoop.tmp.dir}

/mapred/local

mapred-site.xml

/hadoop/hdfs/data1/mapred/local,

/hadoop/hdfs/data2/mapred/local

mapred.system.dir MapReduce的控制文件

${hadoop.tmp.dir}

/mapred/system

mapred-site.xml /hadoop/hdfs/data1/system

 

其他配置

参数 描述  默认  配置文件 例子值
dfs.support.append  支持文件append,主要是支持hbase  false hdfs-site.xml true
dfs.replication  文件复制的副本数,如果创建时不指定这个参数,就使用这个默认值作为复制的副本数  3 hdfs-site.xml 2


端口

Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以及HTTP访问。而随着Hadoop周边组件的增多,完全记不住哪个端口对应哪个应用,特收集记录如此,以便查询。这里包含我们使用到的组件:HDFS, YARN, HBase, Hive, ZooKeeper:

组件节点默认端口配置用途说明
HDFSDataNode50010dfs.datanode.addressdatanode服务端口,用于数据传输
HDFSDataNode50075dfs.datanode.http.addresshttp服务的端口
HDFSDataNode50475dfs.datanode.https.addresshttps服务的端口
HDFSDataNode50020dfs.datanode.ipc.addressipc服务的端口
HDFSNameNode50070dfs.namenode.http-addresshttp服务的端口
HDFSNameNode50470dfs.namenode.https-addresshttps服务的端口
HDFSNameNode8020fs.defaultFS接收Client连接的RPC端口,用于获取文件系统metadata信息。
HDFSjournalnode8485dfs.journalnode.rpc-addressRPC服务
HDFSjournalnode8480dfs.journalnode.http-addressHTTP服务
HDFSZKFC8019dfs.ha.zkfc.portZooKeeper FailoverController,用于NN HA
YARNResourceManager8032yarn.resourcemanager.addressRM的applications manager(ASM)端口
YARNResourceManager8030yarn.resourcemanager.scheduler.addressscheduler组件的IPC端口
YARNResourceManager8031yarn.resourcemanager.resource-tracker.addressIPC
YARNResourceManager8033yarn.resourcemanager.admin.addressIPC
YARNResourceManager8088yarn.resourcemanager.webapp.addresshttp服务端口
YARNNodeManager8040yarn.nodemanager.localizer.addresslocalizer IPC
YARNNodeManager8042yarn.nodemanager.webapp.addresshttp服务端口
YARNNodeManager8041yarn.nodemanager.addressNM中container manager的端口
YARNJobHistory Server10020mapreduce.jobhistory.addressIPC
YARNJobHistory Server19888mapreduce.jobhistory.webapp.addresshttp服务端口
HBaseMaster60000hbase.master.portIPC
HBaseMaster60010hbase.master.info.porthttp服务端口
HBaseRegionServer60020hbase.regionserver.portIPC
HBaseRegionServer60030hbase.regionserver.info.porthttp服务端口
HBaseHQuorumPeer2181hbase.zookeeper.property.clientPortHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HBaseHQuorumPeer2888hbase.zookeeper.peerportHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HBaseHQuorumPeer3888hbase.zookeeper.leaderportHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HiveMetastore9083/etc/default/hive-metastore中export PORT=<port>来更新默认端口
HiveHiveServer10000/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口
ZooKeeperServer2181/etc/zookeeper/conf/zoo.cfg中clientPort=<port>对客户端提供服务的端口
ZooKeeperServer2888/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分follower用来连接到leader,只在leader上监听该端口。
ZooKeeperServer3888/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分用于leader选举的。只在electionAlg是1,2或3(默认)时需要。

所有端口协议均基于TCP。


URL

对于存在Web UI(HTTP服务)的所有hadoop daemon,有如下url:

/jmx?get=MXBeanName::AttributeName 查询指定bean指定属性的值,例如/jmx?get=Hadoop:service=NameNode,name=NameNodeInfo::ClusterId会返回ClusterId。 这个请求的处理类:org.apache.hadoop.jmx.JMXJsonServlet 

/logs :日志文件列表,用于下载和查看

/logLevel 允许你设定log4j的日志记录级别,类似于hadoop daemonlog

/stacks 所有线程的stack trace,对于debug很有帮助

/jmx 服务端的Metrics,以JSON格式输出。

/jmx?qry=Hadoop:*会返回所有hadoop相关指标。 


NameNode:http://:50070/

/dfshealth.jspHDFS信息页面,其中有链接可以查看文件系统

/dfsnodelist.jsp?whatNodes=(DEAD|LIVE)显示DEAD或LIVE状态的datanode

/fsck运行fsck命令,不推荐在集群繁忙时使用!

DataNode:http://:50075/

/blockScannerReport每个datanode都会指定间隔验证块信息


RPC

RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。

RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。

有多种 RPC模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本,使得 ONC RPC 协议成为 IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境(DCE)。


Hadoop IPC

IPC

  • 实现RPC的一种方法,具有快速、简单的特点。 它不像Sun公司提供的标准RPC包,基于Java序列化。
  • IPC无需创建网络stubs和skeletons。
  • IPC中的方法调用要求参数和返回值的数据类型必须是Java的基本类型,String和Writable接口的实现类,以及元素为以上类型的数组。接口方法应该只抛出IOException异常。

使用模型

  • 采用客户/服务器模型
  • Server:它把Java接口暴露给客户端。指定好监听端口和接受远程调用的对象实例后,通过RPC.getServer()可以得到Server实例。
  • Client:连接Server,调用它所暴露的方法。Client必须指定远程机器的地址,端口和Java接口类,通过RPC.getClient()可以得到Client实例。
  • Server不可以向Client发出调用,但在Hadoop中,有双向调用的需求。 比如在DFS,NameNode和DataNode需要互相了解状态。

hadoop能用到的系统端口 

hadoop系统部署时用到不少端口。有的是Web UI所使用的,有的是内部通信所使用的,有的是监控所使用的。实际系统中可能用于防火墙的端口设计。一些内部通信用的端口可能也需要外部能访问。如两个集群的数据对拷。

1.系统

8080,80 用于tomcat和apache的端口。

22 ssh的端口

2.Web UI

用于访问和监控Hadoop系统运行状态

Daemon 缺省端口 配置参数
HDFS Namenode 50070 dfs.http.address
Datanodes 50075 dfs.datanode.http.address
Secondarynamenode 50090 dfs.secondary.http.address
Backup/Checkpoint node* 50105 dfs.backup.http.address
MR Jobracker 50030 mapred.job.tracker.http.address
Tasktrackers 50060 mapred.task.tracker.http.address
HBase HMaster 60010 hbase.master.info.port
HRegionServer 60030 hbase.regionserver.info.port
* hadoop 0.21以后代替secondarynamenode .

3.内部端口

Daemon 缺省端口 配置参数 协议 用于
Namenode 9000 fs.default.name IPC: ClientProtocol Filesystem metadata operations.
Datanode 50010 dfs.datanode.address Custom Hadoop Xceiver: DataNodeand DFSClient DFS data transfer
Datanode 50020 dfs.datanode.ipc.address IPC:InterDatanodeProtocol,ClientDatanodeProtocol
ClientProtocol
Block metadata operations and recovery
Backupnode 50100 dfs.backup.address 同 namenode HDFS Metadata Operations
Jobtracker 9001 mapred.job.tracker IPC:JobSubmissionProtocol,InterTrackerProtocol Job submission, task tracker heartbeats.
Tasktracker 127.0.0.1:0* mapred.task.tracker.report.address IPC:TaskUmbilicalProtocol 和 child job 通信
* 绑定到未用本地端口

 4.相关产品端口

产品 服务 缺省端口 参数 范围 协议 说明
HBase  Master 60000 hbase.master.port External TCP IPC
Master 60010 hbase.master.info.port External TCP HTTP
RegionServer 60020 hbase.regionserver.port External TCP IPC
RegionServer 60030 hbase.regionserver.info.port External TCP HTTP
HQuorumPeer 2181 hbase.zookeeper.property.clientPort TCP HBase-managed ZK mode
HQuorumPeer 2888 hbase.zookeeper.peerport TCP HBase-managed ZK mode
HQuorumPeer 3888 hbase.zookeeper.leaderport TCP HBase-managed ZK mode
REST Service 8080 hbase.rest.port External TCP
ThriftServer 9090 Pass -p <port> on CLI External TCP
 Avro server 9090 Pass –port <port> on CLI External TCP
Hive Metastore 9083 External TCP
HiveServer 10000 External TCP
Sqoop Metastore 16000 sqoop.metastore.server.port External TCP
ZooKeeper  Server 2181 clientPort External TCP Client port
Server 2888 X in server.N=host:X:Y Internal TCP Peer
Server 3888 Y in server.N=host:X:Y Internal TCP Peer
Server 3181 X in server.N=host:X:Y Internal TCP Peer
Server 4181 Y in server.N=host:X:Y Internal TCP Peer
Hue  Server 8888 External TCP
Beeswax Server 8002 Internal
Beeswax Metastore 8003 Internal
Oozie Oozie Server 11000 OOZIE_HTTP_PORT in oozie-env.sh External TCP HTTP
Oozie Server 11001 OOZIE_ADMIN_PORT in oozie-env.sh localhost TCP Shutdown port

5.YARN(Hadoop 2.0)缺省端口

产品 服务 缺省端口 配置参数 协议
Hadoop YARN  ResourceManager 8032 yarn.resourcemanager.address TCP
ResourceManager 8030 yarn.resourcemanager.scheduler.address TCP
ResourceManager 8031 yarn.resourcemanager.resource-tracker.address TCP
ResourceManager 8033 yarn.resourcemanager.admin.address TCP
ResourceManager 8088 yarn.resourcemanager.webapp.address TCP
NodeManager 8040 yarn.nodemanager.localizer.address TCP
NodeManager 8042 yarn.nodemanager.webapp.address TCP
NodeManager 8041 yarn.nodemanager.address TCP
MapReduce JobHistory Server 10020 mapreduce.jobhistory.address TCP
MapReduce JobHistory Server 19888 mapreduce.jobhistory.webapp.address TCP

6.第三方产品端口

ganglia用于监控Hadoop和HBase运行情况。kerberos是一种网络认证协议,相应软件由麻省理工开发。

产品 服务 安全 缺省端口 协议 访问 配置
Ganglia ganglia-gmond 8649 UDP/TCP Internal
ganglia-web 80 TCP External 通过 Apache httpd
Kerberos KRB5 KDC Server Secure 88 UDP*/TCP External [kdcdefaults] 或 [realms]段下的kdc_ports 和 kdc_tcp_ports
KRB5 Admin Server Secure 749 TCP Internal  Kdc.conf 文件:[realms]段kadmind_


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值