create'hivehbaseStu', 'stu' put'hivehbaseStu', 'row1', 'stu:stuName', 'tom' put'hivehbaseStu', 'row1', 'stu:course', 'english' put'hivehbaseStu', 'row1', 'stu:val', '90' put'hivehbaseStu', 'row2', 'course:stuName', 'jim' put'hivehbaseStu', 'row2', 'course:course', 'chinese' put'hivehbaseStu', 'row2', 'course:val', '60' put'hivehbaseStu', 'row3', 'course:stuName', 'john' put'hivehbaseStu', 'row3', 'course:course', 'english' put'hivehbaseStu', 'row3', 'course:val', '80' put'hivehbaseStu', 'row4', 'course:stuName', 'lily' put'hivehbaseStu', 'row4', 'course:course', 'math' put'hivehbaseStu', 'row4', 'course:val', '98' CREATE EXTERNAL TABLE hbasehive_table (key STRING, stuName STRING, course STRING, val INT) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = "stu:stuName, stu:course, val:math") TBLPROPERTIES("hbase.table.name" ="hivehbaseStu"); hive> show tables; OK age age_out cite cite_count dummy exter_table hbase_table_1 hbase_table_2 hbase_table_3 hbasehive_table myouter pokes pokes2 student student1 test testhivedrivertable testouter userinfoouter userouter wyp Time taken: 0.071 seconds, Fetched: 21 row(s) hive> select * from hbasehive_table; OK row1 tom english 90 row2 jim chinese 60 row3 john english 80 row4 lily math 98 Time taken: 0.32 seconds, Fetched: 4 row(s) hive> select * from hbasehive_table where val > 80; Total jobs = 1 Launching Job 1 out of 1 Number of reduce tasks is set to 0 since there's no reduce operator Starting Job = job_1405586574373_0001, Tracking URL = http://hadoopMaster:8088/proxy/application_1405586574373_0001/ Kill Command = /usr/local/hadoop/bin/hadoop job -kill job_1405586574373_0001 Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 0 2014-07-17 17:15:41,397 Stage-1 map = 0%, reduce = 0% 2014-07-17 17:15:55,784 Stage-1 map = 100%, reduce = 0%, Cumulative CPU 5.14 sec MapReduce Total cumulative CPU time: 5 seconds 140 msec Ended Job = job_1405586574373_0001 MapReduce Jobs Launched: Job 0: Map: 1 Cumulative CPU: 5.14 sec HDFS Read: 267 HDFS Write: 38 SUCCESS Total MapReduce CPU Time Spent: 5 seconds 140 msec OK row1 tom english 90 row4 lily math 98 Time taken: 60.632 seconds, Fetched: 2 row(s)
hadoop@hadoopMaster:~$ hive --service hiveserver & 默认开启的是10000端口 ======================================================== package com.hn.cluster.hive.jdbc; import java.net.InetSocketAddress; import java.net.Proxy; import java.net.URLConnection; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; public class HiveJdbcClient { private static String driverName = "org.apache.hadoop.hive.jdbc.HiveDriver"; /** * @param args * @throws SQLException */ public static void main(String[] args) throws SQLException { /*Properties p = new Properties(); p.setProperty("http.proxyHost", "proxy.cmcc"); p.setProperty("http.proxyPort", "8080"); System.getProperties().setProperty("socksProxyHost", "proxy.cmcc"); System.getProperties().setProperty("socksProxyPort", "8080");*/ try { /*System.getProperties().setProperty("http.proxyHost", "proxy.cmcc"); System.getProperties().setProperty("http.proxyPort", "8080");*/ Class.forName(driverName); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); System.exit(1); } // InetSocketAddress addr = new InetSocketAddress("proxy.cmcc",8080); // Proxy proxy = new Proxy(Proxy.Type.HTTP, addr); // http 代理 // // Connection con = DriverManager.getConnection("jdbc:hive://218.205.81.36:10000/prob_db", p); // URLConnection conn = url.openConnection(proxy); Connection con = DriverManager.getConnection( "jdbc:hive://hadoopMaster:10000/default"); Statement stmt = con.createStatement(); String tableName = "hivetbl"; // stmt.executeQuery("drop table " + tableName); // ResultSet res = stmt.executeQuery("create table " + tableName + // " (key int, value string)"); // show tables String sql = "show tables "; System.out.println("Running: " + sql); ResultSet res = stmt.executeQuery(sql); if (res.next()) { System.out.println(res.getString(1)); } // describe table sql = "describe " + tableName; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); while (res.next()) { System.out.println(res.getString(1) + "\t" + res.getString(2)); } sql = "select * from hivetbl"; System.out.println("Running: " + sql); res = stmt.executeQuery(sql); while (res.next()) { System.out.println(res.getString(1) + "\t" + res.getString(2) + "\t" + res.getString(3) + "\t" + res.getString(4) + "\t"); } } }
端口配置: <property> <name>hive.hwi.listen.port</name> <value>9999</value> <description>This is the port the Hive Web Interface will listen on</description> </property> 启动服务:hive --service hiveserver & 命令行模式:hive --service cli web界面的启动方式,hive --service hwi
[hadoop@hadoopMaster ~]$hbase org.apache.hadoop.hbase.io.hfile.HFile -f /hbase/data/default/hivehbaseStu/b78bed2cf19f6584c942c82c9c5daa6d/stu/f9d111e2f685446eae44bde1562dfc4b -p K: row1/stu:course/1420509822704/Put/vlen=7/mvcc=0 V: english K: row1/stu:dt/1420509822910/Put/vlen=6/mvcc=0 V: 201412
相关推荐
4. **创建HBase表**:在HBase中创建所需的数据表,并定义列族和列。 5. **在Hive中创建外部表**:使用Hive的CREATE EXTERNAL TABLE语句,指定表的列名、数据类型,以及HBase的表名、列族和列。例如: ```sql ...
4. **使用示例**:教程可能包含创建HBase表,然后在Hive中创建对应的外部表并进行查询的实际代码示例。 5. **性能优化**:讨论如何通过调整HBase和Hive的配置来优化查询性能,比如设置合适的HBase Region大小,调整...
整合Hive与HBase的过程是通过Hive提供的外部表存储处理程序HiveStorageHandlers(通常依赖于hive-hbase-handler.jar工具包)来实现的,使得Hive能够直接操作HBase中的表。整合后的系统中,Hive能够执行数据的批量...
5. 如果是HBase中已经存在的表,可以使用CREATE EXTERNAL TABLE命令将HBase表映射为Hive外部表,并通过HBaseStorageHandler来直接在Hive中查询HBase表中的数据。 整合Hive和HBase之后,可以实现对大量非结构化或半...
- 创建Hive外部表,指定HBase表作为数据源,定义列与HBase列族的映射。 4. **数据导入导出** - 使用Hive将数据写入HBase,通常通过INSERT INTO或LOAD DATA命令,需确保Hive表结构与HBase表结构匹配。 - 从HBase...
- **创建映射表**:在Hive中创建一个与HBase表相对应的外部表。例如: ```sql CREATE EXTERNAL TABLE h2h( rowkey string, f1 map,string>, f2 map,string> ) STORED BY 'org.apache.hadoop.hive.hbase....
在Hive中,可以创建一个外部表,其表的存储位置指向HBase的表。这样,Hive查询可以通过HBase的表获取数据,反之亦然。映射的关键在于定义正确的SerDe(序列化/反序列化)类和配置参数,以确保Hive能理解HBase的行键...
Hive-HBase连接器允许用户在Hive中创建外部表,将这些表映射到HBase的数据表,从而可以在Hive的SQL环境中直接对HBase数据进行查询和分析。在实际操作中,用户需要将这些JAR文件放入Hive的lib目录下,这是Hive加载其...
3. **Hive元数据管理**:Hive需要知道HBase中的表结构,所以要在Hive中创建外部表,指向HBase的表。这需要配置Hive的HBase连接器,使Hive能理解HBase的表和列族。 4. **查询与分析**:通过Hive的SQL-like语法,对...
如果在Hive里面是创建的外部表需要在HBase中先创建,内部表则会在HBase中自动创建指定的表名。因为Hive不支持删除等操作,而HBase里面比较方便,所以我们可以采用这种方式。 HBase与Hive数据同步可以实现数据的一致...
创建一个名为`hbase_gpsinfo`的外部表,存储方式采用`HBaseStorageHandler`,并将键值对映射设置为`key`和`i:c`。 ```sql CREATE EXTERNAL TABLE hbase_gpsinfo (key STRING, value STRING) STORED BY 'org.apache....
1. Hive到HBase:利用Hive的外部表功能,将Hive表的数据导出到HBase。这通常通过定义一个HBase的Hive表,并使用HBaseStorageHandler来实现。 2. HBase到Hive:通过MapReduce任务,将HBase中的数据导入到Hive,创建...
Hive不直接存储数据,而是依赖HDFS存储数据,其内部表和外部表都是逻辑上的概念,实际的数据仍然存储在HDFS上。Hive适用于批处理和离线数据分析场景。 - **HBase**:HBase是一个分布式的、面向列的数据库系统,它...
这需要在Hive中创建外部表,指定HBase的表和列族信息,然后通过Hive SQL执行查询。 2. HBase与Impala集成:Impala提供了一种通过JNI(Java Native Interface)与HBase交互的方式。需要在Impala的配置中指定HBase的...
整合后,可以在Hive中创建外部表,这些表映射到HBase的表上。这种整合利用了Hive的SQL处理能力与HBase的高并发读写能力。 在整合Hive和HBase之前,需要做好一系列的准备工作。首先,需要确保Hadoop集群、HBase集群...
Hive支持表、外部表、分区和桶等数据模型。 #### 二、Hive的安装与配置 - **安装流程**:首先需要确保已经正确安装了Hadoop环境,然后下载Hive并解压至适当位置,接着配置Hive的环境变量以及相关配置文件。 - **...
2. **数据导入Hive**:创建一个Hive外部表,该表与HBase表结构对应,然后使用`LOAD DATA`命令将HBase查询结果导入Hive。这一步需要配置HBase与Hive之间的连接,例如通过设置`hbase-site.xml`和`core-site.xml`的属性...
Hive是Hadoop生态中的数据仓库工具,可以将HBase作为其外部表,实现离线分析和查询,弥补了HBase在复杂查询上的不足。 8. **HBase操作** 常用的操作包括创建表、插入数据、查询数据、删除数据以及更新数据等。...
例如,Hive可以将HBase作为外部表,方便进行复杂的数据分析;Spark则可以直接连接到HBase,进行实时流处理和数据分析。 《HBase不睡觉书》这本书很可能涵盖了HBase的基础操作,如创建表、插入数据、查询数据以及...
可以通过在Hive中创建外部表,并将其指向HBase表的方式实现。这种方式通常用于读取HBase中的数据。 ##### JDBC访问Hive 除了Beeline之外,还可以使用标准的JDBC驱动程序来访问Hive。这种方式适用于开发Java应用程序...