hadoop@hadoopSlave2:/opt/hadoop/testData$ touch hiveOuter.log hadoop@hadoopSlave2:/opt/hadoop/testData$ vim hiveOuter.log 20140413 jim0 2014-06-06 20140414 jim1 2014-06-06 ... hadoop@hadoopSlave2:/opt/hadoop/testData$ scp -rv hiveOuter.log hadoopMaster:/opt/hadoop/hive/ hadoop@hadoopSlave2:/opt/hadoop/testData$ ssh hadoopMaster hadoop@hadoopMaster:~$ cd /opt/hadoop/hive/ hadoop@hadoopMaster:/opt/hadoop/hive$ hdfs dfs -moveFromLocal /opt/hadoop/hive/hiveOuter.log /user/hive/ hadoop@hadoopMaster:/opt/hadoop/hive$ hdfs dfs -ls -R / -rw-r--r-- 2 hadoop supergroup 2591 2014-06-06 10:00 /user/hive/hiveOuter.log drwxr-xr-x - hadoop supergroup 0 2014-06-06 09:51 /user/hive/warehouse drwxr-xr-x - hadoop supergroup 0 2014-06-06 09:51 /user/hive/warehouse/test1 ... hive> create EXTERNAL table IF NOT EXISTS userOuter (id int,name string, ed string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' location 'hdfs://hadoopMaster:9000/user/hive/warehouse/test1'; OK Time taken: 0.309 seconds hive> show tables; OK userouter Time taken: 0.045 seconds, Fetched: 12 row(s) hive> LOAD DATA INPATH 'hdfs://hadoopMaster:9000/user/hive/warehouse/hiveOuter.log' INTO TABLE userOuter partition(ptDate='20140606'); Loading data to table default.hiveOuter partition (ptdate=20140606) Partition default.testouter{ptdate=20140606} stats: [numFiles=3, numRows=0, totalSize=4312, rawDataSize=0] OK Time taken: 1.153 seconds hive> SELECT * FROM userouter; OK 20140413 jim0 2014-06-06 20140414 jim1 2014-06-06 20140415 jim2 2014-06-06 .... 此时hive将该表的数据文件信息保存到metadata数据库中。 hadoop@hadoopMaster:~$ mysql -uroot -proot Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 47 Server version: 5.5.37-0ubuntu0.12.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | hiveDB | | mysql | | performance_schema | | schools | +--------------------+ 5 rows in set (0.00 sec) mysql> use hiveDB; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed 可以看到该表的类型为EXTERNAL_TABLE。 mysql> SELECT * FROM TBLS WHERE TBL_NAME = 'userouter'; +--------+-------------+-------+------------------+--------+-----------+-------+-----------+----------------+--------------------+--------------------+ | TBL_ID | CREATE_TIME | DB_ID | LAST_ACCESS_TIME | OWNER | RETENTION | SD_ID | TBL_NAME | TBL_TYPE | VIEW_EXPANDED_TEXT | VIEW_ORIGINAL_TEXT | +--------+-------------+-------+------------------+--------+-----------+-------+-----------+----------------+--------------------+--------------------+ | 25 | 1402020143 | 1 | 0 | hadoop | 0 | 26 | userouter | EXTERNAL_TABLE | NULL | NULL | +--------+-------------+-------+------------------+--------+-----------+-------+-----------+----------------+--------------------+--------------------+ 1 row in set (0.00 sec) 在表SDS中记录了表userouter的数据文件路径为hdfs://hadoopMaster:9000/user/hive/warehouse/test1。 mysql> SELECT * FROM SDS WHERE SD_ID=25; +-------+-------+------------------------------------------+---------------+---------------------------+----------------------------------------------------+-------------+------------------------------------------------------------+----------+ | SD_ID | CD_ID | INPUT_FORMAT | IS_COMPRESSED | IS_STOREDASSUBDIRECTORIES | LOCATION | NUM_BUCKETS | OUTPUT_FORMAT | SERDE_ID | +-------+-------+------------------------------------------+---------------+---------------------------+----------------------------------------------------+-------------+------------------------------------------------------------+----------+ | 25 | 24 | org.apache.hadoop.mapred.TextInputFormat | | | hdfs://hadoopMaster:9000/user/hive/warehouse/test1 | -1 | org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat | 25 | +-------+-------+------------------------------------------+---------------+---------------------------+----------------------------------------------------+-------------+------------------------------------------------------------+----------+ 1 row in set (0.00 sec)
相关推荐
通过上述步骤,我们可以了解到如何在Hadoop环境下使用Hive创建外部表,并掌握相关的配置选项和操作方法。创建外部表不仅有助于更好地组织和管理数据,还能避免因误操作导致的数据丢失问题。希望本文能帮助读者更好地...
首先,理解Hive内部表和外部表的区别是关键。内部表的数据由Hive完全管理,删除内部表会同时删除其对应的数据。而外部表仅仅是一个指向实际数据的引用,删除外部表不会影响数据。在这个场景下,我们关注的是内部表,...
Hive支持内部表和外部表。内部表由Hive完全管理,数据存储在HDFS上,删除内部表时,数据也会被一同删除。而外部表只是对HDFS上数据的引用,删除外部表不会影响原始数据,这对于数据共享和管理非常有用。 在“分区表...
在Hive中,可以创建一个外部表,其表的存储位置指向HBase的表。这样,Hive查询可以通过HBase的表获取数据,反之亦然。映射的关键在于定义正确的SerDe(序列化/反序列化)类和配置参数,以确保Hive能理解HBase的行键...
在这个阶段,我们需要使用Hive来创建外部数据表,以便于后续的分析。外部数据表的创建可以确保数据的准确性和可靠性,从而提高后续分析的准确性。 2.3 创建分区表 创建分区表是基于Hive构建数据仓库的最后一步。在...
- 使用DDL创建内部表和外部表,内部表的数据存储在HDFS中,由Hive管理;外部表的数据存储在用户指定位置,不随表删除而删除。 - DML操作包括查看表、查看表结构,以及插入、更新和删除数据。 - 分区表的创建有助...
7. **外部表**:外部表链接到用户指定的数据源,删除外部表不会删除原始数据,适合用来管理用户自己的数据。 8. **UDF(User Defined Functions)**:Hive允许用户自定义函数,扩展其内置功能,满足特定的数据处理...
外部表的元数据由Hive管理,但数据本身的位置由用户指定,这使得数据可以独立于Hive存在。 5. 利用Hive的自动分区功能,将`dividends_unpartitioned`表中的数据按特定条件插入到`dividends`的各个分区中,这样可以...
3. **配置步骤**:集成过程可能包括在Hive中添加HBase的元数据信息,配置HBase的连接参数,以及在Hive中创建外部表指向HBase表等步骤。 4. **使用示例**:教程可能包含创建HBase表,然后在Hive中创建对应的外部表并...
2. **创建Hive外部表**: 创建一个指向Kafka topic的Hive外部表,这样Hive就可以通过这个表来读取Kafka中的数据。 3. **定义SerDe**: SerDe(Serializer/Deserializer)是Hive处理数据的关键组件,需要为Kafka数据...
整合Hive与HBase的过程是通过Hive提供的外部表存储处理程序HiveStorageHandlers(通常依赖于hive-hbase-handler.jar工具包)来实现的,使得Hive能够直接操作HBase中的表。整合后的系统中,Hive能够执行数据的批量...
2. **创建表**:创建一个外部表,使用Elasticsearch Storage Handler来存储数据。 ```sql CREATE EXTERNAL TABLE alsobuy ( key_sku string, also_sku string, count bigint ) STORED BY 'org.elastic...
- **外部表**(External Table):与内部表不同,外部表的数据不是存储在Hive的仓库目录中,而是指向HDFS中已经存在的文件或目录。这意味着即使删除了外部表,HDFS中的数据也不会被删除。这为数据备份和恢复提供了...
除了基础安装配置,还需要了解一些高级主题,如分区表、桶表、视图、外部表、Hive 与其他大数据组件的集成(如 HBase、Spark、Impala 等)以及性能优化策略。"资料必看.zip" 文件可能包含这些进阶内容,建议仔细阅读...
3. **表和分区**:讨论Hive中的表创建、分区策略以及如何有效管理大量数据。 4. **数据类型和函数**:介绍Hive支持的各种数据类型,以及丰富的内置函数,如统计函数、日期函数、字符串处理函数等。 5. **数据加载...
- **TABLE_PARAMS**:表级属性,如是否为外部表,表的注释等。 - **TBLS**:所有Hive表的基本信息,包括TBL_ID和SD_ID。 **3. Hive对象创建过程** 创建Hive表时,会经历以下步骤: 1. 解析用户的HQL语句,生成表、...
在Hive创建表时,可以使用`CREATE EXTERNAL TABLE`命令并指定表结构,同时指定存储处理器为`com.mongodb.hadoop.hive.MongoStorageHandler`,并且通过`TBLPROPERTIES`指定MongoDB的连接信息,比如`mongo.uri`。...
在Hive的命令行界面,你可以使用SQL语句来创建数据库和表,加载数据,执行查询等操作。 8. **Hive和Windows兼容性问题**: 在Windows上运行Hive可能会遇到一些与Unix/Linux不同的问题,例如路径分隔符、文件权限...
标题提到的"show create table 表名"是Hive的一个常用命令,用于展示创建特定表的原始SQL语句。这对于理解和复制表结构非常有帮助。然而,描述中提到的“hive中文乱码”问题,是一个常见的困扰,尤其是在处理包含...
- **总述**:创建表是使用Hive进行数据分析的第一步。 - **语法**: ```sql CREATE TABLE table_name (col1 data_type [COMMENT col_comment], ... ) [COMMENT table_comment] [PARTITIONED BY (part_col1 data_...