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

security cdh mapreduce access hbase

阅读更多
执行mapreduce的用户必须是可以访问hdfs相应目录和执行mapreduce的账户,例如hive。
指定hive的节点kinit获取执行权限
在mapreduce main代码中加入访问hbase的权限,例如:

import java.io.IOException;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.HTableInterface;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.hadoop.security.UserGroupInformation;

public class Connection {
    private static final String ZK_PATH = "10.1.33.21,10.1.33.22,10.1.33.23";

    public static void main(String[] args) {
       org.apache.hadoop.conf.Configuration conf = HBaseConfiguration.create();
       conf.set("hbase.zookeeper.quorum", ZK_PATH);
       conf.set("hbase.rpc.protection", "privacy");
       conf.set("hadoop.security.authentication", "Kerberos");

       UserGroupInformation.setConfiguration(conf);
       try {
           UserGroupInformation.loginUserFromKeytab(conf.get("hbase.master.kerberos.principal"), conf.get("hbase.keytab.path"));
       } catch (IOException e1) {
           e1.printStackTrace();
       }
     
//     HTablePool tablePool = new HTablePool(conf, 5);
//     @SuppressWarnings("deprecation")
//     HTableInterface usersTable = (HTable)tablePool.getTable("dsp_data");
     
       HTableInterface dsp_data;
       try {
           dsp_data = new HTable(conf, "dsp_data");
           Put p = new Put(Bytes.toBytes("rowkey2"));
           p.add(Bytes.toBytes("index"), Bytes.toBytes("click_count"),
                  Bytes.toBytes("111"));
           dsp_data.put(p);
           dsp_data.close();
       } catch (IOException e) {
           e.printStackTrace();
       }
    }
}

同时,hdfs hive yarn xml加入到jar包中,若不行,采用ToolRunner形式执行jar,此种方式可以加载到正确jar包,若还不行,可将xml配置文件,加入/etc/hbase 配置文件夹下。

