在cdh5.1.3中在mapreduce使用hbase

环境:centos6.5 、cdh5.1.3

一、hadoop命令找不到hbase相关类

(一)观察hadoop classpath的输出:

1,classpath包含了/etc/hadoop/conf,这是hadoop当前使用的配置文件的目录。

2,classpath以*结尾,

(二),找到hbase相关jar包位置

(三)修改hadoop-env.sh

打开/etc/hadoop/conf/hadoop-env.sh,为HADOOP_CLASSPATH添加上一步找到的jar文件路径。

1,指定路径是没用的。需要路径名后面加上”/*”

2,hadoop classpath命令能随时显示出来/etc/hadoop/conf/hadoop-env.sh的内容。

修改完成后:

附修改后的hadoop.env

  1. export HADOOP_MAPRED_HOME=$(([[!‘/opt/cloudera-manager/cloudera/parcels/CDH/lib/hadoop-mapreduce‘=~ CDH_MR2_HOME ]]&& echo /opt/cloudera-manager/cloudera/parcels/CDH/lib/hadoop-mapreduce )|| echo ${CDH_MR2_HOME:-/usr/lib/hadoop-mapreduce/})
    HADOOP_CLASSPATH=/usr/share/cmf/lib/cdh5/*:/opt/cloudera-manager/cm-5.1.3/share/cmf/lib/cdh5/*:/opt/cloudera-manager/cm-5.1.3/share/cmf/cloudera-navigator-server/libs/cdh5/*:/opt/cloudera-manager/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hbase/*:/opt/cloudera-manager/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hbase/lib/*:/opt/cloudera-manager/cloudera/parcels/CDH-5.1.3-1.cdh5.1.3.p0.12/lib/hbase/*:
    # JAVA_LIBRARY_PATH={{JAVA_LIBRARY_PATH}}
    export YARN_OPTS="-Xms825955249 -Xmx825955249 -Djava.net.preferIPv4Stack=true $YARN_OPTS"
    export HADOOP_CLIENT_OPTS="-Djava.net.preferIPv4Stack=true $HADOOP_CLIENT_OPTS"

二、在代码里面指定

To run
MapReduce jobs that use HBase, you need to add the HBase and Zookeeper JAR
files to the Hadoop Java classpath. You can do this by adding the following
statement to each job:

TableMapReduceUtil.addDependencyJars(job); 

TableMapReduceUtil.addDependencyJars(job);

加上这句还是需要修改上一步中的/etc/hadoop/conf/hadoop-env.sh

参考:

http://www.cloudera.com/content/cloudera/en/documentation/cdh5/v5-0-0/CDH5-Installation-Guide/cdh5ig_mapreduce_hbase.html

附部分代码:

  1. import java.text.SimpleDateFormat;
    import java.util.Date;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.hbase.client.HTableUtil;
    import org.apache.hadoop.hbase.client.Put;
    import org.apache.hadoop.hbase.mapreduce.TableMapReduceUtil;
    import org.apache.hadoop.hbase.mapreduce.TableOutputFormat;
    import org.apache.hadoop.hbase.mapreduce.TableReducer;
    import org.apache.hadoop.hbase.util.Bytes;
    import org.apache.hadoop.io.LongWritable;
    import org.apache.hadoop.io.NullWritable;
    import org.apache.hadoop.io.Text;
    import org.apache.hadoop.mapreduce.Job;
    import org.apache.hadoop.mapreduce.Mapper;
    import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
    import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;
    
    public class BatchImport {
    
        public static void main(String[] args) throws Exception {
            final Configuration configuration = new Configuration();
            // 设置zookeeper
            configuration.set("hbase.zookeeper.quorum", "192.168.1.170:2181");
            // 设置hbase表名称
            configuration.set(TableOutputFormat.OUTPUT_TABLE, "ww_log");
    
            final Job job = new Job(configuration, BatchImport.class.getSimpleName());
            TableMapReduceUtil.addDependencyJars(job);
            job.setJarByClass(BatchImport.class);
            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://192.168.1.170:8020/data/ww_log");
    
            job.waitForCompletion(true);
        }
    }
时间: 2024-10-11 18:56:58

在cdh5.1.3中在mapreduce使用hbase的相关文章

在CDH5.14.2中安装Phoenix与使用

在CDH5.14.2中安装Phoenix与使用 标签(空格分隔): 大数据平台构建 一:安装及配置Phoenix 二:Phoenix的基本操作 三:使用Phoenix bulkload数据到HBase 四:使用Phoenix从HBase中导出数据到HDFS 一:安装及配置Phoenix 1.0:phoienx 的介绍 Phoenix中文翻译为凤凰, 其最早是Salesforce的一个开源项目,Salesforce背景是一个搞ERP的,ERP软件一个很大的特点就是数据库操作,所以能搞出一个数据库中

cdh5.14.2中集成安装kylin与使用测试

cdh5.14.2中集成安装kylin与使用测试 标签(空格分隔): 大数据平台构建 一:kylin 简介 二:安装配置kylin 三:kylin 运行实例 一:kylin 简介 Apache Kylin?是一个开源的分布式分析引擎,提供Hadoop/Spark之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay Inc. 开发并贡献至开源社区.它能在亚秒内查询巨大的Hive表. kylin 软件下载: 社区版kylin下载地址:https://archive.apa

Hadoop 中利用 mapreduce 读写 mysql 数据

Hadoop 中利用 mapreduce 读写 mysql 数据 有时候我们在项目中会遇到输入结果集很大,但是输出结果很小,比如一些 pv.uv 数据,然后为了实时查询的需求,或者一些 OLAP 的需求,我们需要 mapreduce 与 mysql 进行数据的交互,而这些特性正是 hbase 或者 hive 目前亟待改进的地方. 好了言归正传,简单的说说背景.原理以及需要注意的地方: 1.为了方便 MapReduce 直接访问关系型数据库(Mysql,Oracle),Hadoop提供了DBInp

Hadoop源代码分析(包hadoop.mapred中的MapReduce接口)

前面已经完成了对org.apache.hadoop.mapreduce的分析,这个包提供了Hadoop MapReduce部分的应用API,用于用户实现自己的MapReduce应用.但这些接口是给未来的MapReduce应用的,目前MapReduce框架还是使用老系统(参考补丁HADOOP-1230).下面我们来分析org.apache.hadoop.mapred,首先还是从mapred的MapReduce框架开始分析,下面的类图(灰色部分为标记为@Deprecated的类/接口): 我们把包m

CDH5.12.0 中扩容增加计算节点

CDH5.12.0 中扩容增加计算节点 标签(空格分隔): 大数据平台构建 一: 环境准备 二: 增加节点环境系统初始化 三: 增加节点关于CDH5.12.0环境配置 四: 在CM 上面节点增加 一:环境的概述与准备 概述: 很多时候,企业的大数据环境(CDH5.12.0),根据使用的时间越来越长,空间会有不足的情况,集群的计算 能力也因此下降, 此时需要对将大数据的 集群环境进行扩容 增加计算节点. 1.1 系统逻辑部署图 1.2 安装文件详细信息列表: CM: cloudera-manage

在CDH5.14.2 中启用kudu的配置与验证

在CDH5.14.2 中启用kudu的配置 标签(空格分隔): 大数据平台构建 一: 系统平台介绍 二: 安装kudu的集成 一: 系统平台介绍 1.1. 关于kudu的介绍 Kudu是Cloudera开源的新型列式存储系统,是Apache Hadoop生态圈的新成员之一(incubating),专门为了对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺. Hadoop生态系统有很多组件,每一个组件有不同的功能.在现实场景中,用户往往需要同时部署很多Hadoop工具来解决同一个问

在CDH5.14.4 中安装StreamSets与案例运行

在CDH5.14.4 中安装StreamSets与案例运行 标签(空格分隔): 大数据平台构建 一: Streamset 简介与系统环境介绍 二: 安装软件准备 三: 在CDH5.14.4 集成使用StreamSets 四: streamsets 基本使用案例运行 一: Streamset 简介与系统环境介绍 1.1: StreamSet 简介 StreamSets由Informatica前首席产品官Girish Pancha和Cloudera前开发团队负责人Arvind Prabhakar于2

深入浅出Hadoop实战开发(HDFS实战图片、MapReduce、HBase实战微博、Hive应用)

Hadoop是什么,为什么要学习Hadoop?     Hadoop是一个分布式系统基础架构,由Apache基金会开发.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力高速运算和存储.Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS.HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上.而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据

Hbase框架原理及相关的知识点理解、Hbase访问MapReduce、Hbase访问Java API、Hbase shell及Hbase性能优化总结

转自:http://blog.csdn.net/zhongwen7710/article/details/39577431 本blog的内容包含: 第一部分:Hbase框架原理理解 第二部分:Hbase调用MapReduce函数使用理解 第三部分:Hbase调用Java API使用理解 第四部分:Hbase Shell操作 第五部分:Hbase建表.读写操作方式性能优化总结 第一部分:Hbase框架原理理解 概述 HBase是一个构建在HDFS上的分布式列存储系统:HBase是基于Google