Java程序操作HDFS
1.新建项目
2.导包
解压hadoop-2.7.3.tar.gz
E:\工具\大数据\大数据提升资料\01-软件资料\06-Hadoop\安装包\Java1.8环境
下编译\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\common
E:\工具\大数据\大数据提升资料\01-软件资料\06-Hadoop\安装包\Java1.8环境
下编译\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\common\lib
E:\工具\大数据\大数据提升资料\01-软件资料\06-Hadoop\安装包\Java1.8环境
下编译\hadoop-2.7.3\hadoop-2.7.3\share\hadoop\hdfs
JUNIT 单元测试
/**
* 单元测试
* 1.修饰符必须是public
* 2.不能有参数
* 3.不能有返回值
*
* 运行:选中方法名来运行
* run as --junit test
*/
@Test
public void m1(){
System.out.println("hello");
}
- package com.zy.hdfs;
- import java.io.IOException;
- import java.net.URI;
- import java.net.URISyntaxException;
- import java.util.Iterator;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.fs.FileStatus;
- import org.apache.hadoop.fs.FileSystem;
- import org.apache.hadoop.fs.LocatedFileStatus;
- import org.apache.hadoop.fs.Path;
- import org.apache.hadoop.fs.RemoteIterator;
- import org.junit.Before;
- import org.junit.Test;
- public class test {
- public static void main(String[] args) throws Exception {
- //上传
- //1实例化configuration
- Configuration configuration = new Configuration();
- //-------------------
- //设置一些属性
- configuration.set("dfs.replication", "2");//2个副本
- configuration.set("dfs.blocksize", "80m");//按照80m切分
- //----------------------
- //2.获取操作文件系统的客户端实例
- FileSystem fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000/"), configuration, "root");
- //3.执行上传操作 (src 本地资源 ,dst 上传目的地)
- fs.copyFromLocalFile(new Path("C:\\Users\\Administrator\\Desktop\\wc.txt"), new Path("/"));//两次上传一样的会被覆盖
- //4.关闭链接
- fs.close();
- }
- @Test
- public void download() throws Exception{
- //下载
- Configuration configuration = new Configuration();
- FileSystem fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000"), configuration, "root");
- fs.copyToLocalFile(false, new Path("/jdk-8u141-linux-x64.tar.gz"), new Path("E://jdk-8u141-linux-x64.tar.gz"), true);
- fs.close();
- }
- //----------------
- FileSystem fs=null;
- @Before//在每次运行junit时先执行
- public void before() throws Exception{
- System.out.println("11111");
- Configuration configuration = new Configuration();
- fs = FileSystem.get(new URI("hdfs://192.168.64.111:9000/"), configuration, "root");
- }
- //---------------
- @Test
- public void delete() throws Exception{//删除
- fs.delete(new Path("/弹性表达式.doc"), true);//为true删除文件夹及里面的内容,false只能删除空的文件夹
- fs.close();
- }
- @Test
- public void mkdir() throws Exception{//创建目录
- fs.mkdirs(new Path("/a/b/c"));
- fs.close();
- }
- @Test
- public void list() throws Exception{
- FileStatus[] listStatus = fs.listStatus(new Path("/"));//不会递归进去
- for (FileStatus fileStatus : listStatus) {
- if(fileStatus.isFile()){
- System.out.println("文件名:"+fileStatus.getPath().toString());
- }else{
- System.out.println("目录:"+fileStatus.getPath().toString());
- }
- }
- fs.close();
- }
- @Test
- public void list2() throws Exception{//递归遍历出所有文件
- RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true);//为true,递归遍历
- while(listFiles.hasNext()){
- LocatedFileStatus next = listFiles.next();
- System.out.println(next.toString());
- System.out.println("文件块尺寸"+next.getBlockSize());
- }
- }
- }
Java程序操作HDFS的更多相关文章
- 大数据-09-Intellij idea 开发java程序操作HDFS
主要摘自 http://dblab.xmu.edu.cn/blog/290-2/ 简介 本指南介绍Hadoop分布式文件系统HDFS,并详细指引读者对HDFS文件系统的操作实践.Hadoop分布式文件 ...
- Java代码操作HDFS测试类
1.Java代码操作HDFS需要用到Jar包和Java类 Jar包: hadoop-common-2.6.0.jar和hadoop-hdfs-2.6.0.jar Java类: java.net.URL ...
- 使用Java API操作HDFS文件系统
使用Junit封装HFDS import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.*; import org ...
- Java程序操作数据库SQLserver详解
数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Del ...
- 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)
一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...
- Hadoop Java API操作HDFS文件系统(Mac)
1.下载Hadoop的压缩包 tar.gz https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/stable/ 2.关联jar包 在 ...
- 使用Java Api 操作HDFS
如题 我就是一个标题党 就是使用JavaApi操作HDFS,使用的是MAVEN,操作的环境是Linux 首先要配置好Maven环境,我使用的是已经有的仓库,如果你下载的jar包 速度慢,可以改变Ma ...
- java程序向hdfs中追加数据,异常以及解决方案
今天在学习hdfs时,遇到问题,就是在向hdfs中追加数据总是报错,在经过好几个小时的努力之下终于将他搞定 解决方案如下:在hadoop的hdfs-sit.xml中添加一下三项 <propert ...
- Java 简单操作hdfs API
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6632047118376780295/ 启动Hadoop出现问题:datanode的clusterID 和 name ...
随机推荐
- js 鼠标点击页面出现文字
<script type="text/javascript"> var a_idx = 0; jQuery(document).ready(function($) { ...
- Github 简单使用
第一步:打开官网:https://github.com 注册一个帐户. 第二步:创建仓库 填写仓库的名字和描述. 创建好了之后,点击"Branch master",创建分支--在文 ...
- LeetCode844 比较含退格的字符串
题目描述: 给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果. # 代表退格字符. 示例 1: 输入:S = "ab#c", T = ...
- pyi文件是干嘛的?(一文读懂Python的存根文件和类型检查)
参考资料: https://blog.csdn.net/weixin_40908748/article/details/106252884 https://www.python.org/dev/pep ...
- 一次snapshot迁移引发的Hbase RIT(hbase2.1.0-cdh6.3.0)
1. 问题起因 通过snapshot做跨集群数据同步时,在执行拷贝脚本里没有指定所有者及所有组,导致clone时没有权限,客户端卡死.master一直报错,经过一系列操作后,导致RIT异常. 2. 异 ...
- xtrabackup 备份与恢复
书上摘抄 ---深入浅出mysql 448页 grant reload on *.* to 'backup'@'localhost' identified by '123456'; grant re ...
- 【ORA】 ORA-01031:权限不足的问题
今天创建一个用户,赋予dba权限,在plsql中选择sysdba登录,但是报错 ORA-01031 在网上找了好久最后的解决办法是 不仅仅要有dba权限 还要有这个权限: grant all priv ...
- Databricks 第7篇:管理Secret
有时,访问数据要求您通过JDBC对外部数据源进行身份验证,可以使用Azure Databricks Secret来存储凭据,并在notebook和job中引用它们,而不是直接在notebook中输入凭 ...
- sap alv grid 中的delete按键问题
今天发先一个问题,在使用ALV输出的时候,如果有字段设置为可编辑状态,则会在前面出现选择条,并且,当我们选择一行或者多行的时候,可以用键盘上的DELETE键将行删除!呵呵
- CentOS 7 下安装 mysql ,以及用到的命令
VMware虚拟机装好后,再装个CentOS7系统,以上环境自行百度... 一.Linux下查看mysql是否安装 1.指令ps -ef|grep mysql [root@localhost 桌面]# ...