4 HDFS的操作与编程.pdf

  1. 1、本文档共34页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4 HDFS的操作与编程

Hadoop程序设计环境 基本程序的编写 NEW_CLASSPATH=${HADOOP_PATH}/hadoop- 0.20.1- core.jar:${HADOOP_PATH}/lib/*:${HADOOP_PATH}/ lib/jetty-ext/*:${CLASSPATH} 上述是Hadoop提供的包,类关系都在上述的包中 注意,不同的hadoop版本提供的包并不相同,但是所有的编 程包都放置在hadoop/lib目录下 docs/api/里面给出了接口文档 Hadoop程序的编译(Makefile) JAVA_HOME=/usr/jdk PATH:=${JAVA_HOME}/bin:${PATH} HADOOP_PATH=/home/hadoop/hadoop-0.20.1 NEW_CLASSPATH=${HADOOP_PATH}/hadoop-0.20.1- core.jar:${HADOOP_PATH}/lib/*:${HADOOP_PATH}/lib/jetty- ext/*:${CLASSPATH} SRC = $(wildcard *.java) all: build build: ${SRC} ${JAVA_HOME}/bin/javac -classpath ${NEW_CLASSPATH} ${SRC} ${JAVA_HOME}/bin/jar cvf build.jar *.class 将build.jar改变成任意的名字,例如wc.jar 例子程序是从源代码中获得的WordCount.java,把第一行,即package 这一行删除,使得最后的包是第一级的包,而不是深入到具体的目录中 程序的编译过程 如何在eclipse中编写和编译运行HDFS的读写程序: hadoop-core-x.x.x.jar和它所依赖的库导入到eclipse工程 的build path中。这个首先需要先下载解压hadoop包。然后 在eclipse中,通过右键工程-属性-Java Build Path- Libraries-Add External JARs,在解压后的hadoop目 录中点选hadoop-core-x.x.x.jar和lib目录下所有的.jar即可。 配置环境 下载hadoop安装包, 解压缩之后将所需要 的jar包通过Add External Jars加入 项目中 新建项目,编写代码 导出jar文件 运行程序 bin/hadoop fs –mkdir input bin/hadoop fs –put file inputpath bin/hadoop jar *.jar inputpath outputpath HDFS程序设计 HDFS核心思想 文件副本 分片保存 一次写入 多次读取 顺序写入 流式顺序读取 HDFS文件系统的特征 存储极大数目的信息(terabytes or petabytes),将数据 保存到大量的节点当中。支持很大单个文件。 提供数据的高可靠性,单个或者多个节点不工作,对系统不会 造成任何影响,数据仍然可用。 提供对这些信息的快速访问,并提供可扩展的方式。 HDFS是针对MapReduce设计的,使得数据尽可能根据其本 地局部性进行访问与计算。 HDFS的设计 基于块的文件存储 块进行复制的形式放置,按照块的方式随机选择存储节点 副本的默认数目是3,并可以通过配置文件进行制定 默认的块的大小是64MB ? 减少元数据的量 ? 有利于顺序读写(在磁盘上数据顺序存放) 依据Google File System的设计进行实现 HDFS系统结构中的主要模块 HDFS系统结构:使用了Master与Worker的结构,具有一个单个的Master 以及多个Worker的结构,Master被称为名字节点NameNode,Worker被称 为数据节点DataNode NameNode: ? 名字服务器运行在一个Master的服务器之上 ? NameNode管理所有文件系统的名字空间(元数据)以及协调管理客户端对于数据 的访问 ? NameNode存储以及调整整个文件系统中的元数据 DataNode: ? 运行在集群中的绝大多数节点之上 ? 管理文件系统中的数据存储 ? 从NameNode中接收命令,并对数据进行组织管理上的操作(如负载均衡) ? 响应文件系统客户端的读写访问命令,提供数据服务 数据通信的协议使用TCP/IP协议,使用RPC进行远程信息访问请求 Master与Worker

文档评论(0)

l215322 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档