向hbase中导入hive数据导入到hbase出错怎么办

将HDFS中的数据导入HBase_服务器应用_Linux公社-Linux系统门户网站
你好,游客
将HDFS中的数据导入HBase
来源:Linux社区&
作者:englishsname
将HDFS中的数据导入HBase
import java.text.SimpleDateFimport java.util.D
import org.apache..conf.Cimport org.apache.hadoop.hbase.client.Pimport org.apache.hadoop.hbase.mapreduce.TableOutputFimport org.apache.hadoop.hbase.mapreduce.TableRimport org.apache.hadoop.hbase.util.Bimport org.apache.hadoop.io.LongWimport org.apache.hadoop.io.NullWimport org.apache.hadoop.io.Timport org.apache.hadoop.mapreduce.Cimport org.apache.hadoop.mapreduce.Jimport org.apache.hadoop.mapreduce.Mimport org.apache.hadoop.mapreduce.lib.input.FileInputFimport org.apache.hadoop.mapreduce.lib.input.TextInputF
public class BatchImport {
public static void main(String[] args) throws Exception {final Configuration configuration = new Configuration();//设置zookeeperconfiguration.set("hbase.zookeeper.quorum", "hadoop1");//设置hbase表名称configuration.set(TableOutputFormat.OUTPUT_TABLE, "wlan_log");//将该值改大,防止hbase超时退出configuration.set("dfs.socket.timeout", "180000");
final Job job = new Job(configuration, "HBaseBatchImport");
job.setMapperClass(BatchImportMapper.class);job.setReducerClass(BatchImportReducer.class);//设置map的输出,不设置reduce的输出类型job.setMapOutputKeyClass(LongWritable.class);job.setMapOutputValueClass(Text.class);
job.setInputFormatClass(TextInputFormat.class);//不再设置输出路径,而是设置输出格式类型job.setOutputFormatClass(TableOutputFormat.class);
FileInputFormat.setInputPaths(job, "hdfs://hadoop1:9000/HTTP*");
job.waitForCompletion(true);}
static class BatchImportMapper extends Mapper&LongWritable, Text, LongWritable, Text&{SimpleDateFormat dateformat1=new SimpleDateFormat("yyyyMMddHHmmss");Text v2 = new Text();
protected void map(LongWritable key, Text value, Context context) throws java.io.IOException ,InterruptedException {final String[] splited = value.toString().split("\t");try {final Date date = new Date(Long.parseLong(splited[0].trim()));final String dateFormat = dateformat1.format(date);String rowKey = splited[1]+":"+dateFv2.set(rowKey+"\t"+value.toString());context.write(key, v2);} catch (NumberFormatException e) {final Counter counter = context.getCounter("BatchImport", "ErrorFormat");counter.increment(1L);System.out.println("出错了"+splited[0]+" "+e.getMessage());}};}
static class BatchImportReducer extends TableReducer&LongWritable, Text, NullWritable&{protected void reduce(LongWritable key, java.lang.Iterable&Text& values, Context context) throws java.io.IOException ,InterruptedException {for (Text text : values) {final String[] splited = text.toString().split("\t");
final Put put = new Put(Bytes.toBytes(splited[0]));put.add(Bytes.toBytes("cf"), Bytes.toBytes("date"), Bytes.toBytes(splited[1]));//省略其他字段,调用put.add(....)即可context.write(NullWritable.get(), put);}};}
HBase 的详细介绍:HBase 的下载地址:
相关阅读:
Hadoop+HBase搭建云存储总结 PDF
HBase 结点之间时间不一致造成regionserver启动失败
Hadoop+ZooKeeper+HBase集群配置
Hadoop集群安装&HBase实验环境搭建
基于Hadoop集群的HBase集群的配置 &
Hadoop安装部署笔记之-HBase完全分布模式安装
单机版搭建HBase环境图文教程详解
相关资讯 & & &
& (08/05/:07)
& (08/05/:57)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款阅读排行榜
评论排行榜

我要回帖

更多关于 hbase批量导入数据 的文章

 

随机推荐