Hadoop实战-中高级部分 之 Hadoop RestFul,hadooprestful
Hadoop实战-中高级部分 之 Hadoop RestFul浏览(8094)|评论(2) 交流分类:Java|笔记分类: Hadoop实战-中……
Hadoop RestFul Hadoop HDFS原理1 Hadoop HDFS原理2 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 |
| 操作 | 参考 |
| 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 |
| 操作 | 参考 |
| APPEND | FileSystem.append |
| DELETE | FileSystem.delete |
持文件的上传和下载,所以是一个综合传输工具,但是按照传统,用户习惯称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>] “
本站文章为和通数据库网友分享或者投稿,欢迎任何形式的转载,但请务必注明出处.
同时文章内容如有侵犯了您的权益,请联系QQ:970679559,我们会在尽快处理。