获取FileSystem
/**
* 根据配置文件获取HDFS操作对象
* 有两种方法:
* 1.使用conf直接从本地获取配置文件创建HDFS对象
* 2.多用于本地没有hadoop系统,但是可以远程访问。使用给定的URI和用户名,访问远程的配置文件,然后创建HDFS对象。
* @return FileSystem
*/
public FileSystem getHadoopFileSystem1() {
FileSystem fs = null;
Configuration conf = null;
// 方法一,本地有配置文件,直接获取配置文件(core-site.xml,hdfs-site.xml)
// 根据配置文件创建HDFS对象
// 此时必须指定hdsf的访问路径。
conf = new Configuration();
// 文件系统为必须设置的内容。其他配置参数可以自行设置,且优先级最高
conf.set("fs.defaultFS", "hdfs://huabingood01:9000");
try {
// 根据配置文件创建HDFS对象
fs = FileSystem.get(conf);
} catch (IOException e) {
e.printStackTrace();
}
return fs;
}
@Test
public FileSystem getHadoopFileSystem2() {
System.out.println("start...");
FileSystem fs = null;
Configuration conf = null;
// 方法二:本地没有hadoop系统,但是可以远程访问。根据给定的URI和用户名,访问hdfs的配置参数
// 此时的conf不需任何设置,只需读取远程的配置文件即可。
conf = new Configuration();
// Hadoop的用户名
String hdfsUserName = "root"; URI hdfsUri = null;
try {
// HDFS的访问路径
hdfsUri = new URI("hdfs://master:9000");
} catch (URISyntaxException e) {
e.printStackTrace();
} try {
// 根据远程的NN节点,获取配置信息,创建HDFS对象
fs = FileSystem.get(hdfsUri,conf,hdfsUserName);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
return fs;
}
public FileSystem getHadoopFileSystem3() {
FileSystem fs = null;
Configuration conf = null;
// 方法三,反正我们没有搞懂。
conf = new Configuration();
conf.addResource("/opt/huabingood/pseudoDistributeHadoop/hadoop-2.6.0-cdh5.10.0/etc/hadoop/core-site.xml");
conf.addResource("/opt/huabingood/pseudoDistributeHadoop/hadoop-2.6.0-cdh5.10.0/etc/hadoop/hdfs-site.xml");
try {
fs = FileSystem.get(conf);
} catch (IOException e) {
e.printStackTrace();
}
return fs;
}
获取FileSystem的更多相关文章
- FileSystem实例化过程
HDFS案例代码 Configuration configuration = new Configuration(); FileSystem fileSystem = FileSystem.get(n ...
- Hadoop权威指南:通过FileSystem API读取数据
Hadoop权威指南:通过FileSystem API读取数据 [TOC] 在Hadoop中,FileSystem是一个通用的文件系统API 获取FileSystem实例的几个静态方法 public ...
- Hadoop 2.6.5 FileSystem和Configuration两个对象的探究
Hadoop 2.6.5 FileSystem和Configuration两个对象的探究 版权声明:本文为yunshuxueyuan原创文章,如需转载,请标明出处.[http://www.cnblog ...
- HDFS分布式文件系统资源管理器开发总结
HDFS,全称Hadoop分布式文件系统,作为Hadoop生态技术圈底层的关键技术之一,被设计成适合运行在通用硬件上的分布式文件系统.它和现有的分布式文件系统有很多共同点,但同时,它和其他的分布式 ...
- 转载:Hadoop权威指南学习笔记
转自:http://pieux.github.io/blog/2013-05-08-learn-hadoop-the-definitive-guide.html 1 前言 Hadoop的内部工作机制: ...
- hadoop hdfs的java操作
访问hdfs上的文件并写出到输出台 /** * 访问hdfs上的文件并写出到输出台 * @param args */ public static void main(String[] args) { ...
- 使用Hadoop打造私有云盘之API操作
项目介绍:使用hadoop实现云盘的增删读获取列表功能,hadoop不支持数据修改,特性是一次写入多次读取.主流的网盘也不支持该功能.今天我们用hdfs的FileSystem实现这些操作. 1.上传功 ...
- Exception in thread "main" java.lang.IllegalArgumentException:解决方法
使用fileSystem的delete方法无法删除文件或目录 Exception in thread "main" java.lang.IllegalArgumentExcepti ...
- Hadoop学习记录(3)|HDFS API 操作|RPC调用
HDFS的API操作 URL方式访问 package hdfs; import java.io.IOException; import java.io.InputStream; import java ...
随机推荐
- Java反射学习-4 - 反射调用方法
反射调用方法: package cn.tx.reflect; import java.lang.reflect.Constructor; import java.lang.reflect.Method ...
- python-zx笔记4-文件操作
一.打开文件 file object = open(file_name [, access_mode][, buffering]) file_name:file_name变量是一个包含了你要访问的文件 ...
- BeautifulSoup的用法
BeautifulSoup是一个模块,该模块用于接收一个HTML或XML字符串,然后将其进行格式化,之后遍可以使用他提供的方法进行快速查找指定元素,从而使得在HTML或XML中查找指定元素变得简单. ...
- jmeter添加自定义扩展函数之Strng---base64解密
1,打开eclipse,新建maven工程,在pom中引用jmeter核心jar包,具体请看---https://www.cnblogs.com/guanyf/p/10863033.html---,这 ...
- nginx配置相关问题
1. nginx配置ssl相关问题 1.1 报错nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in ...
- Java +selenium Navigation接口介绍
Navigation接口主要实现对浏览器的前进.后退.打开网址.刷新当前页面等操作的. void back():就是操作当前页面后退,相当于网页的后退按钮. void forward():就是操作当前 ...
- Advanved DataGrid using QTP
Use the GetCellData(j,i) Function for Cell data and Use the GetRowData(j) Function for Row Data wher ...
- JAVA中的面向对象与内存解析_2
构造方法(构造函数) • 使用new +构造方法创建一个新的对象. • 构造函数是定义在Java类中的一个用来初始化对象的函数. • 构造函数与类同名且没有返回值. • 例如:Person类的构造 ...
- 一步一步学Vue(九) 路由元数据
一步一步学Vue(九):https://www.cnblogs.com/Johnzhang/p/7260888.html
- centos 7 设置开机启动脚本
vi /etc/rc.d/rc.local 在末尾追加 sh脚本 sh脚本要提前赋予执行权限 下面是测试,开机同步北京时间 [root@commonTest bin]# vi /usr/local/b ...