- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 2011年高等学校招生全国统一考试 英语(安徽卷).doc
- 2011年高等学校招生全国统一考试(安徽卷.doc
- 2011改善皮肤最好用的方法.pdf
- 2012 AutoCAD初级工程师参考样题.pdf
- 2012-2013学年市南区二模试题--香中.doc
- 2012-2013年学年度下学期七年级英语段考试卷.doc
- 2012-Nature-Rasmussen-Deposition of 1.88-billion-year-old iron formations.pdf
- 2012.01.12 Cysteine methylation disrupts ubiquitin-chain sensing in NF-kB activation.pdf
- 2012M空间介绍(含英文排版2)潘.pdf
- 2012_MAF_Gift_Card_Contest_Ops.pdf
文档评论(0)