`
duantonghai
  • 浏览: 20344 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hbase 跑mapreduce环境搭建

 
阅读更多

 在hadoop上跑hbase 的map reduce程序的时候环境却很多jar,需要在hadoop-env.sh中进行补充

引入hbase lib下面以hbase开头的jar,

 

另外增加metrics-core-2.2.0.jar, 发在extlib下面

 

for f in $HBASE_HOME/lib/hbase*.jar; do

  if [ "$HADOOP_CLASSPATH" ]; then

    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f

  else

    export HADOOP_CLASSPATH=$f

  fi

done

 

 

for f in $HADOOP_HOME/extlib/*.jar; do

  if [ "$HADOOP_CLASSPATH" ]; then

    export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$f

  else

    export HADOOP_CLASSPATH=$f

  fi

done

 

 

./hadoop jar /tmp/idStatics.jar sea.hbase.IdStatic

 

 

源代码:

import java.io.IOException;

import java.util.List;

 

import org.apache.commons.collections.CollectionUtils;

import org.apache.commons.lang.StringUtils;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.conf.Configured;

import org.apache.hadoop.fs.FileSystem;

import org.apache.hadoop.fs.Path;

import org.apache.hadoop.hbase.Cell;

import org.apache.hadoop.hbase.CellUtil;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.client.Result;

import org.apache.hadoop.hbase.client.Scan;

import org.apache.hadoop.hbase.io.ImmutableBytesWritable;

import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;

import org.apache.hadoop.hbase.mapreduce.TableMapper;

import org.apache.hadoop.hbase.util.Bytes;

import org.apache.hadoop.io.Text;

import org.apache.hadoop.mapreduce.Job;

import org.apache.hadoop.mapreduce.Reducer;

import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

import org.apache.hadoop.util.Tool;

import org.apache.hadoop.util.ToolRunner;

 

public class IdStatics extends Configured implements Tool{

 

public static final String table = "id_records";

public static final byte[] column = Bytes.toBytes("idValue");

 

@Override

public int run(String[] arg0) throws Exception {

Configuration conf = HBaseConfiguration.create();

       conf.set("hbase.zookeeper.quorum", "192.168.1.250:2181,192.168.1.250:2182,192.168.1.250:2183");

       conf.set("zookeeper.znode.parent", "/hbase13");

 

       Job job = Job.getInstance(conf,"read_data_from_hbase");

       job.setJarByClass(IdStatics.class);

       job.setMapOutputKeyClass(Text.class);

       job.setMapOutputValueClass(Text.class);

       job.setReducerClass(ReadReducer.class);

       job.setSpeculativeExecution(false);

      

       //对整个CF扫描

       Scan scan = new Scan();

       scan.addFamily(column);

       scan.setMaxVersions(5);

       scan.setCaching(10);

scan.setBatch(2);

 

       TableMapReduceUtil.initTableMapperJob(this.table,

               scan,

               ReadMapper.class,

               Text.class,

               Text.class,

               job);

 

       String output = "/result";

       FileSystem.get(job.getConfiguration()).delete(new Path(output), true);

       FileOutputFormat.setOutputPath(job,new Path(output));

 

       return job.waitForCompletion(true) ? 0 : 1;

}

 

 

static class ReadMapper extends TableMapper<Text,Text> {

 

       @Override

       protected void map(ImmutableBytesWritable key, Result result, Context context) throws IOException,InterruptedException{

           if (result == null || result.isEmpty()) return;

           result.getFamilyMap(column);

 

           List<Cell> cells = result.listCells();   

            if(CollectionUtils.isNotEmpty(cells)){  

                for(Cell cell:cells){  

//String family = Bytes.toString(CellUtil.cloneFamily(cell));

String value = Bytes.toString(CellUtil.cloneValue(cell));

 

context.write(new Text(StringUtils.reverse(value)),new Text("1"));

                }  

            }  

       }

   }

 

 

static class ReadReducer extends Reducer<Text,Text,Text,Text> {

       @Override

       protected void reduce(Text key, Iterable<Text> values, Context context) throws IOException,InterruptedException{

           Integer total=0;

           for(Text each:values) {

                    total=total+Integer.valueOf(each.toString());

           }

           if(total>1) {

           context.write(key,new Text(total.toString()));

           }

       }

   }

 

 

 public static void main(String[] args) throws Exception{

       System.exit(ToolRunner.run(new IdStatics(),args));

   }

 

}

分享到:
评论

相关推荐

    Hbase 高可用分布式搭建

    总结,HBase的高可用分布式搭建涉及到Hadoop环境的配置、HBase组件的优化以及与Hadoop生态中其他工具的协同。通过合理的配置和管理,可以构建出稳定、可靠的HBase集群,满足大数据场景下的高性能存储和访问需求。

    Hadoop2.7.1+Hbase1.2.1集群环境搭建(7)hbase 性能优化

    本篇将详细阐述如何在Hadoop 2.7.1环境下搭建HBase 1.2.1集群,并进行性能优化,以提升系统效率。 首先,我们需要了解Hadoop和HBase的基本概念。Hadoop是基于分布式文件系统HDFS(Hadoop Distributed File System)...

    hbase2.0环境搭建

    hbase2.0环境搭建的知识点可以从多个维度展开,包括环境准备、软件安装、配置调整、服务启动以及性能优化等方面。 首先,环境准备是hbase2.0环境搭建的重要环节。文档中提到需要有hadoop2.7.5环境的搭建和启动,...

    hbase安装和基本介绍

    - **HBase 作为数据源**: 使用 MapReduce 或 Hive 对 HBase 中的数据进行分析。 #### 六、HBase 与 Kafka 的集成 - **Kafka 作为消息队列**: Kafka 提供了一个高性能的消息发布/订阅系统。 - **数据生产和消费**: ...

    Hbase 安装与基本使用

    HDFS作为HBase的数据存储层,MapReduce用于批处理HBase中的数据,YARN管理计算资源。 通过以上步骤,你应该已经掌握了HBase的基本安装和使用方法。然而,HBase的复杂性远不止于此,如表设计、故障恢复、监控及性能...

    hadoop+hbase+hive集群搭建

    Java运行环境(JDK)是Hadoop、HBase和Hive运行的必要条件。文中提到的JDK版本为1.6,虽然现在可能更推荐使用更高版本的JDK,但1.6在当时是广泛支持的稳定版本。配置`.bash_profile`文件中的环境变量,如`JAVA_HOME`...

    Hadoop集群+Zookeeper+HBase环境搭建

    搭建Hadoop集群、Zookeeper集群和HBase环境是一个复杂的过程,需要在每一步都确保配置无误。从规划机器、安装配置Java环境,到安装和配置Hadoop、Zookeeper、HBase,每一步都需要遵循严格的指导原则和最佳实践。搭建...

    windows10 搭建最新的 hadoop 3.1.3 和 hbase 2.2.2 测试环境 配置文件

    在Windows 10环境下搭建Hadoop 3.1.3和HBase 2.2.2测试环境是一项技术性较强的任务,涉及到多个组件的安装、配置以及相互间的协同工作。以下将详细介绍如何进行这一过程,以及相关的配置文件作用。 首先,我们需要...

    Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6 搭建分布式集群环境详解

    本教程将深入探讨如何利用Hadoop2.7.3、HBase1.2.5和ZooKeeper3.4.6搭建一个完整的分布式集群环境,以支持大规模数据存储和处理。 首先,我们来了解下这三个组件的基本概念: 1. **Hadoop**:Apache Hadoop是一个...

    搭建HBase完全分布式数据库

    HBase是一个分布式、面向列的开源数据库,它运行在Hadoop的文件系统(HDFS)之上,利用Hadoop的MapReduce来处理HBase中的大数据,同时也使用Apache ZooKeeper作为分布式协同服务。HBase特别适合于需要快速读写访问...

    大数据Hadoop+HBase+Spark+Hive集群搭建教程(七月在线)1

    在构建大数据处理环境时,Hadoop、HBase、Spark和Hive是四个核心组件,它们协同工作以实现高效的数据存储、处理和分析。本教程将详细介绍如何在Ubuntu系统上搭建这些组件的集群。 1. **Hadoop**:Hadoop是Apache...

    hdfs2-7_3+hbase1_2_5 HA withQJM环境搭建

    在提供的文件列表中,`start-journalnodes.txt`可能是启动JournalNodes的脚本,`hbase分布式环境搭建.docx`提供了HBase环境搭建的详细指南,`hbase环境搭建脚本`包含自动化部署HBase的脚本,`hadoop环境搭建`文件...

    kafka、zookeeper、hadoop、hbase、phoenix集群搭建和java调用.zip

    搭建HBase集群,我们需要先安装Hadoop,然后配置`hbase-site.xml`,指定HMaster、HRegionServer等相关参数。Java调用HBase时,可以利用`org.apache.hadoop.hbase.client.ConnectionFactory`创建连接,执行CRUD操作。...

    HBase官方文档

    用户可以在MapReduce程序中访问HBase中的数据,也可以将MapReduce作为批量加载数据到HBase中的手段。 ### HBase安全 HBase的安全章节讲述了如何安全地访问HBase集群,包括安全客户端访问、访问控制和安全批量加载...

    大数据环境搭建(java, hadoop, hbase, spark, miniconda, jupyte)

    本环境搭建主要包括以下几个核心部分:Java、Hadoop、HBase、Spark、Miniconda以及Jupyter。 首先,Java是大数据处理的基础,因为许多大数据工具依赖于Java运行时环境。在Ubuntu中,首先需要下载JDK的压缩包,将其...

    hbase官方开发参考手册

    HBase 官方开发参考手册是每个 HBase 用户必备的参考资料,它覆盖了从基础到高级的所有概念和操作,包括集群的搭建、数据模型的理解、架构的设计、优化配置、安全保障和与 Hadoop 生态系统的集成等方面。通过这份...

    hadoop2.7.1+zk3.5+hbase2.1+phoenix 安装部署环境打包

    本压缩包提供了这些组件的安装部署资源,便于快速搭建一个完整的Hadoop2.7.1、ZK3.5、HBase2.1和Phoenix5.1.0的基础环境。 首先,Hadoop是Apache开源项目,它提供了分布式文件系统(HDFS)和MapReduce计算框架,...

    apache hbase reference guide

    - **单机模式**:适用于开发测试环境,便于快速搭建和使用。 - **分布式模式**:适用于生产环境,能够提供更高的吞吐量和可用性。 #### 二、配置管理 - **Configuration Files**(配置文件): - `hbase-site....

Global site tag (gtag.js) - Google Analytics