如何理解hadoop的安装方式

来源:互联网 发布:海子诗歌赏析知乎 编辑:程序博客网 时间:2024/06/01 08:25

       上一篇博客,介绍了hadoop的配置和安装。但是对于小白来讲可能并不理解为什么要那样配置,这里通过讲述安装过程来加深对Hadoop的理解。

       1、为什么要配置hadoop-env.sh文件

        因为Hadoop是用java语言开发的,所以在运行hadoop的时候需要JDK的jre环境。

        一般来说,获取jre环境的方式有两种,一种是直接获取系统的JAVA_HOME,另一种则是在其配置文件中配置JAVA_HOME。而hadoop就是采取第二种方式来获取jre环境的。虽然在运行hadoop的时候不配置系统的JAVA_HOME也是可以的,只是一般情况下都会进行配置。

      2、为什么要配置core-site.xml  hdfs-site.xml   mapred-site.xml文件

        这就涉及到hadoop的工作机制了。hadoop有3中运行模式:

        ①本地独立模式:如果不进行任何配置,这是hadoop的默认模式。这种模式下,hadoop的所有组件都运行在同一个java进程里。

        ②伪分布式模式:这种模式下,hadoop的各个组件都拥有一个单独的虚拟机,他们之间通过网络套接字通信。这种模式在一台主机上有效地产生了一个具有完整功能的微型集群。

        ③完全分布式模式:这种模式下,hadoop分布在多台主机上,其中一些是通用的工作机,其余的是组件的专用主机,比如NameNode和JobTracker。

       在我们的学习中,我们更多用到的是伪分布式模式。所以需要对相关文件进行相应的配置。

        下面介绍下这三个xml文件:

        ①core-site.xml文件:它是这是一个描述集群中NameNode结点的URI-统一资源标识符(包括协议,主机名称,端口号),集群里面的每一台机器都需要知道NameNode的地址。DataNode结点会先在NameNode上注册,这样它们的数据才可以被利用。独立的客户端程序通过这个URI跟DateNode交互,以取得文件的块列表。

         而变量dfs.default.name则是保存了NameNode的位置。所以必须配置这部分内容:

     <span style="font-size:18px;"> <property>     <name>fs.default.name</name>     <value>hdfs://localhost:54310</value>     </property></span>
           而hadoop.tmp.dir是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site-xml中不配置namenode 和datanode的存放位置,默认就放在这个路径下。

       在上一篇微博中,我的配置文件里有较多的描述语句-----<description>部分,大家可不必写。

       ②hdfs-site.xml文件:变量dfs.replication决定了系统的HDFS数据块复制/备份的次数。因为我们只有一台主机,所以我们将值修改为1

<property><name>dfs.replication</name><value>1</value></property>

       ③mapred-site.xml文件:dfs.default.name保存了NameNode的位置,变量mapred.job.tracker保存了JobTracker的位置。因为只有mapreduce组件才需要知道这个位置,所以我们将它配置在mapred-site.xml中。

<property><name>mapred.job.tracker</name><value>hdfs:\\localhost:54311</value></property>

       3、为什么要格式化NameNode?

    HDFS最初有一个默认的存放文件系统数据的位置,但并不等同于文件系统索引的实际数据,所以必须要格式化namenode。格式化命令执行多次的话可能会导致文件系统数据受损,所以一般我们只执行一次格式化。


       

0 0
原创粉丝点击