您的位置:首页 > 运维架构

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.namenamenode RPC交互端口8020core-site.xmlhdfs://master:8020/
dfs.http.address NameNode web管理端口50070 hdfs-site.xml 0.0.0.0:50070
dfs.datanode.addressdatanode 控制端口50010 hdfs-site.xml 0.0.0.0:50010
dfs.datanode.ipc.addressdatanode的RPC服务器地址和端口 50020hdfs-site.xml0.0.0.0:50020
dfs.datanode.http.addressdatanode的HTTP服务器和端口 50075hdfs-site.xml 0.0.0.0:50075
                                         

                     

                   

                   

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

                    

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


集群目录配置

参数描述 默认 配置文件例子值
dfs.name.dirname 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.dirsecondary NameNode的元数据以,号隔开,hdfs会把元数据冗余复制到这些目录,一般这些目录是不同的块设备,不存在的目录会被忽略掉${hadoop.tmp.dir}
/dfs/namesecondary
core-site.xml/hadoop/hdfs/namesecondary
 fs.checkpoint.edits.dirsecondary 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.dirdata node的数据目录,以,号隔开,hdfs会把数据存在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉${hadoop.tmp.dir}
/dfs/data
hdfs-site.xm/hadoop/hdfs/data1/data,
/hadoop/hdfs/data2/data
mapred.local.dirMapReduce产生的中间数据存放目录,以,号隔开,hdfs会把数据存在这些目录下,一般这些目录是不同的块设备,不存在的目录会被忽略掉${hadoop.tmp.dir}
/mapred/local
mapred-site.xml/hadoop/hdfs/data1/mapred/local,
/hadoop/hdfs/data2/mapred/local
mapred.system.dirMapReduce的控制文件${hadoop.tmp.dir}
/mapred/system
mapred-site.xml/hadoop/hdfs/data1/system
 


其他配置

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


端口

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.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缺省端口配置参数
HDFSNamenode50070dfs.http.address
Datanodes50075dfs.datanode.http.address
Secondarynamenode50090dfs.secondary.http.address
Backup/Checkpoint node*50105dfs.backup.http.address
MRJobracker50030mapred.job.tracker.http.address
Tasktrackers50060mapred.task.tracker.http.address
HBaseHMaster60010hbase.master.info.port
HRegionServer60030hbase.regionserver.info.port
* hadoop 0.21以后代替secondarynamenode .


3.内部端口

Daemon缺省端口配置参数协议用于
Namenode9000fs.default.nameIPC: ClientProtocolFilesystem metadata operations.
Datanode50010dfs.datanode.addressCustom Hadoop Xceiver: DataNodeand DFSClientDFS data transfer
Datanode50020dfs.datanode.ipc.addressIPC:InterDatanodeProtocol,ClientDatanodeProtocol

ClientProtocol
Block metadata operations and recovery
Backupnode50100dfs.backup.address同 namenodeHDFS Metadata Operations
Jobtracker9001mapred.job.trackerIPC:JobSubmissionProtocol,InterTrackerProtocolJob submission, task tracker heartbeats.
Tasktracker127.0.0.1:0*mapred.task.tracker.report.addressIPC:TaskUmbilicalProtocol和 child job 通信
* 绑定到未用本地端口


 4.相关产品端口

产品服务缺省端口参数范围协议说明
HBase Master60000hbase.master.portExternalTCPIPC
Master60010hbase.master.info.portExternalTCPHTTP
RegionServer60020hbase.regionserver.portExternalTCPIPC
RegionServer60030hbase.regionserver.info.portExternalTCPHTTP
HQuorumPeer2181hbase.zookeeper.property.clientPortTCPHBase-managed ZK mode
HQuorumPeer2888hbase.zookeeper.peerportTCPHBase-managed ZK mode
HQuorumPeer3888hbase.zookeeper.leaderportTCPHBase-managed ZK mode
REST Service8080hbase.rest.portExternalTCP
ThriftServer9090Pass -p <port> on CLIExternalTCP
 Avro server9090Pass –port <port> on CLIExternalTCP
HiveMetastore9083ExternalTCP
HiveServer10000ExternalTCP
SqoopMetastore16000sqoop.metastore.server.portExternalTCP
ZooKeeper Server2181clientPortExternalTCPClient port
Server2888X in server.N=host:X:YInternalTCPPeer
Server3888Y in server.N=host:X:YInternalTCPPeer
Server3181X in server.N=host:X:YInternalTCPPeer
Server4181Y in server.N=host:X:YInternalTCPPeer
Hue Server8888ExternalTCP
Beeswax Server8002Internal
Beeswax Metastore8003Internal
OozieOozie Server11000OOZIE_HTTP_PORT in oozie-env.shExternalTCPHTTP
Oozie Server11001OOZIE_ADMIN_PORT in oozie-env.shlocalhostTCPShutdown port


5.YARN(Hadoop 2.0)缺省端口

产品服务缺省端口配置参数协议
Hadoop YARN ResourceManager8032yarn.resourcemanager.addressTCP
ResourceManager8030yarn.resourcemanager.scheduler.addressTCP
ResourceManager8031yarn.resourcemanager.resource-tracker.addressTCP
ResourceManager8033yarn.resourcemanager.admin.addressTCP
ResourceManager8088yarn.resourcemanager.webapp.addressTCP
NodeManager8040yarn.nodemanager.localizer.addressTCP
NodeManager8042yarn.nodemanager.webapp.addressTCP
NodeManager8041yarn.nodemanager.addressTCP
MapReduce JobHistory Server10020mapreduce.jobhistory.addressTCP
MapReduce JobHistory Server19888mapreduce.jobhistory.webapp.addressTCP


6.第三方产品端口

ganglia用于监控Hadoop和HBase运行情况。kerberos是一种网络认证协议,相应软件由麻省理工开发。
产品服务安全缺省端口协议访问配置
Gangliaganglia-gmond8649UDP/TCPInternal
ganglia-web80TCPExternal通过 Apache httpd
KerberosKRB5 KDC ServerSecure88UDP*/TCPExternal[kdcdefaults] 或 [realms]段下的kdc_ports 和 kdc_tcp_ports
KRB5 Admin ServerSecure749TCPInternal Kdc.conf 文件:[realms]段kadmind_
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: