Hadoop C API libhdfs

本文固定链接:https://www.askmac.cn/archives/hadoop-c-api-libhdfs.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/LibHdfs.html

 

1介绍

Libhdfs 是一个在HDFS中JNI 基础的C API 。它提供了一个HDFS APIs的子集C APIs来操作HDFS文件和文件系统。Libhdfs

Libhdfs是Hadoop分布式的一部分,并且在$HADOOP_HDFS_HOME/lib/native/libhdfs.so中预编译。Libhdfs 兼容Winddows并且可以通过hadoop-hdfs-project/hadoop-hdf根目录下的mvn来编译。(www.askmac.cn)

 

 

2 APIs

Libhdfs apis 时 Hadoop 文件系统API的一个子集。

在$HADOOP_HDFS_HOME/include/hdfs.h中的头文件描述了每个API的详细详细。(www.askmac.cn)

[Read more…]

Hadoop HFTP 指导

本文固定链接:https://www.askmac.cn/archives/hadoop-hftp-guide.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/Hftp.html

1介绍

 

HFTP 是hadoop文件系统用来让你从一个远程的hadoop HDFS集群中读取数据的组件。这个读取是通过HTTP,并且数据源是DataNodes。HFTP是一个只读的文件系统,当你试图用来写入数据或者修改文件系统状态时,会抛出异常。

[Read more…]

Hadoop HDFS 配额指导

本文固定链接:https://www.askmac.cn/archives/hadop-hdfs-quotas-guide.html

原文地址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsQuotaAdminGuide.html

1概述

 

HDFS允许管理员为名称的数量进行配额限制,并且为单独的目录设置使用空间得大小。

命名限额和空间限额是独立的,但是管理员实施的时候这2者是密切配合的(www.askmac.cn)。

 

 

2.名称限额

 

名称限额是根目录中的目录名称文件的硬性限制。如果达到了这个限制,创建文件和目录将会失败。限额也会在重命名操作上起作用,如果重命名也满足限制条件,这个操作也将失败。即使新的配额已经让当前的目录违反了,这个设置操作任然会成功(设置并不会去校验)。一个新创建的目录不会分配配额。最大的配额是Long.Max_Value。配额强制一个目录保持为空(一个目录的数量就是其自身的配额)

 

在fsimage上,配额是持续性的。当启动时,如果fsimage已经违背了一个配额(也行是fsimage被偷偷的修改),每一个违反都会打印一个警告。设置或删除创建一个日志条目的配额。

[Read more…]

测试Hadoop程序

本文固定链接:https://www.askmac.cn/archives/testing-hadoop-programs.html

测试Hadoop程序

 

本章介绍了如何在你本地集成开发环境( IDE )中对Hadoop程序进行单元测试。虽然自早期的Hadoop以来,Hadoop程序单元测试已经取得很大进展,但因为Hadoop的组件,如Mappers 和 Reducers,是在分布式环境中运行,它仍然是具有挑战性的。

我们讨论了MapReduce单元测试API,称为MRUnit,这使我们能够独立地对Mapper 和 Reducer类进行单元测试。讨论完MRUnit的限制,我们将探讨处理这些限制的LocalJobRunner类。本章结尾将着探讨MiniMRCluster类,这使我们能够在内存中运行一个完整的MapReduce框架,使其在整个MapReduce框架环境下,适合于MapReduce组件的综合测试。

 

回顾Word Counter

表8-1是你在第3章所看到的word counter的Reducer

[Read more…]

Hadoop框架入门

本文固定链接:https://www.askmac.cn/archives/getting-started-with-the-hadoop-framework.html

Hadoop框架入门

 

前几章讨论了大数据的动机,接着深入介绍市场上最重要的大数据框架-Hadoop。本章你将实际使用Hadoop,指导你完成设置Hadoop开发环境的过程,并提供一些操作系统上安装Hadoop的操作指南。然后写一个Hadoop程序,并引导你了解Hadoop架构下更深层次的概念。

 

安装类型

虽然安装Hadoop往往是有经验的系统管理员的任务,并且Hadoop的安装细节可在Apache 网站找到,但对于在各种平台上安装Hadoop有2点需要知道:

  • 要启用Hadoop程序的单元测试,Hadoop需要以独立模式安装。该过程对Linux系统来说相对简单,但对于Windows系统来说更复杂。
  • 为了能够在一个真实集群中启用Hadoop程序模拟,Hadoop提供了一个伪分布式集群的操作模式(www.askmac.cn)。

 

本章涵盖了使用Hadoop的多种模式。Hadoop开发环境是虚拟机的背景下讨论的。我们以独立模式在Windows和Linux上展示Hadoop安装(还讨论了Linux的伪集群安装)。 Hadoop是一个不断发展的软件,它的安装过程非常复杂。

附录A介绍了Windows和Linux平台的安装步骤。这些步骤须视为一套通用的安装指南。具体情况可能会有所不同。如本章中所述,Hadoop 2.x平台的开发,建议使用VM方法来安装开发环境。

[Read more…]

Hadoop 权限指导

本文固定链接:https://www.askmac.cn/archives/hadoop-permissions-guide.html

本文是官方文档的翻译,原文地址是:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsPermissionsGuide.html

 

 

1.概述

 

HDFS为文件和目录实现了一个权限模块,一大部分共享是POSIX模式。每个文件和目录关联到一个用户和一个组。文件和目录以用户所有者来权限划分,其他的用户可以是一个组的成员,也可以是所有其他的用户。对于文件来说,r 权限是读文件的权限,w 权限是写或者追加到文件的权限。对于目录来说,r权限是列出目录内容的权限,w权限是删除和创建文件或目录的权限,x权限是访问子目录的权限。

于POSIX模式对比,文件没有setuid或setgid位,因为没有可执行文件的概念。同样地,对于目录也没有setuid和setgid位。粘贴位可以被设置在目录上,可以防止除了超级用户之外,目录所有者或文件所有者在这个目录中删除或移动文件。在文件上设置粘贴位没有作用。总的来说,一个文件或目录的权限是它们的模式。一般来说,Unix用户的表现模式将被使用,包括这个表述上的8进制方法。当文件或目录被创建,它们的所有者是客户端进程的标识,它们的组时父目录的组(BSD规则)。

HDFS也提供了POSIX ACLs(访问控制列表)支持,来增加对特定命名用户或命名组的更细粒度规则的文件权限。ACLs在后面有更详细的讨论(www.askmac.cn)。

每个客户端进程访问HDFS拥有2部分标识:用户名和组列表。当文件和目录被一个客户端进程访问时,HDFS必须进行权限检查。

  • 如果用户名匹配所有者,那么所有者权限是通过的。
  • 如果组权限匹配组列表中任何一个成员,那么组权限是通过的。
  • 否则,其他权限是通过的。

如果权限检查失败,客户端操作就失败。

[Read more…]

Hadoop概念

本文固定链接:https://www.askmac.cn/archives/hadoop-concepts.html

 

 

Hadoop概念

 

应用程序经常需求,超过廉价(商品)机器上可用的更多资源。许多组织发现自己的业务流程不再适合在单一的、具有成本效益的计算机上进行。一个简单却昂贵的解决方案是购买耗费大量内存,并具有多个CPU的专门机器 。该解决方案可最快扩展至机器所支持的程度,但是唯一的限制因素通常是你的预算。另一种解决方案是建立一个高可用性集群,它通常试图看起来像一个单台机器,并且通常需要非常专业化的安装和管理服务。许多高可用性集群都是有版权并且昂贵的。

 

获取必要的计算资源的一种更经济的解决方案是云计算。一种常用模式是:那些需要被转换的批量数据,其中每个数据项的处理基本上独立于其他数据项;也就是说,通过使用单指令,多数据(SIMD )方案。Hadoop提供一个云计算的开源框架,以及一个分布式文件系统。

本书的设计意图是作为使用Hadoop,一个由Apache软件基金会主办的项目,来开发和运行软件的实用指南。本章将为你介绍Hadoop的核心概念。目的是为下一章的内容做准备,下一章中你将了解Hadoop的安装和运行(www.askmac.cn)。

 

Hadoop介绍

 

Hadoop是以发表于2004年的有关MapReduce的Google文章为基础,其发展始于2005年。当时,Hadoop的开发是为了支持一个叫做Nutch的开源网络搜索引擎项目。最终,Hadoop从Nutch中分离出来,成为Apache基金会下自己的一个项目。

今天Hadoop是市场上最知名的MapReduce框架。目前,有几家围绕Hadoop的公司已经发展到提供Hadoop软件的支持、咨询和培训服务。

Hadoop的核心是一个基于Java的MapReduce框架。然而,由于Hadoop平台的迅速普及,支持非Java用户群体很有必要。Hadoop已经发展到拥有以下改进,和支持该群体的子项目,并将其范围扩大到企业。

[Read more…]

Hadoop 大数据的动机

本文固定链接:https://www.askmac.cn/archives/motivation-for-big-data.html

 

 

hadoop 大数据的动机

20多年前的计算机革命使得大量的数据正被企业集聚起来。数字传感器的发展、通信系统的激增,尤其是移动平台和设备;对系统事件大规模的日志记录;以及朝着无纸化企业的迅速发展,这些导致企业内部数据资源的大规模集聚。企业对技术的依赖确保了数据将继续以更快的速度增长。

摩尔定律称计算机的性能一直以来都是几乎每两年就会比过去翻一番,最初计算资源与数据增长速度保持一致。然而,2005年左右这种计算资源的发展速度开始逐渐减缓。

计算行业开始寻找其他选择,即并行处理以提供更经济的解决方案。如果一台计算机不能​​变得更快,则其目标是用大量计算资源来并行处理同样的问题。Hadoop是网络中的多台计算机运用MapReduce扩展数据处理(单指令的变体,计算技术的多数据[SIMD]类)的概念的实现。

基于云计算通过供应商如亚马逊,谷歌和微软等不断演变,推动了这一概念的发展,因为我们现在可以租用计算资源来节省购买这些所需的一小部分成本(www.askmac.cn)。

本书是设计意图是使用Hadoop,一个由Apache软件基金会主办,现已扩展并由各供应商,如Cloudera,MapR和Hortonworks支持的项目,来开发和运行软件的实用指南。本章将从总体上讨论大数据尤其是Hadoop的动机。

[Read more…]

Hadoop offline image viewer guide

本文固定链接:https://www.askmac.cn/archives/hadoop-offline-image-viewer-guide.html

本文是官方文档的翻译,原文地址是:

http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsImageViewer.html

 

1.概述

 

Offline Image Viewer是一个专场将hdfs fsimage文件中的文件到可读的格式的工具,提供了一个只读的WebHDFS API 来允许离线分析和检查Hadoop 集群的namespace。这个工具可以相对较快的处理非常大的image文件。这个工具处理布局格式包含了hadoop 2.4版本及以上。如果你想处理旧的布局格式,你可以使用hadoop 2.3版本的 Offline Image Viewer或者 oiv_legacy命令。如果这个工具不能够处理一个镜像文件,其将干净地退出。Offline Image Viewer不需要hadoop集群是正在运行的;其操作完全处于offline状态。

 

Offline Image Viewer 提供了一系列输出进程:

1.Web 是默认的输出进程。它发动一个HTTP服务,暴露只读的WebHDFS API。用户可以通过HTTP REST API来探讨namespace的交互。

2.XML 创建了一个fsimage的XML文件,其中包含了fsimage的所有信息,类似于lsr进程。这个进程的输出是自动化的过程,并且被XML工具分析。由于XML 冗长的语法,这个进程将输出大量的输出(www.askmac.cn)。

3.FileDsitribution 用来分析namespace image中的文件大小。为了运行这个工具,必须定义一个整数范围[0,maxSize],并且同时指定一个maxSize。这个整数范围划分为每一步的段:[0,s[1],…,s[n-1],maxsize],而且进程计算每个段(s[i-1],s[i])中的文件数。注意文件超过maxsize的总是会放入最后一个段中。输出文件是以tab分隔的2个字段:SIZE和NumFiles的表。size代表开始的段,numFiles表示从image装入这个段的文件数目。

4.Delimited(实现性质的):生成一个text 文件,包含所有节点和节点以内建设的常见元素,以分隔符封。默认的分隔符是\t,通过-delimiter参数可以改变。

[Read more…]

Hadoop Input/Output

本文固定链接:https://www.askmac.cn/archives/hadoop-inputoutput.html

 

 

Hadoop Input/Output

  

前几章具体概述了编程模型MapReduce的概念,在第五章末我们开始进一步研究实施Hadoop的方式。本章内容在那一理念上进行延伸。首先,我们会解释压缩方案,接着会对Hadoop的I/O展开详尽的讨论。我们会讲述各种类型的文件,例如Sequence文件和Avro文件。在此过程中,你们会对MapReduce是如何在Hadoop引擎内部运行,有更进一步的理解。

压缩方案

目前为止,你已经了解了MapReduce的基本原理。

MapReduce是一种I/O密集化的过程。降低或优化I/O是提高MapReduce程序运行的关键。

Hadoop Framework提供了几种可行性来减少I/O。第六章我们通过使用Combiner来减少Mapper和Reducer之间的I/O。本章我们将探讨能够最大程度优化MapReduce的I/O运行的压缩方案。

首先我们先快速浏览一下涉及到I/O的各种MapReduce步骤:

  1. 读取HDFS中的文件时,输入到Mapper中。
  2. 从Mapper中输出的文件会放到本地磁盘。
  3. 由于Reducer从Mapper节点中接收文件,Reducer 和 Mapper之间会有网络I/O。
  4. 从Mapper节点接收分区然排序后,合并到本地磁盘存储到Reducer节点。
  5. 回读本地磁盘的文件作为记录,可供Reducer中的reduce方法使用。
  6. 从Reducer输出——这是写回HDFS。

 

在任何MapReduce程序中,I/O是最昂贵的操作,任何能减少磁盘或者网络I/O,都可以获取更佳的总体吞吐量。Hadoop架构让你可以压缩从Mapper和Reducer中输出的文件,但是却需要权衡一下:压缩会大量占用CPU资源,而且会消耗CPU的周期。任何用于压缩的CPU的周期都将损耗其他程序,比方说Mapper, Reducer, Partitioner, Combiner, Sort 和Shuffle等等。就像在Hadoop中的大多数决定一样,在设计的时候必须要认真地把资源权衡考虑在内(www.askmac.cn)。

 

[Read more…]

沪ICP备14014813号-2

沪公网安备 31010802001379号