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
相关推荐
在本文中,我们将深入探讨如何使用Python 3.6.5版本通过Kerberos认证来连接Hive和HDFS。Kerberos是一种广泛使用的网络身份验证协议,它为不安全的网络环境提供了安全的身份验证机制。它依赖于共享密钥加密来确保通信...
- **Hive/HBase -> RDBMS**:两者均不支持直接转换,但可以通过以下步骤实现:先将数据从 Hive 或 HBase 导出到 HDFS,再从 HDFS 导出到 RDBMS。 #### 三、Sqoop1 的安装 - **版本选择**:选择 Sqoop 1.4.6 版本。...
日志分析器-分析大数据组件的客户日志,例如HDFS,Hive,HBase,Yarn,MapReduce,Storm,Spark,Spark 2,Knox,Ambari Metrics,Nifi,Accumulo,Kafka,Flume,Oozie,Falcon,Atlas和Zookeeper。 内部架构 分析...
在IT行业中,Kerberos是实现企业级系统安全的重要工具,尤其在大数据生态系统中,如Spark、Oozie、MapReduce (MR)、Kafka、Hive、HDFS和HBase等组件中都有应用。下面我们将深入探讨Kerberos的原理、工作流程以及如何...
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"中,我们可以看到多个组件,如Spark、Oozie、MapReduce(MR)、Kafka、Hive、HDFS和HBase,都已经被配置以支持Kerberos安全认证。下面将详细介绍这些组件如何与Kerberos集成以及它们在...
Hive可以很好地与Hadoop生态系统中的其他组件如HDFS、HBase、Oozie、Pig等协同工作,提供了一站式的数据分析解决方案。 8. **安全性**: Hive 2.1.0版本加强了安全性,支持Hadoop的Sentry和Kerberos认证,可以...
使用HBase开发应用程序,可以通过Java API或者HBase Shell,也可以使用如HBase Thrift或REST接口与非Java语言交互。此外,HBase与Hadoop其他组件如Hive、Pig等集成良好,可以在大数据分析流程中发挥重要作用。 总之...
在Hadoop生态系统中,Kerberos通常被用来保护HDFS、HBase、Hive等组件的安全性。Kudu作为Hadoop家族的一员,同样支持Kerberos进行身份验证。 ### 2. Flink与Kudu Connector Apache Flink 提供了Kudu Connector,...
在部署Hive时,需要考虑的因素有:硬件配置(内存、CPU和磁盘空间)、网络设置、安全性设置(如Kerberos认证)、以及与Hadoop其他组件(如HDFS、YARN、HBase等)的集成。此外,为了优化性能,可能还需要调整Hive的...
它摒弃了传统的Hive+MapReduce批处理方式,转而采用类似商业并行数据库的分布式查询引擎,包括Query Planner、Query Coordinator和Query Exec Engine三个组件,实现了直接从HDFS或HBase中进行SQL查询,极大地减少了...
7. **Hive与大数据生态集成**:Hive可以与Hadoop生态系统中的其他组件如Pig、HBase、Spark等无缝集成,形成强大的数据分析平台。 8. **Hive外部表**:外部表并不删除源数据,仅删除元数据,适合处理用户需要保留源...
**五、API与操作** HBase提供了Java API以及命令行接口(HBase Shell)进行数据操作。此外,还有多种语言的客户端库,如Python、Ruby等,方便不同环境下的应用开发。 **六、性能优化** HBase可以通过调整各种参数来...
9. **Hive与HBase的集成**:Hive可以与NoSQL数据库HBase进行交互,提供对实时数据的快速访问。 10. **Hive Server2**:Hive Server2是Hive的网络服务接口,允许远程客户端通过HTTP或HTTPS协议提交查询,支持多用户...
Loader架构设计考虑了高性能、高可靠性和易用性,使得在大数据环境下与各种数据源如RDBMS(关系型数据库)、HDFS、HBase、Hive、SFTP Server、FTP Server以及其他数据源之间的数据交换变得更为便捷。 Loader的主要...
CDH是由Cloudera公司提供的一个全面、经过测试且兼容Apache Hadoop的发行版,它包含了Hadoop生态系统中的多个组件,如HDFS、MapReduce、YARN、HBase等,以及Hive、Pig等数据处理工具。CDH5.9.3作为较早的稳定版本,...
- **Hive与HBase**:Hive可以查询HBase中的数据,实现交互式分析。 - **Hive与Spark**:Hive on Spark提供更快的查询速度,利用Spark的内存计算能力。 8. **安全性**: - **Hive权限控制**:使用Hive的Metastore...
而Impala则是Cloudera公司开发的实时分析处理系统,能够快速地处理存储在Hadoop HDFS和HBase中的大数据。Python通过特定的库与这两个系统交互,实现数据的读取、写入以及分析。 1. **pyhive**: PyHive是Python连接...
1.离线部署ambari 2.7.4及HDP大数据组件服务(提供离线wangpan资源) ...4.支持HDFS、Spark、Yarn、MapReduce、Hive、Pig、 HBase、Zookeeper、Sqoop和Hcatalog等 5.很详细的文档,包括各种可能出现的Bug