zoukankan      html  css  js  c++  java
  • 《OD大数据实战》HBase整合MapReduce和Hive

    一、HBase整合MapReduce环境搭建

    1. 搭建步骤
    1)在etc/hadoop目录中创建hbase-site.xml的软连接。在真正的集群环境中的时候,hadoop运行mapreduce会通过该文件查找具体的hbase环境信息。

    ln -s /opt/modules/cdh/hbase-0.98.6-cdh5.3.6/conf/hbase-site.xml /opt/modules/cdh/hadoop-2.5.0-cdh5.3.6/etc/hadoop/hbase-site.xml

    2)将hbase需要的jar包添加到hadoop运行环境中,其中hbase需要的jar就是lib文件夹下面的所有*.jar文件。

    在hadoop中添加其他第三方的jar有多种方式,比如添加hbase的jar到hadoop环境中。这里介绍三种:
    (1)第一种:在hadoop-env.sh中添加HADOOP_CLASSPATH环境变量,value为hbase的lib文件夹下的所有jar文件。
    (2)第二种:在系统级或者用户级修改*profile文件内容,在文件中添加HADOOP_CLASSPATH。
    (3)第三种:直接将hbase的lib文件夹中所有jar文件复制到hadoop的share/hadoop/common/lib 或者share/hadoop/mapreduce等文件夹中。

    3)使用hbase自带的server jar测试是否安装成功。

    直接使用hbase自带的命名进行环境的测试,命令为:

    hadoop jar $HBASE_HOME/lib/hbase-server-0.98.6-cdh5.3.6.jar rowcounter hbasetablename

    运行该命名可以查看到我们指定table的行数。

    二、案例:统计产品信息

    编写自定义的MR程序读取hbase的数据或者往hbase中写数据注意点:
    1. 如果是从hbase中读取数据,那么要求mapper实现TableMapper抽象类。如果是往hbase中写数据,而且是有reducer的情况下,要求reducer实现TableReducer抽象类。
    2. 使用TableMapperReducerUtil类来进行job创建初始化操作。如果是往hbase中写数据,而且reducer是可以省略的话,那么我们也可以不指定reducer的具体类,直接使用指定null,比设置job的reducer的task个数为0.
    3. 如果是在window环境中运行job(任务代码的执行时在window上),那么需要将参数addDependency设置为false,或者将fs.defaultFS设置为file:///。如果是在集群中运行job,那么必须将addDependency设置为true,并且fs.defaultFS设置为hdfs://xxx
    4. 代码参考:

    三、HBase整合Hive环境搭建

  • 相关阅读:
    PHP 获取某年第几周的开始日期和结束日期的实例
    PHP科学计数法转换成数字
    laravel 辅助函数
    laravel5.3之后可以使用withCount()这个方法
    laravel 5.1 Model 属性详解
    laravel的启动过程解析
    转:按需加载html 图片 css js
    移动平台WEB前端开发技巧汇总(转)
    php重定向页面的三种方式
    zepto API参考(~~比较全面)
  • 原文地址:https://www.cnblogs.com/yeahwell/p/5788164.html
Copyright © 2011-2022 走看看