Hadoop集群管理之配置文件
一、配置文件列表如下:
[hadoop@node1 conf]$ pwd /app/hadoop/conf [hadoop@node1 conf]$ echo $HADOOP_HOME /app/hadoop [hadoop@node1 conf]$ ll 总计 60 -rw-rw-r-- 1 hadoop hadoop 3936 2010-02-19 15:55 capacity-scheduler.xml -rw-rw-r-- 1 hadoop hadoop 535 2010-02-19 15:55 configuration.xsl -rw-rw-r-- 1 hadoop hadoop 435 2014-02-28 22:15 core-site.xml -rw-rw-r-- 1 hadoop hadoop 2226 2014-02-28 10:16 hadoop-env.sh -rw-rw-r-- 1 hadoop hadoop 1245 2010-02-19 15:55 hadoop-metrics.properties -rw-rw-r-- 1 hadoop hadoop 4190 2010-02-19 15:55 hadoop-policy.xml -rw-r--r-- 1 hadoop hadoop 1652 2014-02-28 21:55 hbase-site.xml -rw-rw-r-- 1 hadoop hadoop 664 2014-02-28 15:12 hdfs-site.xml -rw-rw-r-- 1 hadoop hadoop 2815 2010-02-19 15:55 log4j.properties -rw-rw-r-- 1 hadoop hadoop 266 2014-02-28 10:15 mapred-site.xml -rw-rw-r-- 1 hadoop hadoop 14 2014-02-28 15:16 masters -rw-rw-r-- 1 hadoop hadoop 28 2014-02-28 10:15 slaves -rw-rw-r-- 1 hadoop hadoop 1243 2010-02-19 15:55 ssl-client.xml.example -rw-rw-r-- 1 hadoop hadoop 1195 2010-02-19 15:55 ssl-server.xml.example
二、常用配置文件
2.1、hadoop-env.sh:记录脚本要用的环境变量;
2.2、core-site.xml:Hadoop核心配置项;
2.3、hdfs-site.xml:Hadoop守护进程配置项,例如:namenode,secondarynamenode和datanode等;
2.4、mapred-site.xml:MapReduce守护进程配置项,包括jobtracker和tasktracker;
2.5、master:运行secondarynamenode(而不是namenode)的机器列表(每行一个)。只在namenode或jobtracker节点上使用,无需同步到各节点;
2.6、slave:运行datanode和tasktracker的机器列表(每行一个)。只在namenode或jobtracker节点上使用,无需同步到各节点。
2.7、hadoop-metrics.properties:ganglia监控的配置文件
三、控制脚本
3.1、start-dfs.sh:在本地节点启动namenode,在slave文件指定的每个节点启动datanode,在master文件指定的每个节点启动secondarynamenode
3.2、start-mapred.sh:在本地节点启动jobtracker,在slave文件指定的每个节点启动tasktracker。
3.3、start-all.sh:依次调用start-dfs.sh和start-mapred.sh
3.4、stop-dfs.sh/stop-mapred.sh/stop-all.sh:前面的start脚本对应的关闭脚本。
3.5、hadoop-daemon.sh:上述脚本调用它来执行启动和终止hadoop守护进程。如果用户需要从其他系统或自己编写脚本控制hadoop守护进程,可以调用它。
3.6、hadoop-daemons.sh:用于在多个主机上启动同一hadoop守护进程。
四、守护进程管理
对于小型集群(几十个节点),可以将namenode、secondarynamenode、jobtracker放到单独一台机器上,但对于大型集群,最好分别放到不同的机器上。
4.1、namenode:在内存中保存整个命名空间的所有文件和块元数据,它的内存需求很大。
4.2、secondnamenode:保存一份最新的检查点,记录文件系统的元数据,有助于在数据丢失或系统崩溃时恢复namenode的元数据;它在大多时候空闲,但它创建检查时的内存需求和namenode差不多。一旦文件系统包含大量文件,单台主机可能无法同时运行namenode和secondarynamenode。
4.3、jobtracker:在一个运行大量mapreduce作业的高负载集群上,jobtracker会使用大量内存和CPU资源,因此它最好运行在一个专用节点上。
HDFS控制脚本需要在namenode机器上运行;mapreduce控制脚本需要在jobtracker机器上运行。