首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Hadoop之倒排索引

面对如此巨大的数据,如何能让搜索引擎更好的工作呢?本文作为Hadoop系列的第二篇,将介绍分布式情况下搜索引擎的基础实现,即“倒排索引”。...is simple file2.txt:mapReduce is powerful is simple file3.txt:Hello MapReduce bye MapReduce  最终应生成如下索引结果...---------------------------- 2.设计   首先,我们对读入的数据利用Map操作进行预处理,如图1: 对比之前的单词计数(WorldCount.java),要实现倒排索引单靠...; 6 import org.apache.hadoop.fs.Path; 7 import org.apache.hadoop.io.IntWritable; 8 import org.apache.hadoop.io.Text...操作过程中,我们可以体会到“倒排索引”的过程其实也就是不断组合并拆分字符串的过程,而这也就是Hadoop中MapReduce并行计算的体现。

37930

Hadoop--倒排索引过程详解

倒排索引就是根据单词内容来查找文档的方式,由于不是根据文档来确定文档所包含的内容,进行了相反的操作,所以被称为倒排索引 下面来看一个例子来理解什么是倒排索引 这里我准备了两个文件 分别为1.txt和2...Hadoop数据类型和自定义输入输出 所以在map阶段之前的到结果如下 map阶段从1.txt的得到的输入 0 I Love Hadoop 15 I like ZhouSiYuan 34...; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job...; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat...; import org.apache.hadoop.mapreduce.lib.input.FileSplit; import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat

1.7K111
您找到你想要的搜索结果了吗?
是的
没有找到

文件倒排索引算法及其hadoop实现

什么是文件的倒排索引? 简单讲就是一种搜索引擎的算法。过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词”和对应出现的“倒排文件”。...开发环境: Intellijidea + meaven + java1.8 对武侠小说集合的进行倒排索引,输出文件中江湖的截图如下: ?...; import org.apache.hadoop.fs.Path; import org.apache.hadoop.hbase.HBaseConfiguration; import org.apache.hadoop.hbase.client.Put...; import org.apache.hadoop.hbase.util.Bytes; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job...; import org.apache.hadoop.mapreduce.Mapper; import org.apache.hadoop.mapreduce.Reducer; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat

70690

Hadoop学习之网络爬虫+分词+倒排索引实现搜索引擎案例

自己写一个网络爬虫,对搜狐(或者csdn)爬取新闻(博客)标题,然后把这些新闻标题和它的链接地址上传到hdfs多个文件上,一个文件对应一个标题和链接地址,然后通过分词技术对每个文件中的标题进行分词,分词后建立倒排索引以此来实现搜索引擎的功能...,建立倒排索引不熟悉的朋友可以看看我上篇博客 Hadoop–倒排索引过程详解 首先 要自己写一个网络爬虫 由于我开始写爬虫的时候用了htmlparser,把所有搜到的链接存到队列,并且垂直搜索...; import org.apache.hadoop.fs.FSDataOutputStream; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path...爬到的内容上传到hdfs上了 下面进行分词和建倒排索引 看分词所用到的包 ?...; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.Text; import org.apache.hadoop.mapreduce.Job

1.2K70

你有想过,如何用Hadoop实现【倒排索引】?

有两种不同的反向索引形式: 一条记录的水平反向索引(或者反向档案索引)包含每个引用单词的文档的列表。 一个单词的水平反向索引(或者完全反向索引)又包含每个单词在一个文档中的位置。...倒排索引在搜索引擎中比较常见,百度,谷歌等大型互联网搜索引擎提供商均在搜索引擎业务中构建了倒序索引。本篇文章,就用一个简单的demo教大家如何使用Hadoop实现倒序索引。...主要思路如下: 倒排索引第一步的Mapper类 我们输出如下结果: context.wirte(“hadoop->log_a.txt”, “1”) context.wirte(“hadoop->...log_b.txt”, “1”) context.wirte(“hadoop->log_c.txt”, “1”) … 倒排索引第一步的Reducer 最终输出结果为: hello --> log_a.txt...这是倒排索引第一步的Mapper:InverseIndexStepOneMapper package io.alice; import org.apache.hadoop.io.LongWritable

36120

hadoop(1):hadoop概述

