Hadoop是由Apache基金会开发的分布式系统基础架构。用户无需了解分布式底层细节,即可开发分布式程序。该系统能够充分利用集群的性能,实现高速运算和存储。Hadoop包含一个名为Hadoop分布式文件系统(HDFS)的核心组件,该文件系统具有高容错性,并且设计用于在低成本硬件上运行。HDFS提供高吞吐量的数据访问,适合处理大规模数据集。HDFS在访问文件系统中的数据时,放松了POSIX的要求,允许以流的方式访问数据。
Hadoop的核心设计包括HDFS和MapReduce。HDFS负责海量数据的存储,而MapReduce则负责数据的计算任务。Hadoop由多个组件构成,其中最底层的是HDFS,用于存储集群中所有节点上的文件。HDFS之上是MapReduce引擎,该引擎由JobTrackers和TaskTrackers组成。通过对Hadoop分布式计算平台中最重要的组件——HDFS、MapReduce处理流程以及数据仓库工具Hive和分布式数据库HBase的介绍,基本涵盖了Hadoop平台的所有核心技术。
Hadoop有三种主要的发行版本:
Hadoop具备以下几个显著的优势:
Hadoop的主要配置文件位于/etc
目录下。以下是几个关键的配置文件及其用途:
这是Hadoop的核心配置文件,用于设置文件系统的默认URI和其他基本参数。
xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/data/hadoop/tmp</value>
</property>
</configuration>
此文件用于配置HDFS的具体参数,例如数据备份数量和节点数据存储路径。
xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>/opt/data/hadoop/namenode</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/data/hadoop/datanode</value>
</property>
</configuration>
此文件用于配置MapReduce的相关参数,例如JobTracker的主机名或IP地址及端口号。
xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
启动Hadoop的过程包括初始化Namenode和启动各个服务:
初始化Namenode:
sh
hdfs namenode -format
启动Hadoop:
sh
./start-all.sh
验证启动:
sh
hdfs dfs -mkdir /test
hdfs dfs -ls /