以下是本人原创,如若转载和使用请注明转载地址。本博客信息切勿用于商业,可以个人使用,若喜欢我的博客,请关注我,谢谢!博客地址


感谢您支持我的博客,我的动力是您的支持和关注!如若转载和使用请注明转载地址,并且请尊重劳动成果,谢谢!

MRQL简介

MRQL (发音 miracle) 是一个查询处理和优化系统,适用于大规模分布式的数据分析。MRQL (MapReduce Query Language) 是一个在计算机集群中对大规模数据的类 SQL 查询语言。MRQL 查询处理系统可使用如下三种模式评估 MRQL 查询:

  1. 使用 Hadoop 的 Map-Reduce 模式
  2. 使用 Apache Hama 的 BSP 模式 (Bulk Synchronous Parallel mode)
  3. 基于 Apache Spark 的 Spark 模式

MRQL一般的使用语法


Evaluating MRQL Queries Using Map-Reduce

Before deploying your MRQL queries on a Hadoop cluster, you can run these queries in memory on a small amount of data using the command:

mrql    
//在Hadoop集群部署MRQL查询之前,您可以运行这些查询对少量的数据在内存中使用命令:

which evaluates MRQL top-level commands and queries from the input until you type quit. To run MRQL in Hadoop's standalone mode (single node on local files), use:

mrql -local
//该评估MRQL顶级命令和查询从输入类型,直到你放弃。MRQL运行Hadoop的独立模式(单一节点本地文件)

To run MRQL in Hadoop's fully distributed mode (cluster mode), use:

mrql -dist

//MRQL运行Hadoop的完全分布式模式(集群模式)


Accessing the Data Sources

The MRQL expression that makes a directory of raw files accessibleto a query is:

source(parser,path,...args)

where path is the URI of the directory that contains thesource files (a string), parser is the name of the parser toparse the files, and args are various parameters specific tothe parsing method. It returns a !bag(t), for some t,that is, it returns a map-reduce type. Currently, there are foursupported parsers: line, xml, json, andbinary, but it is easy to define and embed your own parser(explained later).


Parsing XML Documents

The MRQL expression used for parsing an XML document is:

source( xml, path, tags, xpath )

For example, the following expression:

XMark = source(xml,"xmark.xml",{"person"});

binds the variable XMark to the result of parsing thedocument "xmark.xml" and returns a list of personelements. A more complex example is:

DBLP = source( xml, "dblp.xml", {"article","incollection","book","inproceedings"},
               xpath(.[year=2009]/title) )

下面是我自己做的例子:

说明:MRQL是在hadoop运行的情况下,完成工作的,而且我采用的是MRQL的第一种模式执行的,下面就MapReduce模式进行说明。

我定义一个xml文件叫1.xml
1
2
3
4
5
6
7
8
<person>
    <name>
        张三
    </name>
    <age>
        20
    </age>
</person>

将1.xml文件上传到hdfs目录下

hadoop fs -put ~/1.xml /user/hadoop/jl

查看jl目录

启动MRQL -dist 及执行source
source(xml,'hdfs://183.175.12.220:9010/user/hadoop/jl/1.xml',{"person"});

执行成功!
定义变量v用于存储
store v := source(xml,'hdfs://183.175.12.220:9010/user/hadoop/jl/1.xml',{"person"});

将得出的v进行dump输出,输出至一个txt文件中
dump 'hdfs://183.175.12.220:9010/user/hadoop/jl/a.txt' from v;

执行成功,现在可以去hdfs中查看此文件了






