大数据全系列 教程
1869个小节阅读:467.1k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
编写MapReduce程序
HBase2HdfsMain
xxxxxxxxxx
package com.itbaizhan.hbase2hdfs;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hbase.client.Scan;
import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
public class HBase2HdfsMain {
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration(true);
conf.set("mapreduce.framework.name","local");
conf.set("hbase.zookeeper.quorum","node2,node3,node4");
Job job = Job.getInstance(conf, "hbase2hdfs demo");
job.setJarByClass(HBase2HdfsMain.class);
//从HBase中的sentence表中读取数据
//可以通过该对象设置查询的列族、列、过滤行等
Scan scan = new Scan();
TableMapReduceUtil.initTableMapperJob(
"sentence",//表名
scan,
Hbase2HdfsMapper.class, //指定Mapper类
Text.class,IntWritable.class, //Mapper类输出的key\value的类型
job,
false
);
//设置Reducer相关属性
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
job.setReducerClass(Hbase2HdfsReducer.class);
//设置输出路径
Path path = new Path("/usr/local/wcout");
//获取HDFS文件系统的对象
FileSystem fileSystem = path.getFileSystem(conf);
//判断输出路径是否存在
if(fileSystem.exists(path)){
//如果存在则删除
fileSystem.delete(path,true);
}
FileOutputFormat.setOutputPath(job,path);
//提交作业
job.waitForCompletion(true);
}
}