Hadoop——管理配置(集群间切换)。

        开发Hadoop应用时,经常需要在本地运行和集群之间进行切换。事实上,可能在几个集群上工作,也可能在本地“伪集群”集群上测试。伪分布式集群是其守护进程运行在本机的集群。

        应对这些变化的一种方法是使Hadoop配置文件包含每个集群的连接设置,并且在运行Hadoop引用或工具时指定使用哪一个连接设置。最好的做法是,把这些文件放在Hadoop安装目录树之外,以便于轻松地在Hadoop不同版本之间进行切换,从而避免重复或丢失设置信息。

        为了方便,我们假设目录conf包含三个配置文件:hadoop-local.xml、hadoop-localhost.xml和hadoop-cluster.xml。注意,文件名没有特殊要求,这样命名只是为了方便打包配置的设置。

        针对默认的文件系统和用于运行MapReduce作业的本地(指在JVM中的)框架,hadoop-local.xml包含默认的Hadoop配置:

Hadoop——管理配置(集群间切换)。_第1张图片

        hadoop-localhost.xml文件中的设置指向本地主机上运行的namenode和YARN资源管理器:

Hadoop——管理配置(集群间切换)。_第2张图片

        最后,hadoop-cluster.xml文件包含集群上namenode和YARN资源管理器地址的详细信息(事实上,我们会以集群的名称来命名这个文件,而不是这里显示的那样用cluster泛指):

Hadoop——管理配置(集群间切换)。_第3张图片

        还可以根据需要为这些文件添加其他配置信息。

        有了这些设置,便可以轻松通过-conf命令行开关来使用各种配置。例如,下面的命令显示了一个在伪分布式模式下运行于本地主机上的HDFS服务器上的目录列表:


        如果省略-conf选项,可以从$HADOOP_HOME的etc/hadoop子目录中找到Hadoop的配置信息。或者如果已经设置了HADOOP_CONF_DIR,Hadoop的配置信息将从那个位置读取。

        注意:这里介绍另一种管理配置设置的方法。将etc/hadoop目录从Hadoop的安装位置拷贝至另一个位置,将*-site.xml配置文件也放于该位置(文件中的各项设置应正确),再将HADOOP_CONF_DIR环境变量设置为指向该位置。该方法的主要优点是,不需要每个命令中都指定-conf。并且,由于HADOOP_CONF_DIR路径下有所有配置文件的拷贝,因此,对文件的修改可以与Hadoop XML 配置文件隔离开来(例如,log4j.properties)。

        Hadoop自带的工具支持-conf选项,也可以直接用程序(例如运行MapReduce作业的程序)通过使用Tool接口来支持-conf选项。

你可能感兴趣的:(Hadoop)