`

hdfs,hive,hbase,与kerberos的java操作

 
阅读更多
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.security.UserGroupInformation;

/**
* @author niehw 2017-02-17
*
*/
public class HdfsKerberosDemo {

public static void main(String[] args) throws IOException {
    System.out.println("正在列出文件.......................");
    Configuration conf = new Configuration();
    conf.set("fs.hdfs.impl", org.apache.hadoop.hdfs.DistributedFileSystem.class.getName());
    conf.set("fs.file.impl", org.apache.hadoop.fs.LocalFileSystem.class.getName());

    URI uri=null;
    try {
        uri = new URI("hdfs://nameservice1:8020");
    } catch (URISyntaxException e1) {
        e1.printStackTrace();
    }
     UserGroupInformation.setConfiguration(conf);
        conf.set("hadoop.security.authentication", "kerberos");
        conf.set("java.security.krb5.kdc", "  /var/kerberos/krb5kdc/kdc.conf");
        conf.set("java.security.krb5.realm", "TDH");
        UserGroupInformation.setConfiguration(conf);
        try {
            UserGroupInformation.loginUserFromKeytab("hdfs/tdh01@TDH", "/etc/hdfs1/hdfs.keytab");
        } catch (IOException e) {
            System.out.println("nie__________hw"+e.getMessage());
            e.printStackTrace();
        }
        FileSystem fs = FileSystem.get(uri,conf);  
        Path srcPath = new Path("/wwc");
        boolean isok = fs.mkdirs(srcPath);
        if(isok){
            System.out.println("create dir ok!");
        }else{
            System.out.println("create dir failure");
        }
        fs.close();
}
}

#

import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.HColumnDescriptor;
import org.apache.hadoop.hbase.HTableDescriptor;
import org.apache.hadoop.hbase.KeyValue;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HBaseAdmin;
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.util.Bytes;
import org.apache.hadoop.security.UserGroupInformation;
/**
* @author niehw 2017-02-17
*
*/
public class HbaseKerberosDemo {

private static Configuration conf = null;

static {
    Configuration HBASE_CONFIG = new Configuration();
    HBASE_CONFIG.set("hbase.zookeeper.quorum", "192.9.145.231,192.9.145.232,192.9.145.233");
    HBASE_CONFIG.set("hbase.master.kerberos.principal", "hbase/_HOST@TDH");
    HBASE_CONFIG.set("hbase.regionserver.kerberos.principal", "hbase/_HOST@TDH");
    HBASE_CONFIG.set("hbase.security.authentication", "kerberos");
    HBASE_CONFIG.set("hadoop.security.authentication", "kerberos");
    HBASE_CONFIG.set("zookeeper.znode.parent", "/hyperbase1");
    conf = HBaseConfiguration.create(HBASE_CONFIG);
    System.out.println("结束");

}

public static void creatTable(String tableName, String[] familys) throws Exception {
    HBaseAdmin admin = new HBaseAdmin(conf);
    if (admin.tableExists(tableName)) {
        System.out.println("table already exists!");
    } else {
        HTableDescriptor tableDesc = new HTableDescriptor(tableName);
        for (int i = 0; i < familys.length; i++) {
            tableDesc.addFamily(new HColumnDescriptor(familys[i]));
        }
        admin.createTable(tableDesc);
        System.out.println("create table " + tableName + " ok.");
    }
}

public static void deleteTable(String tableName) throws Exception {

    HBaseAdmin admin = new HBaseAdmin(conf);
    admin.disableTable(tableName);
    admin.deleteTable(tableName);
    System.out.println("delete table " + tableName + " ok.");
}

public static void addRecord(String tableName, String rowKey, String family, String qualifier, String value)
        throws Exception {
    try {
        HTable table = new HTable(conf, tableName);
        Put put = new Put(Bytes.toBytes(rowKey));
        put.add(Bytes.toBytes(family), Bytes.toBytes(qualifier), Bytes.toBytes(value));
        table.put(put);
        System.out.println("insert recored " + rowKey + " to table " + tableName + " ok.");
    } catch (IOException e) {
        e.printStackTrace();
    }
}

public static void getOneRecord(String tableName, String rowKey) throws IOException {
    HTable table = new HTable(conf, tableName);
    Get get = new Get(rowKey.getBytes());
    Result rs = table.get(get);
    KeyValue[] raw = rs.raw();
    for (KeyValue kv : raw) {
        System.out.print(new String(kv.getRow()) + " ");
        System.out.print(new String(kv.getFamily()) + ":");
        System.out.print(new String(kv.getQualifier()) + " ");
        System.out.print(kv.getTimestamp() + " ");
        System.out.println(new String(kv.getValue()));
    }
}

public static void main(String[] args) {
    UserGroupInformation.setConfiguration(conf);

    try {
        //UserGroupInformation.loginUserFromKeytab("hbase/tdh01","d://etc_keytab/hbase.keytab");
        UserGroupInformation.loginUserFromKeytab("hbase/tdh01", "/etc/hyperbase1/hbase.keytab");

    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    String tablename = "studentnie";
    String[] familys = { "cf" };
    String num = args[0].trim();
    num="4";
    System.out.println("test---------------------test--------------test" + num);
    if (num.equals("1")) {
        System.out.println("enter creatTable");
        try {
            HbaseKerberosDemo.creatTable(tablename, familys);

        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    if (num.equals("2")) {
        System.out.println("enter deleteTable");
        try {
            HbaseKerberosDemo.deleteTable(tablename);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    if (num.equals("3")) {
        System.out.println("enter addRecord");
        try {
            HbaseKerberosDemo.addRecord("studentnie", "1_1", "cf", "name", "niehw");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    if (num.equals("4")) {
        System.out.println("enter getOneRecord");
        try {
            HbaseKerberosDemo.getOneRecord(tablename, "1_1");
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
}

#

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import org.apache.hadoop.security.UserGroupInformation;

/**
* @author niehw 2017-02-17
*
*/
public class HiveKerberosDemo {

private static String driverName = "org.apache.hive.jdbc.HiveDriver";

public static void main(String[] args) throws SQLException {
    try {
        org.apache.hadoop.conf.Configuration conf = new org.apache.hadoop.conf.Configuration();
        conf.set("hadoop.security.authentication", "kerberos");
        conf.set("java.security.krb5.kdc", "  /var/kerberos/krb5kdc/kdc.conf");
        conf.set("java.security.krb5.realm", "TDH");
        UserGroupInformation.setConfiguration(conf);
        UserGroupInformation.loginUserFromKeytab("hive/tdh01@TDH", "/etc/inceptorsql1/hive.keytab");
        Class.forName(driverName);
    } catch (Exception e) {
        e.printStackTrace();
        System.exit(1);
    }
    String jdbcURL = "jdbc:hive2://tdh01:10000/default;principal=hive/tdh01@TDH";
    Connection conn = DriverManager.getConnection(jdbcURL);
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from tags");
    while (rs.next()) {
        System.out.println(rs.getString(1));
        System.out.println(rs.getString(2));
    }
    rs.close();
    stmt.close();
    conn.close();
}

 本文转载:https://www.2cto.com/net/201702/601124.html

分享到:
评论

相关推荐

    python3.6.5基于kerberos认证的hive和hdfs连接调用方式

    在本文中,我们将深入探讨如何使用Python 3.6.5版本通过Kerberos认证来连接Hive和HDFS。Kerberos是一种广泛使用的网络身份验证协议,它为不安全的网络环境提供了安全的身份验证机制。它依赖于共享密钥加密来确保通信...

    Sqoop数据采集工具简介、安装、使用学习笔记(配合Hive和Hbase)

    - **Hive/HBase -&gt; RDBMS**:两者均不支持直接转换,但可以通过以下步骤实现:先将数据从 Hive 或 HBase 导出到 HDFS,再从 HDFS 导出到 RDBMS。 #### 三、Sqoop1 的安装 - **版本选择**:选择 Sqoop 1.4.6 版本。...

    LogAnalyzer:分析大数据组件的客户日志,例如HDFS,Hive,HBase,Yarn,MapReduce,Storm,Spark,Spark 2,Knox,Ambari Metrics,Nifi,Accumulo,Kafka,Flume,Oozie,Falcon,Atlas和Zookeeper

    日志分析器-分析大数据组件的客户日志,例如HDFS,Hive,HBase,Yarn,MapReduce,Storm,Spark,Spark 2,Knox,Ambari Metrics,Nifi,Accumulo,Kafka,Flume,Oozie,Falcon,Atlas和Zookeeper。 内部架构 分析...

    kerberos安全认证

    在IT行业中,Kerberos是实现企业级系统安全的重要工具,尤其在大数据生态系统中,如Spark、Oozie、MapReduce (MR)、Kafka、Hive、HDFS和HBase等组件中都有应用。下面我们将深入探讨Kerberos的原理、工作流程以及如何...

    Hive2.x系列驱动,

    3. hbase-protocol-1.1.1.jar 和 hbase-server-1.1.1.jar:这两个是Apache HBase的相关库,HBase是一个基于Hadoop的分布式数据库,如果Hive与HBase集成,这些库可能用于在Hive查询中直接操作HBase表。 4. hadoop-...

    kerberos安全认证demo

    在这个"Kerberos安全认证demo"中,我们可以看到多个组件,如Spark、Oozie、MapReduce(MR)、Kafka、Hive、HDFS和HBase,都已经被配置以支持Kerberos安全认证。下面将详细介绍这些组件如何与Kerberos集成以及它们在...

    hive-2.1.0.rar

    Hive可以很好地与Hadoop生态系统中的其他组件如HDFS、HBase、Oozie、Pig等协同工作,提供了一站式的数据分析解决方案。 8. **安全性**: Hive 2.1.0版本加强了安全性,支持Hadoop的Sentry和Kerberos认证,可以...

    hbase-0.94.16-security.tar.gz

    使用HBase开发应用程序,可以通过Java API或者HBase Shell,也可以使用如HBase Thrift或REST接口与非Java语言交互。此外,HBase与Hadoop其他组件如Hive、Pig等集成良好,可以在大数据分析流程中发挥重要作用。 总之...

    flink写入带kerberos认证的kudu connector

    在Hadoop生态系统中,Kerberos通常被用来保护HDFS、HBase、Hive等组件的安全性。Kudu作为Hadoop家族的一员,同样支持Kerberos进行身份验证。 ### 2. Flink与Kudu Connector Apache Flink 提供了Kudu Connector,...

    hive-0.10.0-cdh4.3.0.tar.gz

    在部署Hive时,需要考虑的因素有:硬件配置(内存、CPU和磁盘空间)、网络设置、安全性设置(如Kerberos认证)、以及与Hadoop其他组件(如HDFS、YARN、HBase等)的集成。此外,为了优化性能,可能还需要调整Hive的...

    impala学习总结.doc

    它摒弃了传统的Hive+MapReduce批处理方式,转而采用类似商业并行数据库的分布式查询引擎,包括Query Planner、Query Coordinator和Query Exec Engine三个组件,实现了直接从HDFS或HBase中进行SQL查询,极大地减少了...

    Apache Hive Essentials-Packt Publishing(2015).pdf

    7. **Hive与大数据生态集成**:Hive可以与Hadoop生态系统中的其他组件如Pig、HBase、Spark等无缝集成,形成强大的数据分析平台。 8. **Hive外部表**:外部表并不删除源数据,仅删除元数据,适合处理用户需要保留源...

    Apache HBase ™ Reference Guide.zip

    **五、API与操作** HBase提供了Java API以及命令行接口(HBase Shell)进行数据操作。此外,还有多种语言的客户端库,如Python、Ruby等,方便不同环境下的应用开发。 **六、性能优化** HBase可以通过调整各种参数来...

    apache-hive-2.3.4-bin.tar.gz

    9. **Hive与HBase的集成**:Hive可以与NoSQL数据库HBase进行交互,提供对实时数据的快速访问。 10. **Hive Server2**:Hive Server2是Hive的网络服务接口,允许远程客户端通过HTTP或HTTPS协议提交查询,支持多用户...

    大数据Loader架构原理.pdf

    Loader架构设计考虑了高性能、高可靠性和易用性,使得在大数据环境下与各种数据源如RDBMS(关系型数据库)、HDFS、HBase、Hive、SFTP Server、FTP Server以及其他数据源之间的数据交换变得更为便捷。 Loader的主要...

    hive-1.1.0-cdh5.9.3

    CDH是由Cloudera公司提供的一个全面、经过测试且兼容Apache Hadoop的发行版,它包含了Hadoop生态系统中的多个组件,如HDFS、MapReduce、YARN、HBase等,以及Hive、Pig等数据处理工具。CDH5.9.3作为较早的稳定版本,...

    Hive 编程指南

    - **Hive与HBase**:Hive可以查询HBase中的数据,实现交互式分析。 - **Hive与Spark**:Hive on Spark提供更快的查询速度,利用Spark的内存计算能力。 8. **安全性**: - **Hive权限控制**:使用Hive的Metastore...

    python3.6链接hive和impala的所有依赖包.zip

    而Impala则是Cloudera公司开发的实时分析处理系统,能够快速地处理存储在Hadoop HDFS和HBase中的大数据。Python通过特定的库与这两个系统交互,实现数据的读取、写入以及分析。 1. **pyhive**: PyHive是Python连接...

    大数据:基于Docker离线部署2.7.4版本ambari及启用kerberos安全认证(物理机同理)

    1.离线部署ambari 2.7.4及HDP大数据组件服务(提供离线wangpan资源) ...4.支持HDFS、Spark、Yarn、MapReduce、Hive、Pig、 HBase、Zookeeper、Sqoop和Hcatalog等 5.很详细的文档,包括各种可能出现的Bug

Global site tag (gtag.js) - Google Analytics