前面已经讲过hadoop伪分布式和分布式环境搭建,参考大数据时代之Hadoop集群搭建

本来想直接搞java代码操作hdfs的,想了想还是先简单的复习下命令行操作hdfs吧。其实hdfs操作起来是操作linux系统的文件个人认为很相似,只不过命令前面要加个hdfs dfs -或者hadoop fs -,如:

#新建目录
hdfs dfs -mkdir <path>
或
hadoop fs -mkdir /test

这里就不得不问hadoop fs和hdfs dfs的区别是什么了。
参考:Hadoop:hadoop fs、hadoop dfs与hdfs dfs命令的区别

言归正传,下面讲解java如何操作hdsf文件系统:
pom.xml,hadoop依赖版本尽量保证和服务器上hadoop版本一致

<properties><hadoop-version>2.6.5</hadoop-version>
</properties><dependencies><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-common</artifactId><version>${hadoop-version}</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-client</artifactId><version>${hadoop-version}</version></dependency><dependency><groupId>org.apache.hadoop</groupId><artifactId>hadoop-hdfs</artifactId><version>${hadoop-version}</version></dependency></dependencies>

HdfsUtil.java

public class HdfsUtil {private Configuration configuration;private FileSystem fileSystem;/*** init* @param url* @param user* @return* @throws IOException* @throws InterruptedException*/public static HdfsUtil getUtil(String url,String user) throws IOException, InterruptedException {HdfsUtil util = new HdfsUtil();util.configuration = new Configuration();util.fileSystem =FileSystem.get(URI.create(url),util.configuration,user);return util;}/*** 创建目录* @param filePath* @return*/public boolean createPath(String filePath) {boolean b = false;Path path = new Path(filePath);try {b = this.fileSystem.mkdirs(path);} catch (IOException e) {e.printStackTrace();} finally {try {this.fileSystem.close();} catch (IOException e) {e.printStackTrace();}}return b;}/**<br>功能描述:  判断该路径是否存在,所指路径是文件还是文件夹<br>处理逻辑:<br>作者: lwl liuwanli_eamil@163.com 2018/12/25 15:08<br>修改记录: {修改人 修改原因 修改时间}* @param* @throws* @return int   0:不存在  1:文件  2:文件夹* @see #*/public int checkFile(String filePath) {Path path = new Path(filePath);int result = 0;try {if(this.fileSystem.exists(path)){if(this.fileSystem.isDirectory(path)){result = 2;}else{result = 1;}}} catch (IOException e) {e.printStackTrace();} finally {try {this.fileSystem.close();} catch (IOException e) {e.printStackTrace();}}return result;}/*** 上传文件* @param sourcePath* @param savePath*/public void uploadFile(String sourcePath, String savePath){Path source = new Path(sourcePath);Path disc = new Path(savePath);try {this.fileSystem.copyFromLocalFile(source,disc);} catch (IOException e) {e.printStackTrace();}finally {try {this.fileSystem.close();} catch (IOException e) {e.printStackTrace();}}}public void uploadFile(InputStream input, String savePath) throws IOException {this.fileSystem.createNewFile(new Path(savePath));Path inFile = new Path(savePath);FSDataOutputStream output = this.fileSystem.create(inFile);IOUtils.copyBytes(input,output,1024*1024*64,false);output.close();}/*** 下载文件* @param sourcePath* @param out* @throws IOException*/public void dowonloadFile(String sourcePath, OutputStream out) throws IOException {this.fileSystem.createNewFile(new Path(sourcePath));Path inFile = new Path(sourcePath);FSDataInputStream input = this.fileSystem.open(inFile);IOUtils.copyBytes(input,out,1024*1024*64,false);input.close();}public static void main(String[] args) throws IOException, InterruptedException {String url = "hdfs://my-cdh-master:9000";//注意端口9000跟core-site.xml的fs.defaultFS配置匹配HdfsUtil util = HdfsUtil.getUtil(url,"root");util.uploadFile("H:\\VMachines\\my_cdh_slave1\\vmware.log","/test/vmware.log");}

hdfs的更多操作根据具体需要参考api
至此java操作hdfs完成~~~~

大数据时代之java操作hdsf相关推荐

  1. 大数据时代,Java还行吗?

    Java 自诞生到现在的 25 年时间里,一直占据着"天下第一"编程语言的宝座.尽管网络上常常充斥着"Golang/Python 将取代 Java "的唱衰论, ...

  2. ASO优化在大数据时代应该怎么操作,aso优化如何操作

