- 浏览: 108477 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
土豆蛋儿:
我想读取一个外部文件,以什么方式好了? 文件内容经常编辑
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 731环境配置: hadoop-2.0.0-cdh4.3.0 (4 ... -
hive 数据倾斜
2014-08-27 09:03 642链接:http://www.alidata.org/archi ... -
hive 分通总结
2014-08-27 08:42 540总结分析: 1. 定义了桶,但要生成桶的数据,只能是由其他表 ... -
深入了解Hive Index具体实现
2014-08-25 08:51 700索引是标准的数据库技术,hive 0.7版本之后支持索引。hi ... -
explain hive index
2014-08-24 16:44 1115设置索引: 使用聚合索引优化groupby操作 hive> ... -
Hive 中内部表与外部表的区别与创建方法
2014-08-15 17:11 721分类: Hive 2013-12-07 11:56 ... -
hive map和reduce的控制
2014-08-15 16:14 594一、 控制hive任务中的map数: 1. 通 ... -
hive 压缩策略
2014-08-15 15:16 1725Hive使用的是Hadoop的文件 ... -
hive 在mysql中创建备用数据库
2014-08-15 09:21 836修改hive-site.xml <property> ... -
HIVE 窗口及分析函数
2014-08-11 16:21 1148HIVE 窗口及分析函数 使 ... -
hive 内置函数
2014-08-11 09:06 30231.sort_array(): sort_array(arra ... -
hive lateral view
2014-08-09 14:59 1986通过Lateral view可以方便的将UDTF得到的行转列的 ... -
hive数据的导出
2014-07-28 21:53 415在本博客的《Hive几种数据导入方式》文章中,谈到了Hive中 ... -
hive udaf
2014-07-25 16:11 712package com.lwz.udaf; import o ... -
hive自定义InputFormat
2014-07-25 09:13 816自定义分隔符 package com.lwz.inputf; ... -
HiveServer2连接ZooKeeper出现Too many connections问题的解决
2014-07-24 08:49 1686HiveServer2连接ZooKeeper出现Too man ... -
hive 常用命令
2014-07-17 22:22 6361.hive通过外部设置参数传入脚本中: hiv ... -
CouderaHadoop中hive的Hook扩展
2014-07-16 21:18 3252最近在做关于CDH4.3.0的hive封装,其中遇到了很多问题 ... -
利用SemanticAnalyzerHook回过滤不加分区条件的Hive查询
2014-07-16 16:43 1419我们Hadoop集群中将近百分之80的作业是通过Hive来提交 ... -
hive 的常用命令
2014-07-16 10:07 0设置、查看hive当前的角色: set sys ...
相关推荐
掌握HQL创建数据库,掌握HQL创建内部表、外部表、分区表 使用有location 和无location创建HIVE数据库,库名与自己的名字相关;...外部表:创建表时,加上external,表示创建的为外部表。删除表时,数据不会被删除。
表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 3、 解释器、编译器、优化器完成 HQL 查询语句从词法分析、语法分析、编译、优化以及 查询计划的生成。生成的查询计划存储在 HDFS 中,...
这是Hadoop MapReduce应用程序,它为Hive外部表生成测试数据,它读取Apache Hive的表创建查询,并根据其DDL生成TEXTFILE格式的行数据。 我提到了 建立MVN清洁包装 用法 将您的DDL查询放在HDFS或S3上,并指定为-q...
大数据运维 郭现伟 大数据之运维全文共12页,当前为第1页。...Hive 中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 解释器、编译器、优化器、执行器 解释器、编译
与大数据存储平台的数据集成 数据库提供外部表技术,可以将交易型和分析型数据库与其他存储平台对接,在数 据库内部,通过外部表访问大数据存储平台中的数据,包括: a)与HDFS对接:外部表访问引擎(读写模块),...
与大数据存储平台的数据集成 数据库提供外部表技术,可以将交易型和分析型数据库与其他存储平台对接,在数 据库内部,通过外部表访问大数据存储平台中的数据,包括: a)与HDFS对接:外部表访问引擎(读写模块),...
如果输入是CSV文件或parquet文件,当然也可以先建立一个hive外部表,再从hive import到hbase 也可以通过编码的方式,通过bulkload生成hfile然后再合并到hbase 致谢 yl-hbase-rep实现机制参考了lily
MUG-Nantes-Demo-Hadoop MongoDB Hadoop演示连接器 幻灯片: : 步骤0-建立 Java cd spark/java mvn clean package assembly:single 第1步-导入数据 ... 外部表创建 hive -f hive/1-create-stock-prices.sql
大数据开发中常用组件封装zookeeper名字服务,配置管理,组员管理互斥锁,...esudf建立外部表mysqldruid 连接池canal 模拟主从复制,同步redisspring-redisjava-redis单机分布式锁 jedis.set(lockKey, requestId, SET_
云数据库方案设计 云数据库的云化改造 面向云化环境,数据库在多个方面需要进行改造,... 云数据集成 3.1 与RDS的数据集成 数据库使用外部表技术,可以访问RDS中的其他数据。 支持多种格式的数据; 支持访问和更新数据