Java执行hadoop的基本操作实例代码
发布时间 - 2026-01-11 00:49:10 点击率:次Java执行hadoop的基本操作实例代码

向HDFS上传本地文件
public static void uploadInputFile(String localFile) throws IOException{
Configuration conf = new Configuration();
String hdfsPath = "hdfs://localhost:9000/";
String hdfsInput = "hdfs://localhost:9000/user/hadoop/input";
FileSystem fs = FileSystem.get(URI.create(hdfsPath), conf);
fs.copyFromLocalFile(new Path(localFile), new Path(hdfsInput));
fs.close();
System.out.println("已经上传文件到input文件夹啦");
}
将output文件下载到本地
public static void getOutput(String outputfile) throws IOException{
String remoteFile = "hdfs://localhost:9000/user/hadoop/output/part-r-00000";
Path path = new Path(remoteFile);
Configuration conf = new Configuration();
String hdfsPath = "hdfs://localhost:9000/";
FileSystem fs = FileSystem.get(URI.create(hdfsPath),conf);
fs.copyToLocalFile(path, new Path(outputfile));
System.out.println("已经将输出文件保留到本地文件");
fs.close();
}
删除hdfs中的文件
public static void deleteOutput() throws IOException{
Configuration conf = new Configuration();
String hdfsOutput = "hdfs://localhost:9000/user/hadoop/output";
String hdfsPath = "hdfs://localhost:9000/";
Path path = new Path(hdfsOutput);
FileSystem fs = FileSystem.get(URI.create(hdfsPath), conf);
fs.deleteOnExit(path);
fs.close();
System.out.println("output文件已经删除");
}
执行mapReduce程序
创建Mapper类和Reducer类
public static class TokenizerMapper extends Mapper<Object, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text value, Context context) throws IOException, InterruptedException{
String line = value.toString();
line = line.replace("\\", "");
String regex = "性别:</span><span class=\"pt_detail\">(.*?)</span>";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(line);
while(matcher.find()){
String term = matcher.group(1);
word.set(term);
context.write(word, one);
}
}
}
public static class IntSumReducer extends Reducer<Text, IntWritable, Text, IntWritable>{
private IntWritable result = new IntWritable();
public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException{
int sum = 0;
for(IntWritable val :values){
sum+= val.get();
}
result.set(sum);
context.write(key, result);
}
}
执行mapReduce程序
public static void runMapReduce(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
if(otherArgs.length != 2){
System.err.println("Usage: wordcount<in> <out>");
System.exit(2);
}
Job job = new Job(conf, "word count");
job.setJarByClass(WordCount.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumReducer.class);
job.setReducerClass(IntSumReducer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.out.println("mapReduce 执行完毕!");
System.exit(job.waitForCompletion(true)?0:1);
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java执行hadoop
# Java执行hadoop操作
# java结合HADOOP集群文件上传下载
# Java访问Hadoop分布式文件系统HDFS的配置说明
# java使用hadoop实现关联商品统计
# 深入浅析Java Object Serialization与 Hadoop 序列化
# hadoop中实现java网络爬虫(示例讲解)
# Java/Web调用Hadoop进行MapReduce示例代码
# Hadoop运行时遇到java.io.FileNotFoundException错误的解决方法
# hadoop运行java程序(jar包)并运行时动态指定参数
# java实现对Hadoop的操作
# 利用Java连接Hadoop进行编程
# 希望能
# 谢谢大家
# 上传文件
# 上传
# part
# remoteFile
# outputfile
# path
# copyToLocalFile
# getOutput
# System
# close
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
javascript读取文本节点方法小结
iOS正则表达式验证手机号、邮箱、身份证号等
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程
Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理
Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】
如何用西部建站助手快速创建专业网站?
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出
Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】
如何在阿里云域名上完成建站全流程?
javascript中的try catch异常捕获机制用法分析
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel如何使用Telescope进行调试?(安装和使用教程)
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理
javascript日期怎么处理_如何格式化输出
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel如何使用.env文件管理环境变量?(最佳实践)
如何在局域网内绑定自建网站域名?
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
活动邀请函制作网站有哪些,活动邀请函文案?
Laravel模型关联查询教程_Laravel Eloquent一对多关联写法
HTML 中动态设置元素 name 属性的正确语法详解
如何快速启动建站代理加盟业务?
如何在宝塔面板中创建新站点?
JavaScript如何实现音频处理_Web Audio API如何工作?
图册素材网站设计制作软件,图册的导出方式有几种?
浅谈redis在项目中的应用
如何在 Python 中将列表项按字母顺序编号(a.、b.、c. …)
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
PythonWeb开发入门教程_Flask快速构建Web应用
太平洋网站制作公司,网络用语太平洋是什么意思?
JavaScript中的标签模板是什么_它如何扩展字符串功能
Laravel如何自定义分页视图?(Pagination示例)
Android Socket接口实现即时通讯实例代码
b2c电商网站制作流程,b2c水平综合的电商平台?
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
西安专业网站制作公司有哪些,陕西省建行官方网站?
如何快速搭建高效可靠的建站解决方案?

