叫一定一个字符数组txt[0..n-1] 和一个模式pat
[0..m-1],写一个搜索函数search(char pat [],char txt
[]),该函数在txt中打印所有出现的pat [] []。你得要n> m。

不行数量简介

推个例:

可怜数目的定义

Volume(数据容量)、Variety(数据类型)、Viscosity(价值密度)、Velocity(速度)、Veracity(真实性)

Input:  txt[] = "THIS IS A TEST TEXT"
        pat[] = "TEST"
Output: Pattern found at index 10

Input:  txt[] =  "AABAACAADAABAABA"
        pat[] =  "AABA"
Output: Pattern found at index 0
        Pattern found at index 9
        Pattern found at index 12

老数额的特性

莫结构性、不完备性、时效性、安全性、可靠性

图片 1

良数目处理的通通经过

数据搜集和记录 –>  数据抽取、清洗、标记  –> 
数据并、转换、简约  –>  数据解析以及建模  –>  数据说明

模式寻找是当微机科学领域的一个要问题,当我们在notepad/word
文件中要浏览器,数据库被进行搜索一个字符串时,模式搜索算法就于用来显示搜到的结果。

不行数目技术的特征

1.解析宏观的数据而不自由取样

2.珍惜数量的纷繁,弱化精确性

3.关爱数据的相关性,而不因为果关系

算法思想:

良数额的关键技术

横流处理、并行化、摘要索引、可视化

逐将亲笔对比文本并检讨匹配。如果找到匹配,则还逐一递增1盖检讨就的匹配。

坏数目采取趋势

划分市场、推动公司提高、大数量解析的初措施出现、大数额及出口计算高度融合、大数据总体设施陆续出现、大数量安全

下是代码实现:

不错研究范式

先是范式(科学实验)、第二范式(科学理论)、第三范式(系统模拟)、第四范式(数据密集型计算)

// C program for Naive Pattern Searching algorithm
#include<stdio.h>
#include<string.h>
void search(char *pat, char *txt)
{
    int M = strlen(pat);
    int N = strlen(txt);
    int i;
    /* A loop to slide pat[] one by one */
    for (i = 0; i <= N - M; i++)
    {
        int j;

        /* For current index i, check for pattern match */
        for (j = 0; j < M; j++)
            if (txt[i+j] != pat[j])
                break;

        if (j == M)  // if pat[0...M-1] = txt[i, i+1, ...i+M-1]
           printf("Pattern found at index %d \n", i);
    }
}
/* Driver program to test above function */
int main()
{
   char txt[] = "AABAACAADAABAAABAA";
   char pat[] = "AABA";
   search(pat, txt);
   return 0;
}

格雷法则

1.科学计算数据爆炸式增长

2.缓解方案吧横向扩张的体系布局

3.用计用于数据要不是数据用于计算(把程序向数迁移。以计算为骨干转移为坐多少也基本)

  输出:

CAP理论

Consistency(一致性)、Availability(可用性)、Partition
Tolerance(分区容错性)

Pattern found at index 0
Pattern found at index 9
Pattern found at index 13

CAP定理

一个分布式系统不可能还要满足一致性、可用性、分区容错性三只系统要求,最多只能同时满足个别个。

算法分析:

CAP选择

1.放弃分区容错,导致可扩展性不强:MySQL、Postgres

2.放弃可用性,导致性不是专门高:Redis、MongoDB、MemcacheDB、HBase、BigTable、Hypertable

3.放弃一致性,对一致性要求低:Cassandra、Dynamo、Voldemort 、CouchDB

1、什么是太好之情状?

HDFS

极致好之情事时有发生在模式的首先只字符根本无有叫文本中。

HDFS目标

1.兼容廉价的硬件设施

2.流数码读写

3.深数据集

4.粗略的文书模型

5.劲的跨平台兼容性

txt[]  = "AABCCAADDEE"
pat[] = "FAA"