官方文章中(http://hbase.apache.org/book/security.html)提示需要加入配置:
<property>
        <name>hbase.rpc.protection</name>
        <value>privacy</value>
</property>
经过测试,就因为有了该配置导致如上问题,client hbase site xml不能加入此配置。
说明:
在cdh5.2.0中,
<property>
      <name>hbase.rpc.engine</name>
      <value>org.apache.hadoop.hbase.ipc.SecureRpcEngine</value>
    </property>
此配置也不需要加入xml中。
xml例如:
<property>
<name>hbase.rootdir</name>
<value>hdfs://ip-10-1-33-20.ec2.internal:8020/hbase</value>
</property>
<property>
<name>hbase.client.write.buffer</name>
<value>2097152</value>
</property>
<property>
<name>hbase.client.pause</name>
<value>100</value>
</property>
<property>
<name>hbase.client.retries.number</name>
<value>35</value>
</property>
<property>
<name>hbase.client.scanner.caching</name>
<value>100</value>
</property>
<property>
<name>hbase.client.keyvalue.maxsize</name>
<value>10485760</value>
</property>
<property>
<name>hbase.rpc.timeout</name>
<value>60000</value>
</property>
<property>
<name>hbase.snapshot.enabled</name>
<value>true</value>
</property>
<property>
<name>hbase.security.authentication</name>
<value>kerberos</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
</property>
<property>
<name>zookeeper.znode.parent</name>
<value>/hbase</value>
</property>
<property>
<name>zookeeper.znode.rootserver</name>
<value>root-region-server</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>ip-10-1-33-23.ec2.internal,ip-10-1-33-22.ec2.internal,ip-10-1-33-21.ec2.internal,ip-10-1-33-25.ec2.internal,ip-10-1-33-24.ec2.internal</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<property>
<name>hbase.master.kerberos.principal</name>
<value>hbase/_HOST@YEAHMOBI.COM</value>
</property>
<property>
<name>hbase.regionserver.kerberos.principal</name>
<value>hbase/_HOST@YEAHMOBI.COM</value>


mr中使用http://www.cloudera.com/content/cloudera/en/documentation/cdh5/v5-0-0/CDH5-Installation-Guide/cdh5ig_mapreduce_hbase.html  TableMapReduceUtil.addDependencyJars(job);方式加载。
并且使用user api加入例如:
hbase.master.kerberos.principal=hbase/ip-10-1-10-15.ec2.internal@YEAHMOBI.COM
hbase.keytab.path=/home/dev/1015q.keytab

补充:2015-03-17
如上mapreduce访问安全的hbase是不可行的,解决办法参见《mapreduce mapper access security hbase》




分享到:
评论

相关推荐

    CDH-Hbase的安装1

    在本文中,我们将深入探讨HBase的安装过程及其在CDH环境中的集成。HBase是Apache Hadoop生态系统中的一个核心组件,它是一个分布式、版本化的、支持列族的NoSQL数据库,特别适合处理大规模的数据存储。CDH(Cloudera...

    hbase-1.2.0-cdh5.14.0.tar.gz

    "hbase-1.2.0-cdh5.14.0.tar.gz" 是针对Cloudera Distribution Including Apache Hadoop (CDH) 5.14.0版本的HBase安装包,该版本的HBase是1.2.0版,与CDH 5.x系列兼容。 1. **HBase概述** HBase是一种非关系型...

    hbase-0.98.6-cdh5.3.6.zip

    10. **MapReduce集成**:HBase可以与MapReduce结合,进行大规模数据的批处理和分析。 11. **Shell命令**:HBase提供了一个命令行接口(Shell),用户可以通过Shell执行各种管理和操作命令,如创建表、插入数据、...

    CDH6.3.2-Poenix5-hbase2.1

    通过Poenix5,用户可以利用熟悉的SQL语法对HBase中的数据进行复杂查询,无需编写复杂的MapReduce作业,大大简化了数据分析流程。同时,HBase2.1的高吞吐量和低延迟特性,使得实时数据处理成为可能,满足了实时分析和...

    CDH使用Solr实现HBase二级索引.docx

    CDH 使用 Solr 实现 HBase 二级索引 在大数据处理中,HBase 是一种流行的 NoSQL 数据库,用于存储大量的数据。然而,在查询和检索数据时,HBase 的性能可能不太理想。这是因为 HBase 是基于 Key-Value 的存储方式,...

    hbase-cdh5:Hbase-cloudera Docker

    CDH版本:cdh5.1 java:jdk7u67(64位) HBase模式:伪分布式裸露端口动物园管理员服务器:2181 hbase-master:65000 hbase-master Web UI:65010 hbase-regionserver:65020 hbase-regionserver Web UI:65030如何...

    hbase-client-2.1.0-cdh6.3.0.jar

    hbase-client-2.1.0-cdh6.3.0.jar

    hbase-1.2.0-cdh5.14.2.tar.gz

    CDH是一个由Cloudera提供的预打包的Hadoop发行版,包含了多个开源项目,如HDFS、MapReduce、HBase等,旨在简化Hadoop集群的部署和管理。在CDH5.14.2中,HBase 1.2.0的稳定性、兼容性和性能得到了充分的优化,使得...

    CDH5.17版本Hue接入HBase步骤.pdf

    ### CDH5.17版本Hue接入HBase步骤详解 #### 一、背景介绍 Cloudera Distribution Including Apache Hadoop (CDH) 是由 Cloudera 公司提供的一个包含 Apache Hadoop 在内的大数据处理平台。CDH 集成了多种开源组件...

    Hadoop-2.0.0-cdh4.3.0安装手册(hbase-0.94.15-cdh4.6.0)

    【Hadoop-2.0.0-cdh4.3.0 安装手册(hbase-0.94.15-cdh4.6.0)】 在云计算和大数据处理领域,Apache Hadoop 和 Cloudera's Distribution Including Apache Hadoop (CDH) 是广泛使用的开源框架。CDH4 是 Cloudera 提供...

    hbase-0.98.6-cdh5.3.0.tar.gz

    HBase是参考google的bigtable的一个开源产品,建立在hdfs之上的一个提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统。是一种介于nosql和RDBMs之间的一种数据库系统,仅支持通过rowkey和range进行数据的...

    hbase的hbase-1.2.0-cdh5.14.2.tar.gz资源包

    `hbase-1.2.0-cdh5.14.2.tar.gz` 是针对Cloudera Distribution Including Apache Hadoop (CDH) 5.14.2的一个特定版本的HBase打包文件。CDH是一个流行的Hadoop发行版,包含了多个大数据组件,如HDFS、MapReduce、YARN...

    CDH搭建Hadoop集群

    本文档主要以使用Cloudera Manager5.9.3 自动搭建Hbase集群为例,介绍如何使用Cloudera Manager自动搭建Hadoop相关集群,简化为多台服务器搭建Hadoop集群工作,提高工作效率。至于如何使用Cloudera Manager来管理...

    CDH5.13-phoenix-4.11.0-HBase-1.2源码包 编译可用

    《CDH5.13与Phoenix 4.11.0-HBase 1.2源码编译详解》 在大数据处理领域,Cloudera Data Hub(CDH)作为一个全面的开源大数据平台,深受广大用户的青睐。CDH5.13版本是其重要的一个迭代,集成了多种组件,如Hadoop、...

    hbase-1.0.0-cdh5.6.0.tar.gz

    在CDH5.6.0中,HBase还集成了YARN资源管理器,这使得HBase可以更好地与其他Hadoop组件共享资源,如MapReduce任务。你可以通过编写MapReduce程序,利用HBase的批量加载功能,进行大规模数据导入。 总的来说,HBase ...

    基于cdh5.7.5集群的solr(4.10.3-cdh5.7.5)+hbase(1.2.0-cdh5.7.5)构建二级索引方案

    本文将深入探讨如何基于CDH5.7.5集群,结合Solr(4.10.3-cdh5.7.5)和HBase(1.2.0-cdh5.7.5)来构建二级索引方案,这将极大地提升数据查询性能。 首先,让我们了解一下Solr。Solr是Apache Lucene项目的一个子项目...

    cdh6.3.2 集成 Phoenix

    在大数据处理领域,CDH(Cloudera Distribution Including Apache Hadoop)是一款广泛使用的开源大数据平台,它包含了Hadoop生态系统中的多个组件,如HDFS、YARN、MapReduce、Hive等。而Phoenix是一个针对HBase的SQL...

    hbase-1.2.0-cdh5.10.0.tar.gz

    大数据开发过程中所要用到的安装包Hbase,这个安装包是CDH公司的产品。HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。

    apache atlas2.1.0 整合CDH6.3.2编译安装包

    CDH 6.3.2 包含了Hadoop生态系统中的多个组件,如HDFS、YARN、MapReduce、HBase、Spark等,这些组件在大数据处理和分析中扮演着重要角色。Apache Atlas 的整合意味着它可以与CDH中的这些组件无缝集成,提供统一的...

Global site tag (gtag.js) - Google Analytics