本页描述如何访问MAPR-FS在Java程序中,并包含示例代码。此页面包含了以下主题:
作为一个高性能的文件系统中,MAPR-FS文件的客户端部分是基于本地库。来访问MAPR-FS文件所需的所有依赖关系都包含在一个JAR文件,对于32 -位和64位Linux上,64位Mac OSX,和32 -位和64位Windows客户端。当开发一个应用程序,并指定在此JAR的依赖让您无需管理特定于平台的依赖关系构建应用程序。当你的应用程序加载maprfs
库,如果maprclient
为目标OS库不可用在Java CLASSPATH中
,加载器将搜索的脂肪JAR的内容,找到maprclient
那里。
使用JAR文件从Maven的
MAPR从发布2.1.2版本,Maven构件在以后http://repository.mapr.com/maven/。
例如,编译为MAPR 2.1.3版时,下面的依赖关系添加到项目的pom.xml的
文件。这种依赖性会从MAPR的Maven仓库,下一次你做一个拉动的依赖关系的其他命令mvn干净安装
。
<DEPENDENCY>
<groupId> org.apache.hadoop </的groupId>
的hadoop的<artifactId>芯</ artifactId的>
<VERSION> 1.0.3-MAPR-2.1.3.1 </版>
</依赖>
|
对于MAPR提供的文物和进一步的细节的完整列表,请参阅Maven资源库和工件MAPR。
使用JAR文件从MAPR安装
您还可以找到maprfs
库JAR中的/ opt / MAPR / lib目录
的目录。
编译#示例代码下面只需要Hadoop的核心JAR文件:
javac的-CP / opt/mapr/hadoop/hadoop-
0.20
。
2
/ lib/hadoop-
0.20
。
2
-DEV-core.jar中MapRTest.java
|
例如,要运行MAPR版本3.0.0的示例代码,使用下面的库路径:
java的Djava.library.path = /选择/ MAPR / lib目录-CP:$(Hadoop的类路径)\
/ opt/mapr/hadoop/hadoop-0.20.2/conf:\
/ opt/mapr/hadoop/hadoop-0.20.2/lib/hadoop-0.20.2-dev-core.jar:\
/ opt/mapr/hadoop/hadoop-0.20.2/lib/commons-logging-1.0.4.jar:\
/ opt/mapr/hadoop/hadoop-0.20.2/lib/maprfs-1.0.3-mapr-3.0.0.jar:\
/ opt/mapr/hadoop/hadoop-0.20.2/lib/maprfs-jni-1.0.3-mapr-3.0.0.jar:\
/ opt/mapr/hadoop/hadoop-0.20.2/lib/zookeeper-3.3.6.jar \
MapRTest /测试
|
编写一个Java应用程序
在Java应用程序中,您将使用一个配置
对象MAPR-FS接口。当你运行你的Java应用程序,Hadoop的配置目录添加/ opt/mapr/hadoop/hadoop- <VERSION> / conf目录
到Java类路径中。当你实例化一个配置
对象,它与从该目录中的配置文件绘制默认值创建。
示例代码
下面的示例代码显示了如何用MAPR-FS使用Java接口。该示例创建一个目录,写入一个文件,然后读取该文件的内容。
导入
java.net *。;
进口
org.apache.hadoop.fs *。;
进口
org.apache.hadoop.conf *。;
/ **
*假设MAPR安装在/ opt / MAPR
*
*编译只需要hadoop的jar文件:
*的javac-CP / opt/mapr/hadoop/hadoop-0.20.2/lib/hadoop-0.20.2-dev-core.jar MapRTest.java
*
*运行:
*的java-Djava.library.path = /选择/ MAPR / lib目录-CP MapRTest /测试
* /
公共
类
MapRTest
{
公共
静态
无效的
主要(字符串参数[])
抛出
异常{
字节
BUF [] =
新的
字节
[
65
*
1024
];
整型
AC =
0
;
如果
(args.length!=
1
){
System.out.println(
“ 用法:MapRTest路径名”
);
返回
;
}
串目录名称=参数[AC + +];
配置CONF =
新
配置();
文件系统FS = FileSystem.get(机密);
路径dirpath =
新
路径(目录名+
“/目录”
);
路径wfilepath =
新
路径(目录名+
“/ file.w”
);
路径rfilepath = wfilepath;
布尔
RES = fs.mkdirs(dirpath);
如果
(!水库){
System.out.println(
“MKDIR失败,路径:”
+ dirpath);
返回
;
}
System.out.println(
“MKDIR(”
+ dirpath +
“)就ok了,现在写文件”
);
FSDataOutputStream OSTR = fs.create(wfilepath,
真
,
512
,
(
短
)
1
,
(
长
)(
64
*
1024
*
1024
)
);
ostr.write(BUF);
ostr.close();
System.out.println(
“ 写(”
+ wfilepath +
“)就OK”
);
System.out.println(
“ 读文件:”
+ rfilepath);
FSDataInputStream ISTR = fs.open(rfilepath);
整型
BB = istr.readInt();
istr.close();
System.out.println(
“ 读OK”
);
}
}
|