hadoop集群默认配置和常用配置
2018-01-08 15:28
393 查看
获取默认配置
配置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:组件 | 节点 | 默认端口 | 配置 | 用途说明 |
HDFS | DataNode | 50010 | dfs.datanode.address | datanode服务端口,用于数据传输 |
HDFS | DataNode | 50075 | dfs.datanode.http.address | http服务的端口 |
HDFS | DataNode | 50475 | dfs.datanode.https.address | https服务的端口 |
HDFS | DataNode | 50020 | dfs.datanode.ipc.address | ipc服务的端口 |
HDFS | NameNode | 50070 | dfs.namenode.http-address | http服务的端口 |
HDFS | NameNode | 50470 | dfs.namenode.https-address | https服务的端口 |
HDFS | NameNode | 8020 | fs.defaultFS | 接收Client连接的RPC端口,用于获取文件系统metadata信息。 |
HDFS | journalnode | 8485 | dfs.journalnode.rpc-address | RPC服务 |
HDFS | journalnode | 8480 | dfs.journalnode.http-address | HTTP服务 |
HDFS | ZKFC | 8019 | dfs.ha.zkfc.port | ZooKeeper FailoverController,用于NN HA |
YARN | ResourceManager | 8032 | yarn.resourcemanager.address | RM的applications manager(ASM)端口 |
YARN | ResourceManager | 8030 | yarn.resourcemanager.scheduler.address | scheduler组件的IPC端口 |
YARN | ResourceManager | 8031 | yarn.resourcemanager.resource-tracker.address | IPC |
YARN | ResourceManager | 8033 | yarn.resourcemanager.admin.address | IPC |
YARN | ResourceManager | 8088 | yarn.resourcemanager.webapp.address | http服务端口 |
YARN | NodeManager | 8040 | yarn.nodemanager.localizer.address | localizer IPC |
YARN | NodeManager | 8042 | yarn.nodemanager.webapp.address | http服务端口 |
YARN | NodeManager | 8041 | yarn.nodemanager.address | NM中container manager的端口 |
YARN | JobHistory Server | 10020 | mapreduce.jobhistory.address | IPC |
YARN | JobHistory Server | 19888 | mapreduce.jobhistory.webapp.address | http服务端口 |
HBase | Master | 60000 | hbase.master.port | IPC |
HBase | Master | 60010 | hbase.master.info.port | http服务端口 |
HBase | RegionServer | 60020 | hbase.regionserver.port | IPC |
HBase | RegionServer | 60030 | hbase.regionserver.info.port | http服务端口 |
HBase | HQuorumPeer | 2181 | hbase.zookeeper.property.clientPort | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
HBase | HQuorumPeer | 2888 | hbase.zookeeper.peerport | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
HBase | HQuorumPeer | 3888 | hbase.zookeeper.leaderport | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
Hive | Metastore | 9083 | /etc/default/hive-metastore中export PORT=<port>来更新默认端口 | |
Hive | HiveServer | 10000 | /etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口 | |
ZooKeeper | Server | 2181 | /etc/zookeeper/conf/zoo.cfg中clientPort=<port> | 对客户端提供服务的端口 |
ZooKeeper | Server | 2888 | /etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 | follower用来连接到leader,只在leader上监听该端口。 |
ZooKeeper | Server | 3888 | /etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 | 用于leader选举的。只在electionAlg是1,2或3(默认)时需要。 |
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.jsp:HDFS信息页面,其中有链接可以查看文件系统
/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_ |
相关文章推荐
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用的配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- (转)hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop 集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置
- hadoop集群默认配置和常用配置