---- hadoop概述 hadoop是 Doug Cutting 在 Lucene 之后的一个项目 主要用于 计算 是一个 开源,可靠,可扩展 的分布式计算框架 主要有 hdfs 也就是...,只是时间会长很多 yarn 分布式资源调度 当然,hadoop1 和 hadoop2 的一些名词有变化 但是,对应的实现,是没有太大区别的 好处是,可以多台机器同时处理,通过心跳去及时获取计算结果...---- hadoop的场景 一般可以用于 日志分析 海量数据的计算 复杂算法 搜索引擎 dsp获取的个人数据以及为行为分析提供数据 对应的hadoop生态圈 ?...核心 Hadoop Common 很多项目都有common模块 常用的基础,都放在里面 Hadoop HDFS hadoop的 dfs(Distributed File System)分布式文件系统...Hadoop MapReduce 分布式离线并行计算框架 也就是核心想法(先Map,再reduce) Hadoop YARN 新的MapReduce框架, 任务调度,资源管理 ---- hdfs相关

98830

hadoop的简介_hadoop体系

一、概述 Hadoop起源:hadoop的创始者是Doug Cutting,起源于Nutch项目,该项目是作者尝试构建的一个开源的Web搜索引擎。...三、对hadoop的理解简述 hadoop是用于处理(运算分析)海量数据的技术平台,并且是采用分布式集群的方式。 hadoop有两大功能: 1)提供海量数据的存储服务。...四、hadoop三大核心组件 1)HDFS:hadoop分布式文件系统海量数据存储(集群服务)。 2)MapReduce:分布式运算框架(编程框架),海量数据运算分析。...五、Hadoop技术生态圈的核心框架组件简介 1)ZooKeeper Zookeeper是Hadoop生态圈中一个非常基础的服务框架,是各分布式框架公用的一个分布式协调服务系统。...3)Ambari Ambari提供一套基于网页的界面来管理和监控Hadoop集群。让Hadoop集群的部署和运维变得更加简单。

97540

mysql 查看索引、添加索引、删除索引命令添加索引删除索引

· Non_unique 如果索引不能包括重复词,则为0。如果可以,则为1。 · Key_name 索引的名称。 · Seq_in_index 索引中的列序列号,从1开始。...· Collation 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类)。 · Cardinality 索引中唯一值的数目的估计值。...基数越大,当进行联合时,MySQL使用该索引的机 会就越大。 · Sub_part 如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。...· Index_type 用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。...· Comment 添加索引 ALTER TABLE Persons ADD CONSTRAINT uc_PersonID UNIQUE (Id_P,LastName) 删除索引 mysql> alter

3.4K10

Hadoop学习笔记】——Hadoop基础

Hadoop初识 ----   随着数据量的急剧增加,遇到的两个最直接的问题就是数据存储和计算(分析/利用)。   ...Hadoop应用场景 ----   简单认识了什么是Hadoop,再来了解一下Hadoop一般都适用于哪些场景。   Hadoop主要应用于大数据量的离线场景,特点是大数据量、离线。...1、数据量大:一般真正线上用Hadoop的,集群规模都在上百台到几千台的机器。这种情况下,T级别的数据也是很小的。...大量的小文件使用Hadoop来处理效率会很低。   ...Hadoop常用的场景有: ●大数据量存储:分布式存储(各种云盘,百度,360~还有云平台均有hadoop应用) ●日志处理 ●海量计算,并行计算 ●数据挖掘(比如广告推荐等)

90030

索引(index)_普通索引、唯一索引和复合索引.索引查询

这是因为:创建主键的时候自动给主键添加了索引,且该索引为唯一性索引。 即主键一定是唯一性索引。 但是一张表中可以有多个唯一性索引,所以唯一性索引不一定是主键。...************************ 在这里不得不讲一下普通索引和唯一性索引的区别: 1、普通索引 普通索引的唯一任务是加快对数据的访问速度。...只要有可能,就应该选择一个数据最整齐、最紧凑的数据列(如一个整数类型的数据列)来创建索引。 2、唯一索引   普通索引允许被索引的数据列包含重复的值。...查看表中所有的索引: 为了下面的演示,把刚创建的两个索引删除!...关于普通复合索引index这里就不再详细执行截图描述,只需要注意下面这形式的索引意义就OK了!!!!

1.1K40

Hadoop实战_hadoop 项目实战

