linux cpu占用率如何看
272
2022-11-16
TDH-使用httpFS接口操作说明
星环-使用hdfs的一个REST API 可以对hdfs进行读写等访问。与WebHDFS的区别是不需要客户端可以访问hadoop集群的每一个节点,通过DistCP。HttpFS可以通过HTTP工具(比如curl和wget)和各种编程语言的HTTP包(不局限Java)来访问数据。webhdfs 客户端文件系统实现可以使用HDFS文件系统命令行命令(如hadoop dfs)以及使用HDFS Java API来访问HttpFS。HttpFS内置安全特性支持Hadoop伪身份验证和HTTP SPNEGO Kerberos 和其他插件式(pluggable )验证机制。它还提供了Hadoop代理用户的支持。Hdfs2.7.2版本的介绍官网地址:-X GET 'token在guardian中获取。Operation支持的操作: OPEN(HTTP_GET), GETFILESTATUS(HTTP_GET), LISTSTATUS(HTTP_GET), GETHOMEDIRECTORY(HTTP_GET), GETCONTENTSUMMARY(HTTP_GET), GETFILECHECKSUM(HTTP_GET), GETFILEBLOCKLOCATIONS(HTTP_GET), INSTRUMENTATION(HTTP_GET), GETACLSTATUS(HTTP_GET), APPEND(HTTP_POST), CONCAT(HTTP_POST), TRUNCATE(HTTP_POST), CREATE(HTTP_PUT), MKDIRS(HTTP_PUT), RENAME(HTTP_PUT), SETOWNER(HTTP_PUT), SETPERMISSION(HTTP_PUT), SETREPLICATION(HTTP_PUT), SETTIMES(HTTP_PUT), MODIFYACLENTRIES(HTTP_PUT), REMOVEACLENTRIES(HTTP_PUT), REMOVEDEFAULTACL(HTTP_PUT), REMOVEACL(HTTP_PUT), SETACL(HTTP_PUT), DELETE(HTTP_DELETE), SETXATTR(HTTP_PUT), GETXATTRS(HTTP_GET), REMOVEXATTR(HTTP_PUT), LISTXATTRS(HTTP_GET);
3.java api访问
3.java api访问主要使用commons-/tmp目录下,上传的本地文件是mydata,上传到hdfs上的文件名是aaa(hdfs上要指定一个文件名)。上传时url中的op参数为CREATE,因为上传相当于在hdfs上创建文件。注意url中的data=TRUE参数,上传文件一定要加这个参数。
import java.io.File;import java.io.FileInputStream;import org.apache.commons.org.apache.commons.class UpLoad{ public static void main(String[] args) { String url = " HttpClient client = new HttpClient(); int status = -1; PutMethod method = new PutMethod(url); method.setRequestHeader("Content-Type","application/octet-stream"); try { // 设置上传文件 File targetFile = new File("mydata"); FileInputStream in =new FileInputStream(targetFile); method.setRequestBody(in); status = client.executeMethod(method); System.out.println(status); } catch (Exception e) { e.printStackTrace(); } method.releaseConnection(); }}下载示例:把hdfs /tmp目录下的aaa文件下载到本地,本地文件名为mydata12。url中的op参数为open没有data=TRUE参数``import java.io.File;import java.io.FileOutputStream;import org.apache.commons.org.apache.commons.class DownLoad { public static void main(String[] args) { String url = " HttpClient client = new HttpClient(); int status = -1; GetMethod method = new GetMethod(url); try { // 设置下载文件 File file = new File("mydata12"); status = client.executeMethod(method); byte[] getData= method.getResponseBody(); FileOutputStream fos = new FileOutputStream(file); fos.write(getData); if(fos!=null){ fos.close(); } } catch (Exception e) { e.printStackTrace(); } method.releaseConnection(); }}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~