- 浏览: 112032 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
土豆蛋儿:
我想读取一个外部文件,以什么方式好了? 文件内容经常编辑
flume 自定义source -
土豆蛋儿:
大神,您好。
flume 自定义source
1:刚刚研究hive,遇到一个很迷糊的问题,我想load hadoop下的a.txt文件,将这些数据导入到/user/hive/warehouse/下的testHiveDriverTable表中,只想导入数据,不想移动该文件。
2但是每次运行后,该文件都会自动的移动到/user/hive/warehouse/下。我看教程说,建立外部表的话,就不会移动hdfs上的文件位置,但是这些我都尝试了,还是没有解决问题。请各位看看如何处理
3:代码如下:
建表语句:ResultSet res = stmt.executeQuery("create external table " + tableName + " (keystring, value string)");
Load语句:sql = "loaddata inpath '"+ROOT_PATH+"/home2/hadoop/a.txt' into table " +tableName;
运行结果:
Running: show tables'testHiveDriverTable'
testhivedrivertable
Running: describetestHiveDriverTable
key string
value string
Running: load data inpath'hdfs:////home2/hadoop/a.txt' into table testHiveDriverTable
Running: select * from testHiveDriverTable
1 a null
2 b null
3 c null
Running: select count(1) fromtestHiveDriverTable
运行前:
http://dl2.iteye.com/upload/attachment/0086/0198/4e698ec4-b3c1-3221-87d5-dcc948b4cf50.png
运行后:
http://dl2.iteye.com/upload/attachment/0086/0200/705dd992-a158-30dd-aea3-b59355877945.png
问题已经解决了。是我自己的建立表语句有问题,理解的不争取啊!
1:我本来是这么认为的,create 一个外关联表后,只是一个单纯的建表语句,需要load后才会将hadoop中的数据导入(仅仅是关联性的导入,非移动或复制),load后的原文件夹下的数据是不会变化的。但是尝试了很多次都会移动文件,困扰我的正是这个原因,是我理解错误了。
2:其实load数据,人家hive说的很明确,就是复制或者移动数据用的。文件肯定是要移位的。
3:正确的做法是
CREATE EXTERNAL TABLE testHiveDriverTable(hostname string,logdate string, type string,class string,demo array<string>) row format delimited fields terminated by '|' COLLECTION items terminated BY '@' stored as textfile location 'hdfs://IP:port/home2/hadoop/'
其中'hdfs://IP:port/home2/hadoop/'是关键,这个才是指定hadoop文件的位置。
4:建好表以后,如果不想移动数据,根本不需要load ,直接select语句就可以查询了。
2但是每次运行后,该文件都会自动的移动到/user/hive/warehouse/下。我看教程说,建立外部表的话,就不会移动hdfs上的文件位置,但是这些我都尝试了,还是没有解决问题。请各位看看如何处理
3:代码如下:
建表语句:ResultSet res = stmt.executeQuery("create external table " + tableName + " (keystring, value string)");
Load语句:sql = "loaddata inpath '"+ROOT_PATH+"/home2/hadoop/a.txt' into table " +tableName;
运行结果:
Running: show tables'testHiveDriverTable'
testhivedrivertable
Running: describetestHiveDriverTable
key string
value string
Running: load data inpath'hdfs:////home2/hadoop/a.txt' into table testHiveDriverTable
Running: select * from testHiveDriverTable
1 a null
2 b null
3 c null
Running: select count(1) fromtestHiveDriverTable
运行前:
http://dl2.iteye.com/upload/attachment/0086/0198/4e698ec4-b3c1-3221-87d5-dcc948b4cf50.png
运行后:
http://dl2.iteye.com/upload/attachment/0086/0200/705dd992-a158-30dd-aea3-b59355877945.png
问题已经解决了。是我自己的建立表语句有问题,理解的不争取啊!
1:我本来是这么认为的,create 一个外关联表后,只是一个单纯的建表语句,需要load后才会将hadoop中的数据导入(仅仅是关联性的导入,非移动或复制),load后的原文件夹下的数据是不会变化的。但是尝试了很多次都会移动文件,困扰我的正是这个原因,是我理解错误了。
2:其实load数据,人家hive说的很明确,就是复制或者移动数据用的。文件肯定是要移位的。
3:正确的做法是
CREATE EXTERNAL TABLE testHiveDriverTable(hostname string,logdate string, type string,class string,demo array<string>) row format delimited fields terminated by '|' COLLECTION items terminated BY '@' stored as textfile location 'hdfs://IP:port/home2/hadoop/'
其中'hdfs://IP:port/home2/hadoop/'是关键,这个才是指定hadoop文件的位置。
4:建好表以后,如果不想移动数据,根本不需要load ,直接select语句就可以查询了。
发表评论
-
hive + hbase
2015-01-04 10:42 773环境配置: hadoop-2.0.0-cdh4.3.0 (4 ... -
hive 数据倾斜
2014-08-27 09:03 687链接:http://www.alidata.org/archi ... -
hive 分通总结
2014-08-27 08:42 576总结分析: 1. 定义了桶,但要生成桶的数据,只能是由其他表 ... -
深入了解Hive Index具体实现
2014-08-25 08:51 739索引是标准的数据库技术,hive 0.7版本之后支持索引。hi ... -
explain hive index
2014-08-24 16:44 1148设置索引: 使用聚合索引优化groupby操作 hive> ... -
Hive 中内部表与外部表的区别与创建方法
2014-08-15 17:11 763分类: Hive 2013-12-07 11:56 ... -
hive map和reduce的控制
2014-08-15 16:14 625一、 控制hive任务中的map数: 1. 通 ... -
hive 压缩策略
2014-08-15 15:16 1769Hive使用的是Hadoop的文件 ... -
hive 在mysql中创建备用数据库
2014-08-15 09:21 881修改hive-site.xml <property> ... -
HIVE 窗口及分析函数
2014-08-11 16:21 1189HIVE 窗口及分析函数 使 ... -
hive 内置函数
2014-08-11 09:06 30701.sort_array(): sort_array(arra ... -
hive lateral view
2014-08-09 14:59 2026通过Lateral view可以方便的将UDTF得到的行转列的 ... -
hive数据的导出
2014-07-28 21:53 445在本博客的《Hive几种数据导入方式》文章中,谈到了Hive中 ... -
hive udaf
2014-07-25 16:11 755package com.lwz.udaf; import o ... -
hive自定义InputFormat
2014-07-25 09:13 862自定义分隔符 package com.lwz.inputf; ... -
HiveServer2连接ZooKeeper出现Too many connections问题的解决
2014-07-24 08:49 1768HiveServer2连接ZooKeeper出现Too man ... -
hive 常用命令
2014-07-17 22:22 6961.hive通过外部设置参数传入脚本中: hiv ... -
CouderaHadoop中hive的Hook扩展
2014-07-16 21:18 3338最近在做关于CDH4.3.0的hive封装,其中遇到了很多问题 ... -
利用SemanticAnalyzerHook回过滤不加分区条件的Hive查询
2014-07-16 16:43 1468我们Hadoop集群中将近百分之80的作业是通过Hive来提交 ... -
hive 的常用命令
2014-07-16 10:07 0设置、查看hive当前的角色: set sys ...
相关推荐
在Hive中,可以创建一个外部表,其表的存储位置指向HBase的表。这样,Hive查询可以通过HBase的表获取数据,反之亦然。映射的关键在于定义正确的SerDe(序列化/反序列化)类和配置参数,以确保Hive能理解HBase的行键...
2. **创建外部表**:在数据库`hive`中创建一个名为`party`的外部表,并指定其字段类型。 - `year`字段为整型(`int`)。 - `type`字段为字符串类型(`string`)。 - `program`字段为字符串类型(`string`)。 - ...
8. **错误处理和日志记录**:Kettle 提供详细的日志记录和错误处理机制,帮助用户跟踪和解决在处理 Hive 数据时遇到的问题。 9. **与 SQL Server 和 Oracle 数据库的连接**:除了 Hive,这个连接包还包含了连接 SQL...
- **错误定位与修复**:当数据出现问题时,可以快速定位到问题所在的层级,并针对性地解决问题。 - **灵活性**:各层级之间的解耦提高了整个系统的灵活性和可扩展性。 ### Hive处理JSON数据的方法 #### 方法一:...
2. **创建表**:创建一个外部表,使用Elasticsearch Storage Handler来存储数据。 ```sql CREATE EXTERNAL TABLE alsobuy ( key_sku string, also_sku string, count bigint ) STORED BY 'org.elastic...
Hive是建立在Hadoop生态系统上的一个数据仓库工具,它允许通过SQL-like语言(HQL)对大规模分布式数据集进行查询和管理。这本书为读者提供了全面的Hive学习资源,帮助他们掌握在大数据环境中利用Hive进行高效的数据...
Hive支持表、外部表、分区和桶等数据模型。 #### 二、Hive的安装与配置 - **安装流程**:首先需要确保已经正确安装了Hadoop环境,然后下载Hive并解压至适当位置,接着配置Hive的环境变量以及相关配置文件。 - **...
9. **Hive外部表**:外部表不控制数据的生命周期,只存储表的定义,数据的删除由用户独立管理。 10. **Hive与Spark集成**:Hive可以与Apache Spark集成,利用Spark的内存计算能力提高查询速度。 通过阅读`hive2....
表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 3、 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及 查询计划的生成。生成的查询计划存储在 HDFS 中,...
4. 索引:虽然Hive不支持传统意义上的数据库索引,但可以通过创建外部表和视图来实现类似的功能,提高查询速度。 在面试中,可能会遇到的问题涵盖以下几个方面: 1. Hadoop的两个主要组成部分是什么?它们各自的...
从外部文件系统加载数据到 Hive 表。 2.6 Insert 包括插入数据、写入文件系统、插入顺序和初始值设定。 2.7 Cli Hive 命令行选项、交互式 Shell 命令及资源调用。 **3. Hive 其他操作** 包括 Limit、Top k、...
Hive是一个建立在Hadoop之上的数据仓库工具,主要用于对存储在Hadoop文件系统(HDFS)中的数据进行数据分析和处理。它提供了类似SQL的查询语言——Hive SQL,使得用户能够方便地对Hadoop中的大规模数据进行提取、...
整合Hive与HBase的过程是通过Hive提供的外部表存储处理程序HiveStorageHandlers(通常依赖于hive-hbase-handler.jar工具包)来实现的,使得Hive能够直接操作HBase中的表。整合后的系统中,Hive能够执行数据的批量...
- **表**: 存储数据的基本单元,可以是内部表也可以是外部表。 - **视图**: 基于一个或多个表的虚拟表,用于简化查询或实现某些特定功能。 ### 使用Hive的过程 使用Hive进行数据处理的一般流程如下: 1. **创建表...
- **元数据存储**:通常采用关系型数据库(如MySQL或Derby)来存储Hive的元数据信息,这些信息包括表的定义、列属性、表的属性(例如是否为外部表)、表数据所在的目录等。 - **解释器、编译器、优化器和执行器**:...
在DBaver中配置Hive连接时,需要以下关键组件的JAR文件: 1. **Hive JDBC驱动**:这是连接到Hive服务器的关键,它实现了Java Database Connectivity (JDBC) 接口,使得像DBaver这样的Java应用能够与Hive通信。在这...
Hive还支持创建外部表、创建临时表、指定存储格式等高级用法,以满足不同的业务需求。 总结,Hive作为大数据处理的重要工具,通过与Hadoop的紧密结合,提供了便捷的数据仓库功能。理解Hive的结构和基本操作,是有效...
启动Hive客户端是为了与Hive服务端建立连接,从而能够执行HQL查询。 1. **配置Hive客户端**:确保客户端能够找到Hive的服务端地址。这通常涉及到对`hive-site.xml`文件的配置,特别是`hive.server2.thrift.bind....
Hive是一个建立在Hadoop生态系统之上的数据仓库工具,它将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。Hive通过将SQL语句转换为MapReduce任务来处理HDFS上的数据,使得非程序员也能方便地对大数据进行...
- **外部表**:与内部表不同,外部表的数据存储位置可以在HDFS上的任何位置,这使得外部表在数据加载时更为灵活。 - **分区**:为了提高查询性能,可以基于某个列值将表划分为多个分区。每个分区包含表的一部分...