`

Hadoop实战-中高级部分 之 Hadoop RestFul

 
阅读更多

Hadoop HDFS原理
Hadoop作业调优参数调整及原理
Hadoop HA
Hadoop MapReduce高级编程
Hadoop IO
Hadoop MapReduce工作原理
Hadoop 管理
Hadoop 集群安装
Hadoop RPC
本节课程概览
什么是REST 与RESTful
Hadoop的RESTful API接口
API示例
第一部分:什么是REST RESTful
•什么是REST及RESTful
 REST 描述了一个架构样式的互联系统(如 Web 应用程序)。REST 约束条件作为一个整体应用时,将生成一个简单、可扩展、有效、安全、可靠的架构。由于它简便、轻量级以及通过 HTTP 直接传输数据的特性,RESTful Web 服务成为基于 SOAP 服务的一个最有前途的替代方案。用于 web 服务和动态 Web 应用程序的多层架构可以实现可重用性、简单性、可扩展性和组件可响应性的清晰分离。Ajax 和 RESTful Web 服务本质上是互为补充的。开发人员可以轻松使用 Ajax 和 RESTful Web 服务一起创建丰富的界面。
REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。 
•RESTful 原则
• 客户端和服务器之间的交互在请求之间是无状态的。 从客户端到服务器的每个请求都必须包含理解请求所必需的信息。如果服务器在请求之间的任何时间点重启,客户端不会得到通知。此外,无状态请求可以由任何可用服务器回答,这十分适合云计算之类的环境。客户端可以缓存数据以改进性能。
•在服务器端,应用程序状态和功能可以分为各种资源。资源是一个有趣的概念实体,它向客户端公开。资源的例子有:应用程序对象、数据库记录、算法等等。每个资源都使用 URI (Universal Resource Identifier) 得到一个惟一的地址。所有资源都共享统一的界面,以便在客户端和服务器之间传输状态。使用的是标准的 HTTP 方法,比如 GET、PUT、POST 和 DELETE。Hypermedia 是应用程序状态的引擎,资源表示通过超链接互联。
 
• 分层系统,这表示组件无法了解它与之交互的中间层以外的组件。 通过将系统知识限制在单个层,可以限制整个系统的复杂性,促进了底层的独立性。
REST 实现方式
• RESTful Web 服务与 RPC 样式的 Web 服务
• WebService
• RESTful Web 服务的 Java 框架
•Restlet
•JSR-311
• 构建 RESTful Web 服务的多层架构
• SSH
  
REST 特点
•REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表示方式。获得这些表徵致使这些应用程序转变了其状态。随着不断获取资源的表示方式,客户端应用不断地在转变着其状态
 
REST 中的资源操作
•资源是由URI来指定。
•对资源的操作包括获取、创建、修改和删除资源,这些操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。
•通过操作资源的表现形式来操作资源。
•资源的表现形式则是XML或者HTML,取决于读者是机器还是人,是消费web服务的客户软件还是web浏览器。当然也可以是任何其他的格式。
 
RESTful API 要求
•客户端和服务器结构
•连接协议具有无状态性
•能够利用Cache机制增进性能
•层次化的系统 随需代码 - Javascript (可选)
REST的优点
•可以利用缓存Cache来提高响应速度
•通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性 浏览器即可作为客户端,
•简化软件需求
•相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小 不需要额外的资源发现机制
•在软件技术演进中的长期的兼容性更好
 
RESTful Web 服务
•RESTful Web 服务(也称为 RESTful Web API)是一个使用HTTP并遵循REST原则的Web服务。
• Web服务接受与返回的互联网媒体类型,比如:JSON,XML ,YAML 等
•Web服务在该资源上所支持的一系列请求方法(比如:POST,GET,PUT或DELETE)。
•不像基于SOAP的Web服务,RESTful Web服务并没有的“正式”标准。 这是因为REST是一种架构,而SOAP只是一个协议。虽然REST不是一个标准,但在实现RESTful Web服务时可以使用其他各种标准(比如HTTP,URL,XML,PNG等)。
第二部分:Hadoop RESTful API接口
Hadoop RESTful API 介绍
•全称为webHDFS
•在Hadoop 1.0 提供
Hadoop RESTful API-Get 
操作
参考
 
OPEN
 
FileSystem.open
GETFILESTATUS
FileSystem.getFileStatus
 
GETCONTENTSUMMARY
FileSystem.getContentSummary
 
LISTSTATUS FileSystem.listStatus
GETFILECHECKSUM
 
FileSystem.getFileChecksum
 
GETHOMEDIRECTORY
 
FileSystem.getHomeDirectory
 
GETDELEGATIONTOKEN
FileSystem.getDelegationToken
 
Hadoop RESTful API-Put
操作
参考
 
CREATE
 
FileSystem.create
MKDIRS
FileSystem.mkdirs
 
RENAME FileSystem.rename
SETREPLICATION FileSystem.setReplication
SETOWNER
 
FileSystem.setOwner
 
SETPERMISSION
 
FileSystem.setTimes
SETTIMES
FileSystem.getDelegationToken
 
RENEWDELEGATIONTOKEN
DistributedFileSystem.renewDelegationToken
 
CANCELDELEGATIONTOKEN DistributedFileSystem.cancelDelegationToken
 
Hadoop RESTful API-Post与Delete
操作
参考
 
APPEND FileSystem.append
DELETE
FileSystem.delete
 
 
 
第三部分:API 示例
Hadoop RESTful API 示例
•什么是curl
             curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER,  TELNET, DICT, FILE 以及 LDAP。
            curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP 上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认证, 下载文件断点续传, 上载文件断点续传,  http代理服务器管道( proxy tunneling), 甚至它还支持IPv6, socks5代理服务器, 通过http代理服务器上传文件到FTP服务器等等,功能十分强大。Windows操作系统下的网络蚂蚁,网际快车(FlashGet)的功能它都可以做到。准确的说,curl支 
持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称curl为下载工具。
 
配置RESTful API 可用
• 安装sudo apt-get install curl
• 在HDFS中设置 dfs.webhdfs.enabled = true
示例
1.创建并写一个文件
• curl -i -X PUT "http://localhost:50070/webhdfs/v1/<PATH>?op=CREATE
[&overwrite=<true|false>][&blocksize=<LONG>][&replication=<SHORT>]
[&permission=<OCTAL>][&buffersize=<INT>]“
•curl -i -X PUT -T <LOCAL_FILE> "http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?
op=CREATE...“
注意这个地方填入的是DataNode的信息
2.在一个文件内追加内容
•curl -i -X POST "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=APPEND[&buffersize=<INT>]”
•curl -i -X POST -T <LOCAL_FILE> "http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?
op=APPEND...“
注意该条命令获得的是DataNode的信息。
 
3.打开并读取一个文件
•curl -i -L "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=OPEN
[&offset=<LONG>][&length=<LONG>][&buffersize=<INT>]“
 
4.创建一个目录
curl -i -X PUT "http://<HOST>:<PORT>/<PATH>?op=MKDIRS[&permission=<OCTAL>]“
5.重名命文件、文件夹
curl -i -X PUT "<HOST>:<PORT>/webhdfs/v1/<PATH>?op=RENAME&destination=<PATH>"
6.删除文件/文件夹
curl -i -X DELETE "http://<host>:<port>/webhdfs/v1/<path>?op=DELETE
[&recursive=<true|false>] 
7.文件/ 文件夹的状态信息
curl -i “http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILESTATUS ”
8.目录列表
curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=LISTSTATUS 
9.获取目录的上下文环境汇总信息
curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETCONTENTSUMMARY"
10.获取Check Sum File
curl -i "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=GETFILECHECKSUM 
11 .获取Home 目录
curl -i "http://<HOST>:<PORT>/webhdfs/v1/?op=GETHOMEDIRECTORY 
12.设置权限
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETPERMISSION
[&permission=<OCTAL>] 
13.设置所有者
curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETOWNER
[&owner=<USER>][&group=<GROUP>]"
14.设置备份
 curl -i -X PUT "http://<HOST>:<PORT>/webhdfs/v1/<PATH>?op=SETREPLICATION
[&replication=<SHORT>] 
 
转载请注明出处【  http://sishuok.com/forum/blogPost/list/0/5461.html 】
3
2
分享到:
评论

相关推荐

    基于HADOOP的网盘前端.zip

    3. **Hadoop编程接口**:使用Java的Hadoop API进行数据读写和处理,或者使用更高级的工具如Pig、Hive和Spark等。 4. **分布式文件系统原理**:理解HDFS的块级存储、副本策略和容错机制。 5. **Web前端技术**:如...

    Hadoop之Hbase从入门到精通

    总结而言,HBase作为Hadoop生态系统中的一个重要组成部分,不仅提供了强大的数据存储功能,还集成了丰富的数据访问和处理手段。通过深入理解HBase的核心概念和技术特性,开发者能够更好地利用HBase来解决实际问题,...

    大数据云计算技术系列 Hadoop之Hbase从入门到精通(共243页).pdf

    《大数据云计算技术系列:Hadoop之Hbase从入门到精通》 HBase,全称Hadoop Database,是一款基于Hadoop生态系统的分布式列式存储系统,旨在处理海量结构化数据。它借鉴了Google Bigtable的设计思想,但开源并适应了...

    卢亿雷-Hadoop生态系统分析

    实时计算领域,Apache Spark是Hadoop生态系统中最重要的组件之一,它是一个快速的大数据分析引擎。Spark支持内存计算,可以快速执行大数据的批处理和流处理任务。 存储和消息队列方面,Apache Kafka和Apache ...

    spark研究分析&restful架构

    Spark 以其高效的数据处理能力和易用性在大数据领域占据了主导地位,而 RESTful 架构则因其清晰的设计风格和良好的可扩展性而在分布式系统设计中得到广泛应用。结合这两种技术,可以构建出强大且灵活的数据处理和...

    云盘项目 基于hadoop集群.zip

    在本项目中,云盘服务被设计为在Hadoop集群上运行,以实现高效、可扩展的数据存储和访问。 首先,我们需要理解Hadoop的核心组件:HDFS和MapReduce。HDFS是Hadoop的分布式文件系统,它将大文件分割成块并分布在不同...

    Hadoop之Hbase从入门到精通.doc

    ### Hadoop之Hbase从入门到精通 #### HBase 技术概览 **HBase**,即Hadoop Database,是一种高性能、高可靠性的分布式存储系统,它支持面向列的数据组织方式,具备良好的可伸缩性。通过使用HBase技术,用户可以在...

    基于Django和Hadoop集群进行的大数据分析平台.zip

    4. **数据集成**:Hadoop生态系统中的其他工具,如Hive(SQL查询工具)、Pig(数据流处理)和Spark(内存计算框架),可以与Django集成,提供更复杂的数据分析和处理功能。 在实际应用中,Django通常作为前端接口,...

    基于Hadoop和Django开发的用户画像系统.zip

    在这个项目中,Hadoop和Django两个技术被巧妙地融合在一起,Hadoop负责处理海量数据,Django则构建用户交互的Web界面。 【Hadoop】是Apache基金会开源的大数据处理框架,基于分布式计算模型MapReduce。它能处理PB...

    10.Hadoop入门进阶课程_第10周_HBase介绍、安装与应用案例.pdf

    ### HBase介绍、安装与...总之,HBase作为Hadoop生态系统中的重要组件之一,为大数据的存储和处理提供了强大的支持。通过了解其基本概念、数据模型、访问接口及应用场景,可以帮助开发者更好地利用HBase解决实际问题。

    基于hadoop开发分布式爬虫,后端django,前端vue.zip

    【描述】: 在这个项目中,我们将探讨如何利用Hadoop构建分布式爬虫系统,以及如何结合后端的Django框架和前端的Vue.js技术来实现数据处理和展示。这是一个综合性的IT项目,涵盖了大数据处理、Web开发和现代前端技术...

    HBase学习利器:HBase实战

    HBase是Apache Hadoop生态系统中的一个分布式、可扩展的列族数据库,它提供了类似Bigtable的能力,能够在大规模数据集上进行随机读写操作。HBase是基于Hadoop Distributed File System (HDFS)构建的,能够处理PB级别...

    Hbase+Spring boot实战分布式文件存储

    第4章 HBase进阶 讲解HBase的高级特性,常用的优化策略,协处理器等,并实战开发协处理器,将开发的协处理器加载到HBase测试环境,验证其功能 4-1 HBase优化策略一:服务端优化策略 4-2 HBase优化策略二:常用优化...

    Ceph分布式存储实战doc

    - 提供了高级API,简化了开发过程中的复杂性。 #### 6. CRUSH算法原理及应用 - **Object与PG**: - Object: 数据的基本单位。 - Placement Group(PG): 数据被划分到多个PG中,每个PG包含若干个OSD,提高数据分布...

    Elasticsearch技术解析与实战 ,朱林(完整板)

    **Elasticsearch技术解析与实战** ...通过《Elasticsearch技术解析与实战》这本书,读者不仅可以理解Elasticsearch的基本概念和技术,还能了解到实际应用中的策略和技巧,提升在大数据搜索和分析领域的专业技能。

    Python最佳学习路线图

    - 开发简单的RESTful API接口。 - 部署Flask应用到服务器。 **10. Tornado框架** - **基础知识:** - Tornado异步非阻塞I/O框架。 - WebSocket实时通信。 - **实践操作:** - 构建实时聊天室系统。 - 实现...

    java并发编程实战、驾校K1考试试卷批量生成源代码(分布式应用和Vue)

    在IT行业中,Java并发编程是开发高性能分布式应用的关键技术之一,尤其在当今大数据处理和云计算领域,对并发处理的需求日益增长。"Java并发编程实战"这部分内容主要涉及如何有效地利用多核处理器,提高程序的执行...

    Hbase实战

    本文将深入探讨HBase的核心概念、架构、功能以及在实际项目中的应用,旨在帮助读者掌握HBase的基本操作和高级技巧。 一、HBase概述 HBase源于Google的Bigtable论文,是Apache Hadoop生态系统的一员,专为处理大规模...

Global site tag (gtag.js) - Google Analytics