概述:使用dump 方式将mongo数据导出,上传到hdfs,然后在hive中建立外部表。

1.     使用mongodump 将集合导出

mongodump --host=localhost:27017  --db=mydb --collection=users  --out=/tmp/root/mongodump0712

[root@slave2 root]# mongodump --host=localhost:27017  --db=mydb --collection=users  --out=/tmp/root/mongodump0712 
2018-07-12T10:07:27.894+0800    writing mydb.users to 
2018-07-12T10:07:27.896+0800    done dumping mydb.users (2 documents)
[root@slave2 root]# cd /tmp/root
[root@slave2 root]# ls
3604abd2-a359-4c53-a7b4-e4ea84185801  3604abd2-a359-4c53-a7b4-e4ea841858017799130181720133073.pipeout  dump  hive.log  hive.log.2018-07-11  mongodump0712
[root@slave2 root]# ll
total 624
drwx------. 2 root root      6 Jul 12 09:34 3604abd2-a359-4c53-a7b4-e4ea84185801
-rw-r--r--. 1 root root      0 Jul 12 09:34 3604abd2-a359-4c53-a7b4-e4ea841858017799130181720133073.pipeout
drwxr-xr-x. 5 root root     44 Jul 12 10:04 dump
-rw-r--r--. 1 root root  88700 Jul 12 09:39 hive.log
-rw-r--r--. 1 root root 547126 Jul 11 21:07 hive.log.2018-07-11
drwxr-xr-x. 3 root root     18 Jul 12 10:07 mongodump0712
[root@slave2 root]# cd mongodump0712/
[root@slave2 mongodump0712]# ls
mydb
[root@slave2 mongodump0712]# cd mydb
[root@slave2 mydb]# ls
users.bson  users.metadata.json    

2.     将dump文件上传到hdfs

hdfs dfs -mkdir /user/hive/warehouse/mongo

hdfs dfs -put /tmp/root/mongodump0712/mydb/users.bson /user/hive/warehouse/mongo/

[root@slave2 mydb]# hdfs dfs -mkdir /user/hive/warehouse/mongo 

[root@slave2 mydb]# hdfs dfs -put /tmp/root/mongodump0712/mydb/users.bson /user/hive/warehouse/mongo/  

3.     创建表并测试

hive> create EXTERNAL table muser
    > (
    >   id string,
    >   userid string,
    >   age bigint,
    >   status string
    > )
    > row format serde 'com.mongodb.hadoop.hive.BSONSerDe'
    > WITH SERDEPROPERTIES('mongo.columns.mapping'='{"id":"_id","userid":"user_id","age":"age","status":"status"}')
    > stored as inputformat 'com.mongodb.hadoop.mapred.BSONFileInputFormat'
    > outputformat 'com.mongodb.hadoop.hive.output.HiveBSONFileOutputFormat'
    > location '/user/hive/warehouse/muser';
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:hdfs://ns1/user/hive/warehouse/muser is not a directory or unable to create one)
hive> create EXTERNAL table muser
    > (
    >   id string,
    >   userid string,
    >   age bigint,
    >   status string
    > )
    > row format serde 'com.mongodb.hadoop.hive.BSONSerDe'
    > WITH SERDEPROPERTIES('mongo.columns.mapping'='{"id":"_id","userid":"user_id","age":"age","status":"status"}')
    > stored as inputformat 'com.mongodb.hadoop.mapred.BSONFileInputFormat'
    > outputformat 'com.mongodb.hadoop.hive.output.HiveBSONFileOutputFormat'
    > location '/user/hive/warehouse/mongo';
OK
Time taken: 0.123 seconds
hive> select * from muser;
OK
5b456e33a93daf7ae53e6419        abc123  58      D
5b45705ca93daf7ae53e8b2a        bcd001  45      C
Time taken: 0.181 seconds, Fetched: 2 row(s)

