hdfs数据到hive中:

假设hdfs中已存在好了数据,路径是hdfs:/localhost:9000/user/user_w/hive_g2park/user_center_enterprise_info/*

1.提前(在hive中)准备好表, user_center_enterprise_info2 ,用于接收hdfs数据。

CREATE TABLE user_center_enterprise_info2 (
`id`string ,
`name` string
);

2.使用load data方式,加载数据,(已执行数据库选择命令 hive>use testdb;)

以下 相对/绝对 两种路径加载都行

hive>load data inpath              'hive_g2park/user_center_enterprise_info/*' into table user_center_enterprise_info2;

hive>load data inpath '/user/user_w/hive_g2park/user_center_enterprise_info/*' into table user_center_enterprise_info2;

此时:

hdfs dfs -ls /user/user_w/hive_g2park/user_center_enterprise_info 发现里面内容没了

3.把数据从hive写回hdfs,让数据出现在hdfs

数据是从hdfs的 hive_g2park/user_center_enterprise_info  写到hive的,

现在写道           hive_g2park/user_center_enterprise_info3 路径下

-- 设置task数 set mapred.reduce.tasks = ; 结果数据平均分区(分区数等于task数);
set mapred.reduce.tasks = ; insert overwrite directory 'hive_g2park/user_center_enterprise_info3'
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
'field.delim'='\t',
'serialization.format'= '',
'serialization.null.format'=''
) STORED AS TEXTFILE
select * from user;

此时在hdfs下生成了新路径,

hive_g2park/user_center_enterprise_info3
并且有数据在其文件夹下

我的理解数据消失:
hive本质是map-reduce,即操作hdfs数据的方式有:spark,mr,pig,hive。

而hive只是在mr上包了一层,hive操作的时候,本质上,是直接操作的hdfs数据,也就是说hdfs数据load后,和hive数据是同一份数据
而且load data inpath '/user/hive/os.txt' into table os;这种方式loca数据到hive辣么快,应该是修改了指针而已,而不是复制了一份数据到hive。

hdfs数据到hive就隐藏不见,这么设计,就是为了避免数据在被hive改动的同时,又被mr直接操作hdfs数据,删除移动什么的,造成数据的不一致,所以数据丢hive里hdfs里就看不见了

sqoop export --connect jdbc:mysql://127.0.0.1:3306/parkdb --username xiaoming --password '' --table t_vip_user --export-dir 'hive_g2park/vip/*' --fields-terminated-by "\t"

附录:

sqoop的导出参数中,hive-import作用:本次导入到hive中

导入看得到hdfs文件夹范例
sqoop import --connect jdbc:mysql://localhost:3306/user --username h --password '123' \
--fields-terminated-by "\t" --table enterprise_info --delete-target-dir --target-dir 'hive_g2park/user_center_enterprise_info' \
--create-hive-table --hive-table g2park.user_center_enterprise_info

导入看不到hdfs文件夹范例
sqoop import --connect jdbc:mysql://localhost:3306/user --username h --password '123'
--fields-terminated-by "\t" --table enterprise_info --delete-target-dir
--hive-import --target-dir 'hive_g2park/user_center_enterprise_info'
--create-hive-table --hive-table g2park.user_center_enterprise_info

hdfs数据到hive中,以及hdfs数据隐身理解的更多相关文章

  1. Hive中导入Oracle数据错误:Listener refused the connection with the following error: ORA-12505

    问题: 今天往Hive中导入Oracle数据的时候碰到了如下错误:Listener refused the connection with the following error: ORA-12505 ...

  2. (转)原始图像数据和PDF中的图像数据

    比较原始图像数据和PDF中的图像数据,结果见表1.1.表1.1中各种“解码器”的解释见本文后续的“PDF支持的图像格式”部分,“PDF中的图像数据”各栏中的数据来自开源的PdfView.如果您有兴趣查 ...

  3. 一个I/O线程可以并发处理N个客户端连接和读写操作 I/O复用模型 基于Buf操作NIO可以读取任意位置的数据 Channel中读取数据到Buffer中或将数据 Buffer 中写入到 Channel 事件驱动消息通知观察者模式

    Tomcat那些事儿 https://mp.weixin.qq.com/s?__biz=MzI3MTEwODc5Ng==&mid=2650860016&idx=2&sn=549 ...

  4. 使用sqoop1.4.4从oracle导入数据到hive中错误记录及解决方案

    在使用命令导数据过程中,出现如下错误 sqoop import --hive-import --connect jdbc:oracle:thin:@192.168.29.16:1521/testdb ...

  5. sqoop导oracle数据到hive中并动态分区

    静态分区: 在hive中创建表可以使用hql脚本: test.hql USE TEST; CREATE TABLE page_view(viewTime INT, userid BIGINT, pag ...

  6. hive 之 将excel数据导入hive中 : excel 转 txt

    一.需求: 1.客户每月上传固定格式的excel文件到指定目录.每月上传的文件名只有结尾月份不同,如: 10月文件名:  zhongdiangedan202010.xlsx  , 11月文件名: zh ...

  7. sqoop 从oracle导数据到hive中,date型数据时分秒截断问题

    oracle数据库中Date类型倒入到hive中出现时分秒截断问题解决方案 1.问题描述: 用sqoop将oracle数据表倒入到hive中,oracle中Date型数据会出现时分秒截断问题,只保留了 ...

  8. sqoop1.4.4从oracle导数据到hive中

    sqoop从oracle定时增量导入数据到hive 感谢: http://blog.sina.com.cn/s/blog_3fe961ae01019a4l.htmlhttp://f.dataguru. ...

  9. 在hive中查询导入数据表时FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict

    当我们出现这种情况时 FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least ...

随机推荐

  1. oracle启用异步IO(db file async I/O submit)

    市局双随机awr报告中有大量db file async I/O submit等待事件 参考两篇文章: [案例]Oracle等待事件db file async I/O submit产生原因和解决办法 d ...

  2. events.py 知识点记录

    1.__all__ __all__是一个字符串list,其他模块中使用from xxx import *的时候只能导入__all__列表里的内容 2.sys.version_info 获取版本号 im ...

  3. Windows PowerShell 入門(3)-スクリプト編

    これまでの記事 Windows PowerShell 入門(1)-基本操作編 Windows PowerShell 入門(2)-基本操作編 2 対象読者 Windows PowerShellでコマンド ...

  4. Git学习笔记04-管理修改

    Git跟踪并管理的是修改,而非文件.新增文件,修改一行,删除一点,都算是修改. 在.git工作区新增一个文件,test.txt,输入test git ...然后git add ​ ​ add之后修改t ...

  5. 设计模式C++学习笔记之二十(完结篇 & 面向对象原则)设计模式C++实例下载

      Prototype(原型模式) 20.1.解释 概念:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. main(),客户 ICloneableNow,只有一个接口Clone CM ...

  6. cu命令

    选项: -b:仅显示行中指定直接范围的内容: -c:仅显示行中指定范围的字符: -d:指定字段的分隔符,默认的字段分隔符为“TAB”: -f:显示指定字段的内容: -n:与“-b”选项连用,不分割多字 ...

  7. ASP.NET MVC5高级编程 之 Ajax

    jQuery不仅支持所有现代浏览器,包括IE.Firefox.Safari.Opera和Chrome等,还可以在编写代码和浏览器API冲突时隐藏不一致性(和错误). 1. jQuery jQuery擅 ...

  8. Git操作----删除untracked files

    # 删除 untracked files git clean -f # 连 untracked 的目录也一起删掉 git clean -fd # 连 gitignore 的untrack 文件/目录也 ...

  9. 用layui前端框架弹出form表单以及提交

    第一步:引用两个文件 第二步:点击删除按钮弹出提示框 /*删除开始*/ $(".del").click(function () { var id = $(this).attr(&q ...

  10. oracle里面用sql做报表并带小计合计常用到的函数

    1-- DECODE函数是Oracle PL/SQL是功能强大的函数之一,假设我们想给职员加工资,其标准是:工资在8000元以下的将加20%:工资在8000元以上的加15%,通常的做法是,先选出记录 ...