开发者社区> 异步社区> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

《Hadoop实战手册》一1.9 使用Pig从HDFS导出数据到MongoDB

简介:
+关注继续查看

本节书摘来异步社区《Hadoop实战手册》一书中的第1章,第1.9节,作者: 【美】Jonathan R. Owens , Jon Lentz , Brian Femiano 译者: 傅杰 , 赵磊 , 卢学裕 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.9 使用Pig从HDFS导出数据到MongoDB

MongoDB是一种NoSQL数据库,用于存储和检索海量数据。MongoDB通常用于存储面向用户的数据,这些数据必须经过清洗、格式化之后才可以被使用。Apache Pig从某种程度上讲就是用来处理这种任务的。Mongostorage类使得使用Pig可以非常方便地批量处理HDFS上的数据,再直接将这些数据导入MongoDB中。本节将使用Mongostorage类将HDFS上的数据导出到MongoDB数据库中。

准备工作
使用Mongo Hadoop适配器最简单的方法是从GitHub上克隆Mongo-Hadoop工程,并且将该工程编译到一个特定的Hadoop版本。克隆该工程需要安装一个Git客户端。

本节假定你使用的Hadoop版本是CDH3。

Git客户端官方的下载地址是:http://git-scm.com/downloads

在Windows操作系统上可以通过http://windows.github.com/访问GitHub。

在Mac操作系统上可以通过http://mac.github.com/访问GitHub。

可以通过https://github.com/mongodb/mongo-hadoop获取到Mongo Hadoop适配器。该工程需要编译在特定的Hadoop版本上。编译完的JAR文件需要复制到Hadoop集群每个节点的$HADOOP_HOME/lib目录下。

Mongo Java的驱动包也需要安装到Hadoop集群每个节点的$HADOOP_HOME/lib目录下。该驱动包可从https://github.com/mongodb/mongo-java-driver/downloads下载。

操作步骤
完成下面的步骤,将数据从HDFS复制到MongoDB。

1.通过下面的命令实现克隆mongo-hadoop工程:

git clone https://github.com/mongodb/mongo-hadoop.git

2.切换到稳定发布的1.0分支版本:

git checkout release-1.0

3.必须保持mongo-hadoop与Hadoop的版本一致。使用文本编辑器打开mongo-hadoop克隆目录下的build.sbt文件,修改下面这行:

hadoopRelease in ThisBuild := "default"

修改为:

hadoopRelease in ThisBuild := "cdh3"

4.编译mongo-hadoop:

./sbt package.

这将会在core/target文件夹下生成一个名为mongo-hadoop-core_cdh3u3-1.0.0.jar的JAR文件。

5.从https://github.com/mongodb/mongo-java-driver/downloads下载MongoDB 2.8.0版本的Java驱动包。

6.复制mongo-hadoop-core、mongo-hadoop-pig和MongoDB Java驱动包到Hadoop集群每个节点的$HADOOP_HOME/lib:

cp mongo-hadoop-core_cdh3u3-1.0.0.jar mongo-2.8.0.jar $HADOOP_HOME/lib

7.创建一个Pig脚本读取HDFS上的weblogs数据并将其存储到MongoDB数据库:

register /path/to/mongo-hadoop/mongo-2.8.0.jar 
register /path/to/mongo-hadoop/core/target/mongo-hadoop-core- 1.0.0.jar 
register /path/to/mongo-hadoop/pig/target/mongo-hadoop-pig- 1.0.0.jar 

define MongoStorage com.mongodb.hadoop.pig.MongoStorage(); 

weblogs = load '/data/weblogs/weblog_entries.txt' as 
               (md5:chararray, url:chararry, date:chararray, time:chararray,    
               ip:chararray); 

store weblogs into 'mongodb://<HOST>:<PORT>/test.weblogs_from_pig' using 
MongoStorage();

工作原理
Mongo Hadoop适配器提供了一种新的兼容Hadoop的文件系统实现,包括MongoInputFormat和MongoOutputFormat。这些抽象实现使得访问MongoDB和访问任何兼容Hadoop的文件系统一样。MongoStorage将Pig类型转化为MongoDB可以直接访问的BasicDBObjectBuilder类型。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
hadoop hdfs、yarn 群起脚本
hadoop hdfs、yarn 群起脚本
0 0
hadoop启动hdfs异常
hadoop启动hdfs异常
0 0
Hadoop原理与技术——hdfs命令行基本操作
Hadoop原理与技术——hdfs命令行基本操作
0 0
hadoop安装使用的命令+linux基本操作命令+HDFS常用命令
一、Hadoop基本安装主要包括以下6个步骤: 1.创建Hadoop用户。 2.更新apt和安装Vim编辑器。 3.安装SSH和配置SSH无密码登录。 4.安装Java环境。 5.安装单机Hadoop。 6.HDFS:启动
0 0
Hadoop简述及HDFS集群搭建详解
Hadoop简述及HDFS集群搭建详解
0 0
第2章 Hadoop分布式文件系统HDFS
第2章 Hadoop分布式文件系统HDFS
0 0
CDH 搭建_ Hadoop _ HDFS _主节点|学习笔记
快速学习 CDH 搭建_ Hadoop _ HDFS _主节点
0 0
CDH 搭建_ Hadoop _ HDFS _从节点和总结|学习笔记
快速学习 CDH 搭建_ Hadoop _ HDFS _从节点和总结
0 0
Azkaban--使用实战--hadoop 调度(hdfs、mapreduce) | 学习笔记
快速学习 Azkaban--使用实战--hadoop 调度(hdfs、mapreduce)
0 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
文章排行榜
最热
最新
相关电子书
更多
海量数据分布式存储——Apache HDFS之最新进展
立即下载
\"Hadoop的过去现在和未来——从阿里云梯到E-MapReduce \"
立即下载
Hadoop的过去现在和未来
立即下载