    作为苹果唯一的官方应用下载渠道,App Store让人又爱又恨,几乎所有的App开发商都要投入不小的精力对它进行长期的优化,以更多地获取App Store带来的产品曝光度和用户下载量. 在ASO营销的 ...

  3. 玩转大数据之——通过java操作office/wps的 EXCEL

    操作Office文档,要用到apache公司的一个工具包: poi-3.7-20101029.jar poi插件的使用方式类似dom技术 不同版本: 接下来进行演示功能: 1.用纯Java技术实现创建 ...

  4. 大数据开发和Java开发的技术要求有什么联系?

    每家公司对大数据工作和java开发的要求不尽相同,目前长期从事数据库管理.挖掘.编程工作的人,包括传统的量化分析师.hadoop方面的工程师,以及任何在工作中需要通过数据来进行判断决策的管理者,比如某 ...

  5. 大数据时代,为什么很多JAVA程序员会转型做JAVA大数据

    分享之前推荐一个大数据交流学习群:722680258零基础进阶高级,需要学习大数据欢迎加入 JAVA的精密,强大,拥有其它语言不可替代的性能和可维护性,早已经是成为最受欢迎的编程语言之一,很多人想进入 ...

  6. 大数据时代,做大数据开发要学Java框架吗?

    在当今的大数据时代背景下,大数据的脚步会越来越快,大数据相关技术的运用将对我们生活的各个方面产生影响,包括出行.办公.教育.医疗.金融等等领域.在我看来,大数据的发展能进一步挖掘互联网的价值,是一场新 ...

  7. 柯南君:看大数据时代下的IT架构(5)消息队列之RabbitMQ--案例(Work Queues起航)...

    二.Work Queues(using the Java Client) 走起 在第上一个教程中我们写程序从一个命名队列发送和接收消息.在这一次我们将创建一个工作队列,将用于分发耗时的任务在多个工作者 ...

  8. 大数据时代的技术hive:hive介绍

    转自:http://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html 我最近研究了hive的相关技术,有点心得,这里和大家分享下. ...

  9. 2015年《大数据》高被引论文Top10文章No.2——大数据时代的数据挖掘 —— 从应用的角度看大数据挖掘(上)...

    2015年<大数据>高被引论文Top10文章展示 [编者按]本刊将把2015年<大数据>高被引论文Top10的文章陆续发布,欢迎大家关注!本文为高被引Top10论文的No.2, ...

最新文章

  1. ★☆★ lc 847. Shortest Path Visiting All Nodes
  2. 解决oracle语句中 含数字的字符串按数字排序问题
  3. 2020\Simulation_2\3.单词重排
  4. 绝地求生 android版支持蓝牙吗,《绝地求生》吃鸡必须要顶配吗?这些配置也能畅玩...
  5. Python学习笔记[5]---else语句和with语句
  6. ES6标准入门(阮一峰)-阅读记录与心得
  7. 基于JAVA宠物店管理系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署
  8. 51单片机实现电子密码锁设计
  9. c语言switch excepted,C语言问题 expected unqualified-id
  10. 。新浪搜狐 博客无间道 按摩乳原创
  11. API接口怎么使用(教你使用api接口获取数据)
  12. 上架CiscoWS-C4948E设备及升级IOS
  13. 人体神经系统分布图图片,神经系统分布图片高清
  14. OSChina 周二乱弹 —— 糟糕 是喵动的感觉
  15. voxsrc20_std_00-How many kinds of topology used in speaker recognition?
  16. 全志D1-H裸奔工具XFEL
  17. Learning with Errors
  18. c语言测试软件的编写,用c语言编写智商测试软件
  19. 计算机毕业生晚会主持稿,2011年华中师范大学计算机科学系迎新晚会主持稿
  20. 半导体封装开短路测试

热门文章

  1. T检验 ANOVA
  2. html作品简介代码,HTML5的标签的代码的简单介绍 HTML5标签的简介
  3. 安装CAD出现Error:1402
  4. ADXL345测量角度
  5. 科研试剂半乳糖金刚烷衍生物934591-76-1,5-乙酰氨基-7,8,9-三-O-乙酰基-5-N,4-O-羰基-3,5-二脱氧-2-S-苯基-2-硫代-β-D-甘油-D-半乳-2-吡喃神经氨酸甲酯
  6. ArcGIS PRO基础教程(二)
  7. Android锁屏状态下点亮屏幕并弹窗提醒
  8. 牛客编程巅峰赛S1第2场 - 黄金钻石 1.规律 2.bfs
  9. U盘写保护,终极解决办法,
  10. 研发能力加码!维视智造团队入选“科学家+工程师”队伍!