大数据时代,面对海量化数据,传统文件存储系统已经难以支撑。随着大数据技术的发展、越来越多存储和处理数据的组件被开发出来,诸如分布式文件系统HDFS、离线分析数据仓库HIVE、适合海量数据快速查询的列式存储数据库HBASE。这些组件工具都不能单独运行,都需要依赖hadoop集群的服务能力。
基于Hadoop进行开发时,有时候会被Hadoop的运行模式弄得晕头转向,傻傻分不清各种运行模式的区别,给日常开发带来很多困惑,不同集群配置文件也各不相不同。弄明白Hadoop的运行模式和对配置文件的作用要做到心中明了,在工作中才能得手顺心。
Hadoop集群四大配置文件
hadoop的配置文件均以XML文件进行配置,它有四个最常见的配置文件,分别为:
1,core-site.xml
core-site.xml文件主要用于配置通用属性。
2,hdfs-site.xml
hdfs-site.xml文件用于配置Hdfs的属性。
<!--主要的-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn1</name>
<value>ns1.hadoop:9000</value>
<description>指定NameNode的RPC位置</description>
</property>
<!--主要的-->
<property>
<name>dfs.namenode.http-address.ns1.nn1</name>
<value>ns1.hadoop:50070</value>
<description>指定NameNode的Web Server位置</description>
</property>
<!--主要的-->
<property>
<name>dfs.namenode.rpc-address.ns1.nn2</name>
<value>ns2.hadoop:9000</value>
<description>指定NameNode的RPC位置</description>
</property>
<!--主要的-->
<property>
<name>dfs.namenode.http-address.ns1.nn2</name>
<value>ns2.hadoop:50070</value>
<description>指定NameNode的Web Server位置</description>
</property>
3,mapred-site.xml
mapred-site.xml文件用于配置Mapreduce的属性。
4,yarn-site.xml
yarn-site.xml文件用于配置Yarn的属性。
一般来说,这四种配置文件都存储在hadoop默认的安装目录etc/hadoop子目录中。不过我们也可以在搭建集群时根据实际需求,把etc/hadoop目录和其下的文件复制到另外一个位置。这样可以把配置文件和安装文件分离开来,方便管理。
注意:如果把etc/hadoop目录和其下的文件复制到另外一个位置。
我们需要在环境变量中将hadoop_conf_dir设置成指向新目录。
Hadoop的三种运行模式
1、本地运行模式
无需任何守护进程,所有的程序都运行在同一个JVM上执行。在本地模式下调试MR程序非常高效方便,一般该模式主要是在学习或者开发阶段调试使用 。
2、伪分布式模式
Hadoop守护进程运行在本地机器上,模拟一个小规模的集群,换句话说,可以配置一台机器的Hadoop集群,伪分布式是完全分布式的一个特例。
3、完全分布式模式
Hadoop守护进程运行在一个集群上。这种运行模式也就是我们常见的各种云,主要用于大规模的生产环境中。
注意:分布式要启动守护进程 ,是指在使用分布式hadoop时,要先启动一些准备程序进程,然后才能使用。比如start-dfs.sh start-yarn.sh,而本地模式不需要启动这些守护进程。
注意:在本地模式下,将使用本地文件系统和本地MapReduce运行器。在分布式模式下,将启动HDFS和YARN守护进程。