相关配置解释
配置文件的效果分析
大家可能好奇,配置了那么多东西,配置文件的内容分别会有什么效果呢?现在我们来分析下。
workers
首先是workers,这个是用来配置工作节点,用脚本批量启动的时候,起到简化启动操作的效果。
由于datanode和NodeManager在master1和master2和node1都有,那么就写成了
vi /home/bigdata/module/hadoop-3.2.3/etc/hadoop/workers
master1
master2
node1
core-site.xml
fs.defaultFS
- 高可用的情况。
高可用的时候配置一个高可用的hdfs集群名称,这里配置的是bigdatacluster,那么在启动的时候,就会启动hdfs集群bigdatacluster。
<property>
<!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
<name>fs.defaultFS</name>
<!--指定hdfs高可用的集群名称-->
<value>hdfs://bigdatacluster</value>
</property>
- 非高可用的时候。
<property>
<!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
<name>fs.defaultFS</name>
<value>hdfs://hadoop102:8020</value>
</property>
hadoop.tmp.dir
<property>
<!--指定 hadoop 集群存储临时文件的目录-->
<name>hadoop.tmp.dir</name>
<value>/datadrive</value>
</property>
作用会就是生成一些临时目录。
[bigdata@node1 datadrive]$ ll nm-local-dir/
total 0
drwxr-xr-x 2 bigdata bigdata 6 Oct 27 17:07 filecache
drwx------ 2 bigdata bigdata 6 Oct 28 09:46 nmPrivate
drwxr-xr-x 3 bigdata bigdata 21 Oct 27 17:24 usercache
hadoop.proxyuser
创建一个其他用户提交下试试效果
<property>
<name>hadoop.proxyuser.userA.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.userA.users</name>
<value>user1,user2</value>
</property>
表示允许用户userA,在任意主机节点,代理用户user1和user2。
<!-- 配置该bigdata(superUser)允许通过代理访问的主机节点 -->
<property>
<name>hadoop.proxyuser.bigdata.hosts</name>
<value>*</value>
</property>
<!-- 配置该bigdata(superUser)允许通过代理用户所属组 -->
<property>
<name>hadoop.proxyuser.bigdata.groups</name>
<value>*</value>
</property>
<!-- 配置该bigdata(superUser)允许通过代理的用户-->
<property>
<name>hadoop.proxyuser.bigdata.users</name>
<value>*</value>
</property>
那么下面的配置就是bigdata用户,可以代理任何用户访问任何主机节点。
动态刷新配置命令。
hdfs dfsadmin –refreshSuperUserGroupsConfiguration
yarn rmadmin –refreshSuperUserGroupsConfiguration
详细说明
ha.zookeeper.quorum
<!-- 指定zkfc要连接的zkServer地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>master1:2181,master2:2181,node1:2181</value>
</property>
看下zookeeper产生的效果。
[zk: localhost:2181(CONNECTED) 36] get /hadoop-ha/bigdatacluster/ActiveStandbyElectorLock
bigdataclusternn2master2 �>(�>
[zk: localhost:2181(CONNECTED) 37] get /hadoop-ha/bigdatacluster/ActiveBreadCrumb
bigdataclusternn2master2 �>(�>
hdfs-site.xml
dfs.journalnode.edits.dir
<!-- JournalNode数据存储目录 -->
<property>
<name>dfs.journalnode.edits.dir</name>
<value>${hadoop.tmp.dir}/jn</value>
</property>
<!-- 指定NameNode元数据在JournalNode上的存放位置 -->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://master1:8485;master2:8485;node1:8485/bigdatacluster</value>
</property>
得到的效果为,也就是说在jn的目录下生成了一个bigdatacluster的目录。这里面的数据只能同时又active的namenode来写入edit log。
[bigdata@master2 datadrive]$ ll /datadrive/jn/
total 0
drwxrwxr-x 4 bigdata bigdata 58 Oct 27 17:07 bigdatacluster
相关文章
yarn-site.xml
<!-- 声明两台resourcemanager的地址 -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>cluster-yarn1</value>
</property>
会在zk下面创建对应的节点。
[zk: localhost:2181(CONNECTED) 43] get /yarn-leader-election/cluster-yarn1/ActiveBreadCrumb
cluster-yarn1rm1
[zk: localhost:2181(CONNECTED) 44] get /yarn-leader-election/cluster-yarn1/ActiveStandbyElectorLock
cluster-yarn1rm1
[zk: localhost:2181(CONNECTED) 45]
计算最大资源配置
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>102400</value>
</property>
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>32</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>51200</value>
</property>