Hdfs常用操作
一、linux
rm是删除,不是del
二、常用操作
package hdfs; import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
import org.junit.Before;
import org.junit.Test;
//那么多test,指向运行一个 那么选种方法明后 在junit public class HDFSDemo {
FileSystem fs = null; @Before
public void init() throws Exception { URI uri = new URI("hdfs://192.168.58.180:8020/");
Configuration conf=new Configuration();
//这个是抽象类
fs = FileSystem.get(uri, conf, "hxsyl");
}
@Test
public void downLoadHdfs() throws Exception {
fs.copyToLocalFile(new Path("/in/1.txt"),new Path("d:/TestHDFS/2.txt"));
}
@Test
public void delHDFS() throws Exception, Throwable {
//true表示地柜删除
boolean flag = fs.delete(new Path("/1.txt"), true);
System.out.println(flag); }
@Test
public void mkdirHDFS() throws Exception, Throwable {
boolean flag = fs.mkdirs(new Path("/testHDFS"));
System.out.println(flag);
} @Test
public void uploadHDFS() throws Exception {
//一般来说win下的用户和linux下用户不一样,根据hdfs的权限机智,无法写成功,
//要么dfs.permissions false 这样一般不行
//要常穿的hdfs dfs -chmod 777 主要是改了其他用户权限
//或者伪装成用户
InputStream is = new FileInputStream("d:/TestHDFS/1.txt");
//指向hdfs 不用new
OutputStream os = fs.create(new Path("/1.txt"));
IOUtils.copyBytes(is, os, 4096,true);
}
public static void main(String[] args) throws Exception{ FileSystem fs = null;
URI uri = new URI("hdfs://192.168.58.180:8020/");
Configuration conf=new Configuration();
//这个是抽象类
fs = FileSystem.get(uri, conf); // TODO Auto-generated method stub //没有类似的get方法
//虽然这个文件存在 也要new
Path path = new Path("/Movielens1M/movies.dat");
InputStream is = fs.open(path);
//必须写到文件 否则
//java.io.FileNotFoundException: E:\AAA(拒绝访问。)
OutputStream os = new FileOutputStream("D:\\TestHDFS\\1.txt");
//拷贝完成关闭 默认的buffer都是4096
IOUtils.copyBytes(is, os, 4096, true); } }
上传下载除了输出输出流意外,然后IOUtils.copyBytes;就是用fs自带的方法。
Hdfs常用操作的更多相关文章
- Hadoop2.7.6_02_HDFS常用操作
1. HDFS常用操作 1.1. 查询 1.1.1. 浏览器查询 1.1.2. 命令行查询 [yun@mini04 bin]$ hadoop fs -ls / 1.2. 上传文件 [yun@mini ...
- Hadoop HDFS文件常用操作及注意事项
Hadoop HDFS文件常用操作及注意事项 1.Copy a file from the local file system to HDFS The srcFile variable needs t ...
- [b0014] HDFS 常用JAVA 操作实战
目的: 学习用java进行的常用hdfs操作 参考: [b0002] Hadoop HDFS cmd常用命令练手 环境: hadoop2.6.4 win7 下的eclipse环境调试已经配置好,参考前 ...
- Hadoop之HDFS文件操作常有两种方式(转载)
摘要:Hadoop之HDFS文件操作常有两种方式,命令行方式和JavaAPI方式.本文介绍如何利用这两种方式对HDFS文件进行操作. 关键词:HDFS文件 命令行 Java API HD ...
- HDFS常用命令
HDFS 常用的文件操作命令 hdfs dfs -text /pub/20151019/1/4/gwmvod/mediags.moretv.com.cn/*.bz2 | wc -l hdfs dfs ...
- Hadoop常用操作
Hadoop常用操作 1.Hadoop安装 略 2.Hadoop配置 略 3.Hadoop多目录配置 namenode和datanode节点下都可以进行多个目录的配置,但是意义不同.namenode的 ...
- HDFS文件操作(命令行)
HDFS是一种分布式文件系统,为MapReduce这种框架下的海量数据分布式处理而设计. Hadoop之HDFS文件操作常有两种方式,一种是命令行方式,即Hadoop提供了一套与Linux文件命令类似 ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
随机推荐
- 启动Eclipse后卡在 android sdk content loader 的解决办法
Make sure that eclipse is not active. If it is active kill eclipse from the processes tab of the tas ...
- (原创)mybatis学习二,spring和mybatis的融合
mybatis学习一夯实基础 上文介绍了mybatis的相关知识,这一节主要来介绍mybaits和spring的融合 一,环境搭建 1,jar包下载,下载路径为jar包 2,将包导入到java工程中 ...
- ubuntu 12.04下zmap安装
zmap介绍 https://zmap.io/ ----------------华丽的分割线---------------- zmap 1.03 的安装 Step1: sudo apt-get ins ...
- tomcat配置文件详解
Tomcat系列之服务器的安装与配置以及各组件详解 tomcat 配置文件详解
- Java语法笔记
目录 知识点 不支持 恶心事 与C#的区别 组件 学习资料 母版页 知识点 类 静态方法,即可以在类上被调用,也可以在实例对象上被调用. Java类 先执行静态构造函数,再执行静态方法或静态字段,所以 ...
- js10秒倒计时鼠标点击次数统计
<html> <head> <meta charset="utf-8"/> <script type="text/javascr ...
- 【CSS3】 线性渐变
参考地址:http://www.w3cplus.com/css3/new-css3-linear-gradient.html background-image: linear-gradient(to ...
- killall 根据名称终止进程
根据名称终止进程 killall [option] name-list killall 将信号发送到一个或多个进程用来终止它.除超级用户外,只有进程的所有者才可以对进程执行killall,超级用户可以 ...
- Intent和Intent Filters
什么是Intent Intent是android开发中的重要对象,它作为一个信息承载对象存在. 我们可以在使用其他一些组件的时候从Intent获取行为响应的准则(即应该做什么东西,如何 ...
- Andriod ADB开启Activity、Service以及BroadCast(包括参数的传递)
/*****************开启Activity 并传递参数*******************/ 使用am命令启动Activity并传递参数的方法,也能用作C层与Java进行数据传递的一 ...