Hadoop是一个开源框架,它允许在整个集群使用简单编程模型计算机的分布式环境存储并处理大数据。它的目的是从单一的服务器到上千台机器的扩展,每一个台机都可以提供本地计算和存储。HDFS为海量的数据提供了存储,而 MapReduce则为海量的数据提供了计算。
1. HDFS
Hadoop文件系统使用分布式文件系统设计开发。它是运行在普通硬件。不像其他的分布式系统,HDFS是高度容错以及使用低成本的硬件设计。
HDFS拥有超大型的数据量,并提供更轻松地访问。为了存储这些庞大的数据,这些文件都存储在多台机器。这些文件都存储以冗余的方式来拯救系统免受可能的数据损失,在发生故障时。 HDFS也使得可用于并行处理的应用程序。
HDFS遵循主从架构,它具有以下元素:
-
Namenode是包含GNU/Linux操作系统和软件名称节点的普通硬件。它是一个可以在商品硬件上运行的软件。具有名称节点系统作为主服务器,它执行以下任务:
- 管理文件系统命名空间
- 规范客户端对文件的访问
- 执行文件系统操作,如重命名,关闭和打开的文件和目录
-
Datanode是具有GNU/Linux操作系统和软件的普通硬件。对于集群中的每个节点(普通硬件/系统),有一个Datanode,这些节点管理数据存储在它们的系统。
- 数据节点上的文件系统根据客户的请求执行读写操作
- 根据NameNode的指令执行操作,如块的创建,删除和复制块
一般用户数据存储在HDFS文件。在一个文件系统中的文件将被划分为一个或多个段和/或存储在个人数据的节点。这些文件段被称为块。换句话说,数据的HDFS可以读取或写入的最小量被称为一个块。缺省的块大小为64MB,但它可以按需要在HDFS配置中来改变。
- format:格式化配置HDFS文件系统
- ls
:列出路径指定的目录中的内容,示出了名称,权限,拥有者,大小和修改日期的每个条目 - lsr
:行为类似于-ls,但递归显示路径的所有子目录项。 - du
:显示磁盘使用率,以字节为单位 - mv :移动文件从src到dest
- cp :复制src中的文件或目录到dest
- rm
:删除文件或路径标识的空目录 - put :将本地src中的文件或目录内复制到dest
- get [-crc] :拷贝 src 的文件或目录到本地dest
2. MapReduce
MapReduce是一种基于Java的分布式计算的处理技术和程序模型。 MapReduce算法包含了两项重要任务,即Map和Reduce。MapReduce的主要优点在于很容易在多个计算节点进行大规模数据处理。