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自带的方法。

时间: 2024-11-01 23:20:00

Hdfs常用操作的相关文章

HDFS 常用操作分类汇总整理

1.HDFS文件的权限以及读写操作 HDFS文件的权限: 与Linux文件权限类似 r: read; w:write; x:execute,权限x对于文件忽略,对于文件夹表示是否允许访问其内容 如果Linux系统用户zhangsan使用hadoop命令创建一个文件,那么这个文件在HDFS中owner就是zhangsan HDFS的权限目的:阻止好人错错事,而不是阻止坏人做坏事.HDFS相信,你告诉我你是谁,我就认为你是谁 HDFS文件的读取: HDFS文件的写入: HDFS文件存储: 两个文件,

hdfs常用API和putMerge功能实现

所需jar包 一.URL API操作方式 import java.io.InputStream; import java.net.URL; import org.apache.hadoop.fs.FsUrlStreamHandlerFactory; import org.apache.hadoop.io.IOUtils; import org.junit.Test; public class HDFSUrlTest {     /**      * HDFS URL API操作方式      *

《Hadoop与大数据挖掘》一2.3.1 HDFS常用命令hdfs dfs

2.3.1 HDFS常用命令hdfs dfs 在讲解这个命令前,先对hdfs dfs.hadoop fs.hadoop dfs这3个命令进行区分. hadoop fs:通用的文件系统命令,针对任何系统,比如本地文件.HDFS文件.HFTP文件.S3文件系统等. hadoop dfs:特定针对HDFS的文件系统的相关操作,但是已经不推荐使用. hdfs dfs:与hadoop dfs类似,同样是针对HDFS文件系统的操作,官方推荐使用. 该命令的操作在代码清单2-18中列出. 代码清单2-18 h

HDFS简介及用C语言访问HDFS接口操作实践

一.概述 近年来,大数据技术如火如荼,如何存储海量数据也成了当今的热点和难点问题,而HDFS分布式文件系统作为Hadoop项目的分布式存储基础,也为HBASE提供数据持久化功能,它在大数据项目中有非常广泛的应用. Hadoop分布式文件系统(Hadoop Distributed File System,HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统.HDFS是Hadoop项目的核心子项目,是一种具有高容错性.高可靠性.高可扩展性.高吞吐量等特征的分

Javascript数组Array的常用操作

文章简介:JavaScript中的数组. Array是JavaScript中常用的类型,并且JavaScript中的数组和其他语言的数组有比较大的区别.JavaScript中数组中存放的数据类型不一定相同,而且数组的长度也是可改变的. 下面记录一下Array的常用操作: 一 新建数组 新建数组可以用一下方法: var obj = ['zdy',22,'湖北武汉','计算机科学与技术'];//创建一个数组变量 var obj1 = new Array('zdy',22,'湖北武汉','计算机科学与

WIN98注册表编辑器的常用操作

注册表 WIN98注册表编辑器的常用操作注册表编辑器是一个可以让你改变系统注册设定的高级工具,有经验的Windows用户可以通过编辑注册表改变系统设定. 启动注册表编辑器的方法是执行Windows文件夹下的REGEDIT.EXE.如果注册表中有错误,计算机可能不能正常运行.如果发生这种情况,可以将注册表信息恢复到上次启动计算机时的状态.下面详细介绍Win98注册表编辑器常用的操作. 一.恢复注册表 1.单击"开始",再单击"关闭系统": 2.单击"重新启动

如何用程序对hdfs进行操作

调试加安装了半天,怎么也没有配置好怎么通过Eclipse直接连接hdfs,最后我还是打成一个jar包放到Linux虚拟机中执行的. 执行命令Java -jar  XXX.jar. 其中对hdfs的操作比较简单,主要就FileSystem这一个类,这个东西搞懂了,你对通过程序进行对hdfs的操作自然而然的也就非常熟练了. 下面我简单的举一个简单的从hdfs上读取文件内容的例子.大家分享一下. package com.pzoom.hdfs; import java.io.BufferedInputS

用php实现对HDFS的操作

用php实现对HDFS的操作,大体步骤如下: wget https://dist.apache.org/repos/dist/release/thrift/0.9.0/thrift-0.9.0.tar.gz tar zxvf thrift-0.9.0.tar.gz cd thrift-0.9.0 find / -name 'bootstrap.sh' yum install automake libtool flex bison pkgconfig gcc-c++ boost-devel lib

C#中对DatagridView的部分常用操作

C#中对DatagridView部分常用操作 只列出技巧部分,后面会有补充 0(最基本的技巧). 获取某列中的某行(某单元格)中的内容 this.currentposition = this.dataGridView1.BindingContext [this.dataGridView1.DataSource, this.dataGridView1.DataMember].Position; bookContent = this.database.dataSet.Tables[0].Rows [