hadoop 实战练习(二) 引言: 哈哈,时隔几日,坏蛋哥又回来了,继上一篇hadoop实战练习(一),坏蛋哥准备继续写一个实战练习实例。苏格拉底曾说:所有科学都源于需求。...码字不易,如果大家想持续获得大数据相关内容,请关注和点赞坏蛋哥(haha…) 文章目录: 文章目录 hadoop 实战练习(二) 一 项目需求分析 二 项目实现思路 三 具体实现代码讲解 3.1...如果你对hadoop还不是很熟悉,那么可以先看下我的思路,如果理解了,那么就请自己一个人来独立复现代码哦(相信坏蛋哥这么做是为你好,什么东西都是当你能随心所欲的用于起来了,那么就代表你学会了)。...(sTime+"\t"+startPage+"\t"+ lTime+"\t"+lastPage+"\t"+distance+"\t"+count)); } } 四 总结 上面的全部代码可以在后台回复【hadoop...参考文献: Hadoop documention 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

2.3K50

索引之单列索引和组合索引

前几天老大叫我做了下索引优化,故将学到的东西记录下来。 1)单列索引就不多说了,不设限制的唯一索引,值唯一的唯一索引,一个表一个非空的主键索引 2)组合索引 组合索引,多个列组合的索引。...最左前缀 若有组合索引(a,b,c),那么根据最左前缀,数据库成立了三个索引(a)(a,b)(a,b,c), 重点: 这里可以看出n个列的组合索引,实际新建的普通 索引是n个, 索引的列数是n(n+1)...1.索引的大小应该小于数据表的大小 因为,每个数据不一定用的是最大的长度,而且建立索引的时间高于插入数据,实际上通常满足索引的列数小于数据库的列数,就能确保索引的大小应该小于数据表的大小。...当然,具体公司具体分析,像淘宝的数据服务器估计为了查询速度,索引大小应该远高于数据表大小。 2.组合索引第一个不应该包含单列索引 原因,重复。...(学名组合索引的前导索引/前导列) 3.创建索引时,若一些用于模糊查询的可以只截前面一段,用于查询 优化索引创建时间,索引大小等 4)注意点 1.操作:order by,where,join,查询条件:

1.4K30

深入理解四种数据库索引类型(- 唯一索引非唯一索引 - 主键索引(主索引) - 聚集索引非聚集索引 - 组合索引)唯一索引非唯一索引主键索引(主索引)聚集索引非聚集索引5.组合索引(联合索引

唯一索引/非唯一索引 主键索引(主索引) 聚集索引/非聚集索引 组合索引 唯一索引/非唯一索引 唯一索引 1.唯一索引是在表上一个或者多个字段组合建立的索引,这个或者这些字段的值组合起来在表中不可以重复...非唯一索引 2.非唯一索引是在表上一个或者多个字段组合建立的索引,这个或者这些字段的值组合起来在表中可以重复,不要求唯一。 主键索引(主索引) 3.主键索引(主索引)是唯一索引的特定类型。...表中创建主键时自动创建的索引 。一个表只能建立一个主索引。 聚集索引/非聚集索引 4.聚集索引(聚簇索引),表中记录的物理顺序与键值的索引顺序相同。一个表只能有一个聚集索引。...扩展:聚集索引和非聚集索引的区别?分别在什么情况下使用? 聚集索引和非聚集索引的根本区别是表中记录的物理顺序和索引的排列顺序是否一致。...建议使用非聚集索引的场合为: a.此列包含了大数目的不同值; b.频繁更新的列 5.组合索引(联合索引) 基于多个字段而创建的索引就称为组合索引

8.7K20

覆盖索引,联合索引索引下推

覆盖索引: 如果查询条件使用的是普通索引(或是联合索引的最左原则字段),查询结果是联合索引的字段或是主键,不用回表操作,直接返回结果,减少IO磁盘读写读取正行数据 最左前缀: 联合索引的最左 N 个字段...,也可以是字符串索引的最左 M 个字符 联合索引: 根据创建联合索引的顺序,以最左原则进行where检索,比如(age,name)以age=1 或 age= 1 and name=‘张三’可以使用索引,...单以name=‘张三’ 不会使用索引,考虑到存储空间的问题,还请根据业务需求,将查找频繁的数据进行靠左创建索引。...索引下推: like 'hello%’and age >10 检索,MySQL5.6版本之前,会对匹配的数据进行回表查询。

1.1K40
领券