package com.run.hbase.dataImport;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.client.ResultScanner;
import org.apache.hadoop.hbase.client.Scan;
/**
* 将内蒙的数据提取出来并存放在本地
*
* @author Administrator
*
*/
public class GetNMData {
public static void main(String[] args) throws IOException {
Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "192.168.5.211");
conf.set("hbase.zookeeper.property.clientPort", "2181");
HTable table = new HTable(conf, "virtualaccount".getBytes());
HTable table1 = new HTable(conf, "virtualaccount1");
// getRelationship(table);
// getGroup(table);
putGroup(table1);
putRelationship(table1);
}
public static void getRelationship(HTable table) throws IOException{
File path = new File("/home/hadoop/tmp/relationship1");
FileWriter writer = new FileWriter(path);
BufferedWriter bWriter = new BufferedWriter(writer);
Scan s = new Scan();
s.addFamily("relationship1".getBytes());
ResultScanner ss = table.getScanner(s);
int i = 0 ;
for (Result r : ss) {
for (KeyValue kv : r.list()) {
bWriter.append(new String(kv.getRow(),"UTF-8")+"\t"+"relationship1"+"\t"+new String(kv.getQualifier(),"UTF-8")+"\t"+new String(kv.getValue(),"UTF-8")+"\n");
i++;
if(i%5000==0){
bWriter.flush();
}
}
}
bWriter.close();
ss.close();
table.close();
}
public static void getGroup(HTable table) throws IOException{
File path = new File("/home/hadoop/tmp/group");
FileWriter writer = new FileWriter(path);
BufferedWriter bWriter = new BufferedWriter(writer);
Scan s = new Scan();
s.addFamily("group".getBytes());
ResultScanner ss = table.getScanner(s);
int i = 0 ;
for (Result r : ss) {
for (KeyValue kv : r.list()) {
bWriter.append(new String(kv.getRow(),"UTF-8")+"\t"+"group"+"\t"+new String(kv.getQualifier(),"UTF-8")+"\t"+new String(kv.getValue(),"UTF-8")+"\n");
i++;
if(i%5000==0){
bWriter.flush();
}
}
}
bWriter.close();
ss.close();
table.close();
}
public static void putGroup(HTable table) throws IOException{
File path = new File("/home/hadoop/tmp/group");
FileReader reader = new FileReader(path);
BufferedReader bReader = new BufferedReader(reader);
String tmp = bReader.readLine();
while(bReader!=null){
String t[] = tmp.split("\t", 5);
if(t.length==4){
Put p = new Put(t[0].getBytes("UTF-8"));
p.add("group".getBytes(), t[2].getBytes(), t[3].getBytes());
table.put(p);
}
tmp = bReader.readLine();
}
table.close();
bReader.close();
}
public static void putRelationship(HTable table) throws IOException{
File path = new File("/home/hadoop/tmp/relationship1");
FileReader reader = new FileReader(path);
BufferedReader bReader = new BufferedReader(reader);
String tmp = bReader.readLine();
while(bReader!=null){
String t[] = tmp.split("\t", 5);
if(t.length==4){
Put p = new Put(t[0].getBytes("UTF-8"));
p.add("group".getBytes(), t[2].getBytes(), t[3].getBytes());
table.put(p);
}
tmp = bReader.readLine();
}
table.close();
bReader.close();
}
}
分享到:
相关推荐
《HBase Administration Cookbook》是一本专注于HBase管理的实用指南,旨在帮助读者深入理解并有效管理这个分布式大数据存储系统。HBase,作为Apache Hadoop生态系统的一部分,是为处理大规模、半结构化数据而设计的...
HBase是一个开源的非关系型分布式数据库(NoSQL),基于Google的BigTable论文设计,运行在Hadoop文件系统(HDFS)之上,并且是Apache软件基金会的Hadoop项目的一部分。HBase旨在提供快速的随机访问大量结构化数据,...
### HBase Shell 常用命令详解 #### 一、HBase Shell 概述 HBase Shell 是一个基于命令行的工具,用于与HBase进行交互。它提供了一系列丰富的命令来执行基本的数据管理任务,例如创建表、插入数据、查询数据等。...
被编译的hive-hbase-handler-1.2.1.jar,用于在Hive中创建关联HBase表的jar,解决创建Hive关联HBase时报FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop....
Authors Jean-Marc Spaggiari and Kevin O’Dell also provide draft solutions and code examples to help you implement your own versions of those use cases, from master data management (MDM) and document ...
- **存储优化**:可以针对不同的存储介质进行优化,如使用Erasure Code来降低冗余度。 #### HBase生态系统 - **与Hadoop生态的集成**:HBase与HDFS、Zookeeper等组件紧密结合,形成了完整的Hadoop生态系统。 - **...
HBase是Apache软件基金会开发的一个开源、分布式、版本化、基于列族的NoSQL数据库,设计用于在大规模数据集(数十亿行 x 数百万列)上运行。它构建于Hadoop文件系统(HDFS)之上,提供高吞吐量的数据访问,特别适合...
The source code can be found at [5] The HBase issue tracker is at [6] Apache HBase is made available under the Apache License, version 2.0 [7] The HBase mailing lists and archives are listed here ...
《深入剖析HBase源码:探索NoSQL数据库的内在魅力》 HBase,作为Apache软件基金会的一款开源分布式列式存储系统,是构建于Hadoop文件系统之上的NoSQL数据库。它设计的目标是处理大规模的数据集,提供高吞吐量的读写...
HBase-代码-示例在 HBase 上使用 HBase 和 Phoenix 的一系列演示使用 HBase 代码示例有四个包支持示例我倾向于从我的 IDE 运行代码,但您可以将这些包打包或从其他工具调用HBase 包HBaseEngine 调用多线程加载器。...
5. 使用Hive-HBase-Handler:运行Hadoop、HBase,然后启动Hive,并在启动Hive时通过命令行参数指定新编译的Hive-HBase-Handler jar包以及HBase的相关配置,如HBase主节点地址(hbase.master)或Zookeeper集群地址...
本地hadoop程序bug ExitCodeException exitCode=-1073741701 case1.双击本地hadoop目录下的bin/winutils.exe 提示操作系统缺少 msvcr100.dll文件 case2.如过第一种情况不成功,则安装常用C++库合集(x86 + 64位)
hive1.2.2版本和hbase1.0.2的通信包,重新封装的,也进行了相关代码的删除和部分修改
例如,`codeGenerate`可能是SpringBoot项目中的一个代码生成模块,用于根据配置自动生成HBase和MySQL备份、恢复的Java代码。这个模块可能会包含以下功能: 1. **配置管理**:定义备份路径、压缩算法、恢复选项等。 ...
此外,通过非对称副本冗余,HBase可以支持异构介质和Erasure Code,提高数据安全性。 4. **Hadoop生态集成**:HBase融入Hadoop生态,与其他组件如HDFS、Zookeeper、Hive、Spark等深度集成,共享共建,加速了大数据...
在给定的示例中,RowKey的组成顺序是:md5url、siteCode、status、code、sdate、type、free、close、queue、scantype。这种顺序可能是根据查询需求和业务逻辑来设定的,例如,可能md5url和siteCode是区分数据的主键...