9.4 使用java操作hadoop
程序员文章站
2024-03-23 08:24:07
...
操作前准备
1、新建maven项目
2、引入jar包
<!-- 引入hadoop-common Jar包 -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
</dependency>
<!-- 引入hadoop-hdfs Jar包 -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.6.0</version>
</dependency>
<!-- 引入hadoop-core Jar包 -->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>1.2.0</version>
</dependency>
java与hadoop交互
1、Configuration cfg = new Confifuration();
2、cfg.set("fs.defaultFS","hdfs://ip地址:9000");
3、获取文件系统:FileSystem fs = FileSystem.get(cfg);
1~3、FileSystem fs = FileSystem(new URI("hdfs9000"),new Configuration(),"root");
4、获取hdfs路径对应的流:
FSDataInputStream fsis = fs.open("hdfs上的文件路径");
5、查看流
注:如果只是进行上述的操作控制台输出会抛异常(本操作的执行地址是在虚拟机上安装hadoop),因为本地并未安装hadoop,所以要解决这一问题需要对本地进行配置
本地hadoop配置
1、在windows安装hadoop
2、把hadoop-bin.rar中的内容解压在hadoop的bin目录下
3、把hadoop.dll放到C:\Windows\System32\ 目录下
4、配置hadoop环境变量HADOOP_HOME和PATH变量中分别加入%HADOOP_HOME\bin和%HADOOP_HOME\sbin
使用hadoop jar执行java的jar包
1、编写测试完成
2、打jar包时把main方法指定
3、编译生成jar包,把jar包上传至linux
4、hadoop jar jar包路径 main方法类的路径 参数列表
TestHDFS类:
package cn.kgc.kb09.hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.URI;
/**
* @Author Daniu_Ben
* @Date 2020/9/4
* @Description
*/
public class TestHDFS {
public static void main(String[] args) throws Exception{
// System.setProperty("hadoop.home.dir", "E:\\softs\\hadoop-2.6.0-cdh5.14.2");
Configuration conf = new Configuration();
conf.set("fs.defaultFS","hdfs://192.168.126.101:9000");
// FileSystem fs = FileSystem.get(conf); //这与下一条语句只能存在一个,由于未指定用户所以在执行上传文件是没有权限,所以使用下一条语句进行用户指定
FileSystem fs = FileSystem.get(new URI("hdfs://192.168.126.101:9000"),new Configuration(),"root");
// InputStream is = fs.open(new Path(args[0]));
// FileOutputStream fos = new FileOutputStream(args[1]);
// fs.copyToLocalFile(new Path(args[0]),new Path(args[1]));
// fs.copyFromLocalFile(new Path(args[1]),new Path(args[0]));
// fs.mkdirs(new Path("/hello/nihoa/feichanghao"));
fs.deleteOnExit(new Path("/hello"));
// int tmp;
// while((tmp = is.read()) != -1){
System.out.print((char)tmp);
// fos.write(tmp);
// }
// fos.close();
// is.close();
}
}
语句中的args[0]和args[1]指的是传入的参数,参数设置如图所示:
所需的资料下载:链接:https://pan.baidu.com/s/1bn_Cu2Kr1CwP3y-zrQzfBw
提取码:vtbv
上一篇: c语言扫雷简化版小游戏
下一篇: 3一个简单的Shader
推荐阅读
-
9.4 使用java操作hadoop
-
使用Hadoop的Java API操作HDFS
-
JAVA使用JDBC连接MySQL数据库操作
-
(JDBC)如何通过IDEA使用Java来连接MySQL数据库并进行操作
-
使用Java操作LDAP案例 博客分类: J2EE案例文档 javaldapUnboundid SDK
-
使用javap分析Java的字符串操作 javapjdkjava字符串操作
-
在ant脚本里面使用操作系统环境变量 博客分类: Java 脚本AntGWTXML
-
使用JAVA类对Cookie的简单操作进行封装
-
JAVA使用C3P0操作数据库
-
使用Java Rest Client操作Elasticsearch 博客分类: ELK elasticsearchjava