使用Mongo dump 将数据导入到hive的更多相关文章

  1. 把HDFS上的数据导入到Hive中

    1. 首先下载测试数据,数据也可以创建 http://files.grouplens.org/datasets/movielens/ml-latest-small.zip 2. 数据类型与字段名称 m ...

  2. 用sqoop将mysql的数据导入到hive表中

    1:先将mysql一张表的数据用sqoop导入到hdfs中 准备一张表 需求 将 bbs_product 表中的前100条数据导 导出来  只要id  brand_id和 name 这3个字段 数据存 ...

  3. 使用 sqoop 将mysql数据导入到hive表(import)

    Sqoop将mysql数据导入到hive表中 先在mysql创建表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` varchar() ...

  4. 使用sqoop将mysql数据导入到hive中

    首先准备工具环境:hadoop2.7+mysql5.7+sqoop1.4+hive3.1 准备一张数据库表: 接下来就可以操作了... 一.将MySQL数据导入到hdfs 首先我测试将zhaopin表 ...

  5. 大数据入门到精通19--mysql 数据导入到hive数据中

    一.正常按照数据库和表导入 \\前面介绍了通过底层文件得形式导入到hive的表中,或者直接导入到hdfs中,\\现在介绍通过hive的database和table命令来从上层操作.sqoop impo ...

  6. Talend 将Oracle中数据导入到hive中,根据系统时间设置hive分区字段

    首先,概览下任务图: 流程是,先用tHDFSDelete将hdfs上的文件删除掉,然后将oracle中的机构表中的数据导入到HDFS中:建立hive连接->hive建表->tJava获取系 ...

  7. 数据导入(一):Hive On HBase

    Hive集成HBase可以有效利用HBase数据库的存储特性,如行更新和列索引等.在集成的过程中注意维持HBase jar包的一致性.Hive与HBase的整合功能的实现是利用两者本身对外的API接口 ...

  8. Sqoop-将MySQL数据导入到hive orc表

    sqoop创建并导入数据到hive orc表 sqoop import \ --connect jdbc:mysql://localhost:3306/spider \ --username root ...

  9. 如何将数据导入到hive中

    可以通过多种方式将数据导入hive表 1.通过外部表导入 用户在hive上建external表,建表的同时指定hdfs路径,在数据拷贝到指定hdfs路径的同时,也同时完成数据插入external表. ...

随机推荐

  1. Unity项目架构设计与开发管理 学习

    视频地址:https://v.qq.com/x/page/d016340mkcu.html assetstore save manager

  2. 轻量级web框架cicada----(转)

    源码地址: https://github.com/TogetherOS/cicada 快速启动 下面来看看如何快速启动一个 HTTP 服务. 只需要创建一个 Maven 项目,并引入核心包. < ...

  3. kibana 启动 关闭 和进程查找

    启动kibana : nohup ./kibana & 查看启动日志 : tail -f nohup kibana  使用  ps -ef|grep kibana 是查不到进程的,主要原因大概 ...

  4. hdfs1.0和2.0复习

    1.Namenode元数据两种映射:(1)文件名 -> block数据块的映射(2)block数据块 -> datanode节点地址的映射细节:(1)是持久化到NN的磁盘的(fsimage ...

  5. 洛谷 4364 [九省联考2018]IIIDX——“预留”的思路

    题目:https://www.luogu.org/problemnew/show/P4364 原来想了一个错误的思路,就是这样: solve( cr , l , r ) 表示 cr 为根的子树填 [ ...

  6. NET设计模式 第三部分 结构型模式(7):适配器模式(Adapter Pattern)

    适配器模式(Adapter Pattern) ——.NET设计模式系列之八 Terrylee,2006年2月 概述 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象”放在新的环境中应用,但 ...

  7. Maven install报MojoFailureException

    [ERROR] 位置: 类 com.spark.test.JavaDirectKafkaWordCount [ERROR] /I:/TrueTimeControlOnSparkByJava/src/m ...

  8. Spring Cloud(Dalston.SR5)--Eureka 注册中心高可用搭建

    高可用集群 在微服务架构这样的分布式环境中,我们需要充分考虑发生故障的情况,所以在生产环境中必须对各个组件进行高可用部署,对与微服务和服务注册中心都需要高可用部署,Eureka 高可用实际上就是将自己 ...

  9. 基于geohash6编码实现相邻4、9、16网格合并

    前面的两篇文章介绍了geohash的基本原理及c#代码相关实现,其中geohash 5位编码单个网格覆盖面积大约在24平方千米,6位编码单网格覆盖面大约在0.73平方千米, 相邻编码长度之间单网格覆盖 ...

  10. SDI视频采集过程

    SDI视频采集过程 GTP收发模块为视频采集系统的核心部分,包含发送和接收,完成对信号的解串和串码.并且HD-SDI信号中并非所有的信号都是有效视频信号,这部分功能由数据分析模块实现,并将提取出来的有 ...