5 hadoop3.0配置文件详解
hadoop配置文件详解 主要配置文件: hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yar-site.xml workers 参考: https://hadoop.apache.org/docs/r3.0.1/ https://www.aboutyun.com/thread-26880-1-1.html https://www.cnblogs.com/simple-li/p/14651340.html 1 hadoop-env.sh 配置hadoop环境变量 cat hadoop-env.sh export JAVA_HOME=/usr/local/jdk1.8.0_131 export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export HDFS_ZKFC_USER=root export HDFS_JOURNALNODE_USER=root #export HADOOP_NAMENODE_OPTS=" -Xms1024m -Xmx1024m -XX:+UseParallelGC" 2 core-site.xml Hadoop 核心全局配置文件,可在其他配置文件中引用该文件 cat core-site.xml <configuration> <property> <!-- 制定hdfs的nameservice,默认的链接地址,可以自定义的--> <name>fs.defaultFS</name> <value>hdfs://ns1</value> </property> <property> <name>dfs.nameservices</name> <value>ns1</value> </property> <property> <!--临时文件存储目录--> <name>hadoop.tmp.dir</name> <value>/hadoop/tmp</value> </property> <property> <!--指定zookeeper,还可以更多的设置超时时间等内容--> <name>ha.zookeeper.quorum</name> <value>vm1:2181,vm1:2181,vm1:2181</value> </property> </configuration> 3 hdfs-site.xml HDFS配置文件,继承core-site.xml配置文件。Hadoop的底层存储配置文件,主要配置HDFS相关参数 cat hdfs-site.xml <configuration> <property> <!--设置的副本数量,在程序汇总副本的系数是可以更改的--> <name>dfs.replication</name> <value>3</value> </property> <property> <!--配置的nameservice的名字,需要与core-site.xml中保持一致,并且利用其名称与namenode设置唯一标识--> <name>dfs.nameservices</name> <value>ns1</value> </property> <property> <!--配置cluster下面的namenode名称--> <name>dfs.ha.namenodes.ns1</name> <value>nn1,nn2</value> </property> <property> <!--配置namenode的地址与端口(RPC)--> <name>dfs.namenode.rpc-address.ns1.nn1</name> <value>vm1:8020</value> </property> <property> <name>dfs.namenode.rpc-address.ns1.nn2</name> <value>vm2:8020</value> </property> <property> <!--配置namenode的地址与端口(HTTP)--> <name>dfs.namenode.http-address.ns1.nn1</name> <value>vm1:50070</value> </property> <property> <name>dfs.namenode.http-address.ns1.nn2</name> <value>vm2:50070</value> </property> <property> <!--journal namenode同步namenode的元数据共享存储位置。也就是journal的列表信息-> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://vm1:8485;vm2:8485;vm3:8485/ns1</value> </property> <property> <!--配置高可用方案内容,失败后自动切换的方式--> <name>dfs.client.failover.proxy.provider.ns1</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <!--ssh方案配置--> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value> </property> <property> <!--namenode文件路径信息(元数据)--> <name>dfs.name.dir</name> #<name>dfs.namenode.name.dir</name> <value>/hadoop/dfs/name</value> </property> <property> <!--datanode数据保存路径,可配置多个数据盘--> <name>dfs.data.dir</name> <value>/hadoop/data</value> #<value>/hadoop/data,/hadoop/data2,/hadoop/data3</value> </property> <property> <!--journalnode的保存文件路径--> <name>dfs.journalnode.edits.dir</name> <value>/hadoop/journalnode</value> </property> <property> <!--开启NameNode失败自动切换--> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration> 4 mapred-site.xml MapReduce 配置文件,继承 core-site.xml 配置文件 yarn的web地址和history的web地址以及指定我们的mapreduce运行在yarn集群上 cat mapred-site.xml <!-- Put site-specific property overrides in this file. --> <configuration> <!-- 指定 MapReduce 程序运行在 Yarn 上,表示MapReduce使用yarn框架 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- 开启MapReduce小任务模式 --> <property> <name>mapreduce.job.ubertask.enable</name> <value>true</value> </property> <!-- 设置历史任务的主机和端口 --> <property> <name>mapreduce.jobhistory.address</name> <value>vm1:10020</value> </property> <!-- 设置网页访问历史任务的主机和端口 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>vm1:19888</value> </property> </configuration> 5 yarn-site.xml YARN配置文件,继承 core-site.xml配置文件 cat yarn-site.xml <configuration> <!-- Site specific YARN configuration properties --> <property> <!--是否开启RM ha,默认是开启的--> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <property> <!--声明两台resourcemanager的地址--> <name>yarn.resourcemanager.cluster-id</name> <value>rmcluster</value> </property> <property> <!--制定rm的名字--> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <property> <!--指定rm的地址--> <name>yarn.resourcemanager.hostname.rm1</name> <value>vm1</value> </property> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>vm2</value> </property> <property> <!--指定zookeeper集群的地址--> <name>yarn.resourcemanager.zk-address</name> <value>vm1:2181,vm2:2181,vm3:2181</value> </property> <property> <!--启用自动恢复,当任务进行一半,rm坏掉,就要启动自动恢复,默认是false--> <name>yarn.resourcemanager.recovery.enabled</name> <value>true</value> </property> <property> <!--指定resourcemanager的状态信息存储在zookeeper集群,默认是存放在FileSystem里面--> <name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> </property> </configuration> 6 /home/hadoop/hadoop-3.2.2/etc/hadoop/workers 数据节点加入到workers里面: vm2 vm3