mrql初级教程-概念、使用(一)的更多相关文章

  1. mrql初级教程-使用(er)

    最近使用mrql做xml文件解析,使用xpath来进行判断 使用的方法如下,其中t.mrql文件如下: v =args[1];store ty:=source(xml,args[0],{"p ...

  2. [初级教程]用SecureCRT+Xming轻松远程实现Linux的X DISPLAY

    [初级教程]用SecureCRT+Xming轻松远程实现Linux的X DISPLAY 发布者:sqqdugdu 时间:10-06 阅读数:2117 测试环境:RHEL 6.1,SecureCRT 5 ...

  3. Python图像处理库:Pillow 初级教程

    Python图像处理库:Pillow 初级教程 2014-09-14 翻译 http://pillow.readthedocs.org/en/latest/handbook/tutorial.html ...

  4. shellKali Linux Web 渗透测试— 初级教程(第三课)

    shellKali Linux Web 渗透测试— 初级教程(第三课) 文/玄魂 目录 shellKali Linux Web 渗透测试—初级教程(第三课) 课程目录 通过google hack寻找测 ...

  5. Mac OS X Terminal 101:终端使用初级教程

    Mac OS X Terminal 101:终端使用初级教程 发表于 2012 年 7 月 29 日 由 Renfei Song | 文章目录 1 为什么要使用命令行/如何开启命令行? 2 初识Com ...

  6. Coding 初级教程(二)——上传已有项目

    Coding 初级教程(二)——上传已有项目 [摘要:方针读者 :已具有 Coding.net 的账号. 本文首要先容若何把项目上传到 Coding.net 上. 分两种环境,一种是项目已归入到 gi ...

  7. Window服务初级教程以及log4net配置文件初始化

    Window服务初级教程:http://www.jb51.net/article/48987.htm 另外,配置log4net这个日志功能的时候需要初始化,不然会报没有初始化的错误,而且初始化的节点应 ...

  8. 《自学C语言》初级教程 - 目录

    我现在打算出一个C语言学习教程,目的是为了让初学者能够很容易和更深刻地理解C语言. 你可能有这样的疑问,网上不是有很多的初级教程吗,我需要这个吗?我的回答是:网上的C语言教程讲得不够全面,而且许多的初 ...

  9. Android初级教程理论知识(第三章测试&数据存储&界面展现)

    首先介绍单元测试,我在javaweb部分有详细介绍单元测试框架的一篇文章. 可以先看在javaweb中的单元测试详解篇http://blog.csdn.net/qq_32059827/article/ ...

随机推荐

  1. ignite通过注解配置查询

    官方文档的叙述可能有些不清楚,我做了一个测试,并且可以成功运行,待会儿后面贴出小栗子. 两步操作: 第一步在属性值处贴上@QuerySqlField注解 第二部设置key和value类型 Person ...

  2. jetty作为内嵌服务器自启动

    为了完成web工程的测试,最近内嵌jetty也要搞起来.第一次搞还是挺焦头烂额的.直接上成果: package com.test.action; import java.io.File; import ...

  3. Windows快捷键大全(从XP到win8.1)

    常见用法 F1 显示当前程序或者windows的帮助内容. F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F5 刷新 F10或ALT 激活当 ...

  4. Template - Strategy

    模板模式是一种基于继承的松耦合模式,其设计思路为,abstract类提供一组接口但不实现,不同concrete类继承同一接口并完成不同功能.如下图所示: 模板模式实现较为简单,TemplateMeth ...

  5. 读《Ext.JS.4.First.Look》随笔

    Ext JS 4是最大的改革已经取得了Ext框架.这些变化包括一个新类系统,引入一个新的平台,许多API变化和改进,和新组件,如新图表和新画组件.Ext JS 4是更快,更稳定,易于使用.(注意:Ex ...

  6. Git学习 -- 简介

    Git是什么? 是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 特点 分布式相比于集中式的最大区别在于开发者可以提交到本地,每个开发者通过克隆(git clone),在本 ...

  7. PAT (Advanced Level) 1097. Deduplication on a Linked List (25)

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

  8. git rebase 使用

    git rebase 不会取回代码 要用git fetch先取回, git rebase 是合并代码. (1)首先用git fetch返回服务器上的代码 (2)首先用git rebase origin ...

  9. [jQueryUI] – Chosen:select下拉选择框美化插件及问题

    Chosen 是一个支持jquery的select下拉框美化插件,它能让丑陋的.很长的select选择框变的更好看.更方便.不仅如此,它更扩展了select,增加了自动筛选的功能.它可对列表进行分组, ...

  10. angularJs关于指令的一些冷门属性

    我们使用ng的时候,经常会使用到指令,大家所熟知的属性我在这里就不介绍了,讲讲大家没怎么留意的属性 1.multiElement 这是指定指令作用区间的功能,最常用的就是ng-repeat-start ...