主机名 | zookeeper | Hadoop | Hbase |
gdy231 | QuorumPeerMain | NameNode【名称节点】 DFSZKFailoverController【Hadoop Ha进程维持namenode高可用】 JournalNode【保证hadoop Ha的高可用(一般启动2n+1个)】 JobHistoryServer【可以通过该服务查看已经运行完了的作业记录】 |
Hmaster HRegionServer |
gdy232 | QuorumPeerMain |
NameNode【名称节点】 DFSZKFailoverController【Hadoop Ha进程维持namenode高可用】 JournalNode【保证hadoop Ha的高可用(一般启动2n+1个)】 |
Hmaster HRegionServer |
gdy233 | QuorumPeerMain |
JournalNode【保证hadoop Ha的高可用(一般启动2n+1个)】 ResourceManager【管理集群资源分配,接收NodeManager的资源汇报】 DataNode【数据节点】 NodeManager【负责在单个节点上执行MapReduce任务。】 |
HRegionServer |
gdy234 | QuorumPeerMain |
JournalNode【保证hadoop Ha的高可用(一般启动2n+1个)】 ResourceManager【管理集群资源分配,接收NodeManager的资源汇报】 DataNode【数据节点】 NodeManager【负责在单个节点上执行MapReduce任务。】 |
HRegionServer |
gdy235 | QuorumPeerMain |
JournalNode【保证hadoop Ha的高可用(一般启动2n+1个)】 ResourceManager【管理集群资源分配,接收NodeManager的资源汇报】 DataNode【数据节点】 NodeManager【负责在单个节点上执行MapReduce任务。】 |
HRegionServer |
配置文件:core-site.xml | ||
属性 | 值 | 说明 |
fs.defaultFS | hdfs://gdy | hadoop访问目录节点nameNode默认为:hdfs://gdy |
hadoop.tmp.dir | /ftpftp/ogg/gdydata/hadoopData/hadooptmp | Hadoop的临时存放目录 /ftpftp/ogg/gdydata/hadoopData/hadooptmp |
ha.zookeeper.quorum | gdy231:2181,gdy232:2181,gdy233:2181, gdy234:2181,gdy235:2181 |
Ha功能,需要一组zk地址,用逗号分隔。被ZKFailoverController使用于自动失效备援failover。 |
io.native.lib.available | TRUE | 是否启动Hadoop的本地库,默认启用。本地库可以加快基本操作,例如IO,压缩等。 |
配置文件:hdfs-site.xml | ||
属性 | 值 | 说明 |
hbase.rootdir | hdfs://gdy/hbase | 配置hbase在HDFS文件系统中存放文件的根目录 |
dfs.nameservices | gdy | 【 nameservices列表。逗号分隔。 我们常用的仅配置一个,启动federation功能需要配置多个】 个人理解:gdy类似于一个变量,与之前的【hbase.rootdir】和【fs.defaultFS】关联,但这里只是声明了一个名字,为servicName的名字,可以声明多个,目前只声明一个。下面会配置这个servicName具体代表什么。 |
dfs.ha.namenodes.gdy | nn1,nn2 | 【 包含一个NN列表。EXAMPLENAMESERVICE是指具体的nameservice名称,通常就是dfs.nameservices中配置的。 值是预备配置的NN的ID。ID是自己取的,不重复就可以,例如nn1,nn2】 个人理解:和【dfs.nameservices】差不多,类似于声明变量,但还没指定值 |
dfs.namenode.rpc-address.gdy.nn1 | gdy231:9000 | 【ns1使用了nn1节点为对外服务地址的RPC地址】 注意这里ns1已经被替换成gdy。这里是给之前nn1规定具体的值。 |
dfs.namenode.http-address.gdy.nn1 | gdy231:50070 | 【ns1使用了nn1节点为对外服务地址的http地址】 和上面类似 |
dfs.namenode.rpc-address.gdy.nn2 | gdy232:9000 | 【ns1使用了nn2为对外服务地址的RPC地址】 |
dfs.namenode.http-address.ns1.nn2 | gdy232:50070 | 【ns1使用了nn2为对外服务地址的http地址】 |
dfs.namenode.shared.edits.dir | qjournal://gdy231:8485;gdy232:8485;gdy233:8485;gdy234:8485;gdy235:8485/gdy | 【同时把NameNode元数据和日志存放在JournalNode上】 启动自动failover。自动failover依赖于zookeeper集群和ZKFailoverController(ZKFC),后者是一个zookeeper客户端, 用来监控NN的状态信息。每个运行NN的节点必须要运行一个zkfc。zkfs提供了下面的功能: Health monitoring zkfc定期对本地的NN发起health-check的命令,如果NN正确返回,那么这个NN被认为是OK的。 否则被认为是失效节点。 ZooKeeper session management 当本地NN是健康的时候,zkfc将会在zk中持有一个session。 如果本地NN又正好是active的,那么zkfc还有持有一个”ephemeral”的节点作为锁,一旦本 地NN失效了, 那么这个节点将会被自动删除。 ZooKeeper-based election 如果本地NN是健康的,并且zkfc发现没有其他的NN持有那个独占锁。 那么他将试图去获取该锁,一旦成功,那么它就需要执行Failover,然后成为active的NN节点。 Failover的过程是:第一步,对之前的NN执行fence,如果需要的话。第二步,将本地NN转换到active状态。 启动zkfc的方法如下:hadoop-daemon.sh start zkfc。通过start-dfs.sh会自动启动该进程,一般无需手动起停。 |
dfs.journalnode.edits.dir | /ftpftp/ogg/gdydata/hadoopData/hadoopedits | 配置edits数据存放位置 |
dfs.namenode.name.dir | /ftpftp/ogg/gdydata/hadoopData/hadoopname | NN存放元数据和日志位置 |
dfs.datanode.data.dir | /ftpftp/ogg/gdydata/hadoopData/hadoopdata | 配置hdfs每个数据节点存放位置 |
dfs.replication | 3 | 配置系统自动数据备份数量为3份(默认是3份) |
dfs.ha.automatic-failover.enabled | TRUE | 是否开启自动故障转移。建议开启,true |
dfs.client.failover.proxy.provider.gdy | org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider | client的failover代理配置 |
dfs.ha.fencing.methods | sshfence | HDFS的HA功能的防脑裂方法。可以是内建的方法(例如shell和sshfence)或者用户定义的方法。 建议使用sshfence(hadoop:9922),括号内的是用户名和端口,注意,这需要NN的2台机器之间能够免密码登陆 fences是防止脑裂的方法,保证NN中仅一个是Active的,如果2者都是Active的,新的会把旧的强制Kill。 |
dfs.ha.fencing.ssh.private-key-files | /home/ogg/.ssh/id_rsa | 密钥认证文件 |
配置文件mapred-site.xml | ||
属性 | 值 | 说明 |
mapreduce.framework.name | yarn | 其中,名称mapreduce.framework.name指的是使用yarn运行mapreduce程序 |
mapreduce.jobhistory.address | gdy231:10020 | MapReduce JobHistory Server地址。 |
mapreduce.jobhistory.webapp.address | gdy231:19888 | MapReduce JobHistory Server Web UI地址。 |
mapreduce.jobhistory.joblist.cache.size | 20000 | 内存中缓存的historyfile文件信息(主要是job对应的 文件目录,) |
配置文件【slaves】 | slaves记录的是需要执行start-all.sh(或相关命令)时,需要远程启动tasktracker与datanode的节点。 |
配置文件【masters】老版本用,新的不要了 | masters记录的是需要启动secondary namenode的节点, 不是namenode,它也和mapreduce没任何关系。 |
配置文件yarn-site.xml | ||
属性 | 值 | 说明 |
yarn.nodemanager.aux-services | mapreduce_shuffle | NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序 |
yarn.resourcemanager.connect.retry-interval.ms | 2000 | rm失联后重新链接的时间 |
yarn.resourcemanager.ha.enabled | TRUE | 启用RM高可用 |
yarn.resourcemanager.ha.automatic-failover.enabled | TRUE | 是否启用自动故障转移。默认情况下,在启用HA时,启用自动故障转移。 |
yarn.resourcemanager.ha.automatic-failover.embedded | TRUE | 启用内置的自动故障转移。默认情况下,在启用HA时,启用内置的自动故障转移。 |
yarn.resourcemanager.cluster-id | yarn-cluster | (RM集群标识符)集群的Id,elector使用该值确保RM不会做为其它集群的active。 |
yarn.resourcemanager.ha.rm-ids | rm1,rm2,rm3 | 指定两台RM主机名标识符 |
yarn.resourcemanager.scheduler.class | org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler | 启用的资源调度器主类。目前可用的有FIFO、Capacity Scheduler和Fair Scheduler。 |
yarn.resourcemanager.ha.automatic-failover.recover.enabled | TRUE | RM故障自动切换 |
yarn.resourcemanager.hostname.rm1 | gdy233 | RM主机1 |
yarn.resourcemanager.hostname.rm2 | gdy234 | RM主机2 |
yarn.resourcemanager.hostname.rm3 | gdy235 | RM主机3 |
yarn.resourcemanager.recovery.enabled | TRUE | RM故障自动恢复 |
yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms | 5000 | schelduler失联等待连接时间 |
yarn.resourcemanager.store.class | org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore | RM状态信息存储方式,一种基于内存(MemStore),另一种基于ZK(ZKStore) |
yarn.resourcemanager.zk-address | gdy231:2181,gdy232:2181,gdy233:2181,gdy234:2181,gdy235:2181 | 使用ZK集群保存状态信息 |
yarn.resourcemanager.zk.state-store.address | gdy231:2181,gdy232:2181,gdy233:2181,gdy234:2181,gdy235:2181 | |
yarn.resourcemanager.address.rm1 | gdy233:23140 | 客户端通过该地址向RM提交对应用程序操作 |
yarn.resourcemanager.address.rm2 | gdy234:23140 | 客户端通过该地址向RM提交对应用程序操作 |
yarn.resourcemanager.address.rm3 | gdy235:23140 | 客户端通过该地址向RM提交对应用程序操作 |
yarn.resourcemanager.scheduler.address.rm1 | gdy233:23130 | 向RM调度资源地址 |
yarn.resourcemanager.scheduler.address.rm2 | gdy234:23130 | 向RM调度资源地址 |
yarn.resourcemanager.scheduler.address.rm3 | gdy235:23130 | 向RM调度资源地址 |
yarn.resourcemanager.admin.address.rm1 | gdy233:23141 | 管理员通过该地址向RM发送管理命令 |
yarn.resourcemanager.admin.address.rm2 | gdy234:23141 | 管理员通过该地址向RM发送管理命令 |
yarn.resourcemanager.admin.address.rm3 | gdy235:23141 | 管理员通过该地址向RM发送管理命令 |
yarn.resourcemanager.resource-tracker.address.rm1 | gdy233:23125 | NodeManager通过该地址交换信息 |
yarn.resourcemanager.resource-tracker.address.rm2 | gdy234:23125 | NodeManager通过该地址交换信息 |
yarn.resourcemanager.resource-tracker.address.rm3 | gdy235:23125 | NodeManager通过该地址交换信息 |
yarn.resourcemanager.webapp.address.rm1 | gdy233:23188 | RM HTTP访问地址,查看集群信息 |
yarn.resourcemanager.webapp.address.rm2 | gdy234:23188 | RM HTTP访问地址,查看集群信息 |
yarn.resourcemanager.webapp.address.rm3 | gdy235:23188 | RM HTTP访问地址,查看集群信息 |
yarn.resourcemanager.webapp.https.address.rm1 | gdy233:23189 | RM HTTP访问地址,查看集群信息 |
yarn.resourcemanager.webapp.https.address.rm2 | gdy234:23189 | RM HTTP访问地址,查看集群信息 |
yarn.resourcemanager.webapp.https.address.rm3 | gdy235:23189 | RM HTTP访问地址,查看集群信息 |
Hbase配置文件: 注意:Hbase配置文件core-site.xml与hdfs-site.xml配置文件与Hadoop配置文件保持一致。可以拷贝 |
||
backup-masters记录了备用的masters结点位置 | gdy234 | |
regionServers配置文件指定了Hbase上启动Hregionservers的位置 | gdy235 gdy234 gdy233 |
|
hbase-site.xml | ||
属性 | 值 | 说明 |
hbase.rootdir | hdfs://gdy/hbase | 指定hbase所在的hdfs文件系统中的目录 |
hbase.cluster.distributed | TRUE | 开启hbase完全分布式模式 |
hbase.master.port | 60000 | 配置hMaster访问端口。(注意:HMaster在哪里又zookeeper决定) |
hbase.zookeeper.quorum | gdy231,gdy232,gdy233,gdy234,gdy235 | Zookeeper集群的地址列表,用逗号分割。 |
hbase.zookeeper.property.clientPort | 2181 | 配置zookeeper的作业端口 |
hbase.replication | TRUE | 开启 hbase 主从集群复制 replication |
replication.source.size.capacity | 4194304 | 主集群每次像备集群发送的entry的包的最大值大小,不推荐过大 |
replication.source.nb.capacity | 2000 | 主集群每次向备集群发送的entry最大的个数 |
replication.source.ratio | 1 | 主集群里使用slave服务器的百分比 |
hbase.balancer.period | 15000 | Master执行region balancer的间隔,默认30s |