HDFS主要组件(图来源哈尔滨理工大学好数量课程李先生的课件)

图片 2

于无限好之景象下于的数量是O(n)

HDFS读文件

图片 3


 

图片 4

2、什么是极其酷的情形?
模式寻找的无比充分情况发生在以下状况。
1)当文本和画的有着字符相同时。

HDFS写文件

图片 5

txt[] = "AAAAAAAAAAAAAAAAAA"
pat[] = "AAAAA".

HDFS容错

1.心跳检测:NameNode和DataNode之间

2.文书块完整性:记录新建文件所有片的校验和

3.集群载重均衡:自动从负载重的DataNode上迁移数据

4.文件去:存放在/trash下,过一段时间才正式删除。在hdfs-site.xml中布局

2)只有最终一个字符不同时也会出最可怜的情状。

MapReduce

 

函数式编程优点

1.逻辑可证

2.模块化

3.组件化

4.轻调试

5.易于测试

6.再强的生产率

txt[] = "AAAAAAAAAAAAAAAAAB"
pat[] = "AAAAB"

函数式编程的特点

1.无副作用:没有改动了函数在该犯用域之外的量并吃其他函数使用

2.无状态的编程:将状态保存在参数中,作为函数的附赠品来传递(不是异常懂)

3.输入值和输出值:在函数式编程中,只有输入值和输出值。函数是主导的单位。在面向对象编程中,将对象传来传去;在函数式编程中,是将函数传来传去。

太可怜情况下之比频繁是O(m *(n-m +
1))。尽管再字符的字符串不可能出现在英文文本中,但是在其它应用程序(例如,二进制文本)中或会见冒出该字符串。KMP匹配算法将最为差状况改善为O(n)。我们以在产一致篇稿子中牵线KMP。此外,我们拿写更多之帖子来含有所有的模式搜索算法和数据结构。

MapReduce流程图(图自南京大学黄宜华先生的课件)

图片 6

如若您有啊问题,那就给本人留言吧。

雅数目流式计算

 

流式数据的特色

实时性、易失性、突发性、无序性、无限性、准确性

怪数据流式计算模型

数据流管理体系:固定查询、ad hoc查询

坏数额流式计算:Twitter Storm、Yahoo S4

Storm总体架构

主节点Nimbus:负责全局资源分配、任务调度、状态监控、故障检测

从今节点Supervisor:接收任务,启动或停止工作进程Worker。每个Worker内部有多独Executor。每个Executor对应一个线程。每个Executor对应一个要么多单Task。

Zookeeper:协调、存储状元数据、从节点心跳信息、存储整个集群的兼具状态信息、所有配置信息

Storm特征

1.编程简单

2.支撑多语言

3.作业级容错

4.水平扩展

5.底层使用Zero消息队列,快

Storm缺点

1.资源分配没有考虑任务拓扑的结构特征,无法适应数据负载的动态变化

2.应用集中式的作业级容错,限制了网的可是扩展性

搜索引擎

搜寻引擎的概念

因早晚之国策、运用特定的微机程序、从互联网及采访信息,对信息进行组织以及处理后,将这些信息显示给用户的体系为搜索引擎。

招来引擎的做

搜索器:搜集信息

索引器:抽取索引

检索器:在仓房中找,排序。

用户接口:展示

摸索引擎的办事进程

爬行 -> 抓取存储 -> 预处理 -> 排名

追寻引擎的品指标

查全率、查准率、响应时间、覆盖范围、用户方便性

大数额解析

数据解析的目的

本着乱的数进行集中、萃取、提炼,进而找出所研究对象的内在规律,发现那个价值。

数据解析的义

于乱的数据遭到剖析出有价的情节,获得对数码的体会。

数解析的品类

1.探索性数据解析(为了形成值得假设的查验)

2.定性数据解析(非数值型数据)

3.离线数据解析(先存于磁盘,批处理)

4.在线数据解析(实时)