通过Hadoop做分布式索引
来源:互联网 发布:同时学java和python 编辑:程序博客网 时间:2024/05/17 18:12
数据库里面有千万级的数据需要做索引,开始的方案是起线程,然后每次读取一定的数量,索引,然后继续读。一开始上了四台普通的PC,1.8的CPU,1G的内存,做了10个多小时才索引完。
后来换了Hadoop,同样的四台机器,只要20分钟就完成了。当然不是直接上hadoop就能提速那么多,还是需要做很多地方的调整的。
第一个,先把数据库记录dump出来成为文本文件,然后放到hdfs里面,这样做的目的是要利用hdfs的文本处理能力,从比较看来,虽然hadoop 0.19加了DBInputFormat,但是性能并不好。
第二个就是,将mapper和reducer并行执行,mapper负责做些数据清洗,转换工作,同时reducer往文件系统写。要做到这个,可以把max.mapper和max.reducer进行适当调整,同时一定要调整reducer的数目,从观察来看,默认情况下,hadoop的自动估计不太准,一般就给我起一个reducer,这样的效果,就是不能同时利用各台机器的I/O。但是也不要让同一台机器同时跑多个reducer,因为I/O是有限的,索引的时候I/O负载很高,增加reducer并不会对索引性能有贡献,相反还会降低索引效率。
第三个就是,一定要减少lucene当中的open和optimize操作,之前单机做了一个简单的比较,open和optimize会极大影响lucene的索引效率。
- 通过Hadoop做分布式索引
- 通过Hadoop做分布式索引
- 通过Solr4.0.0实现分布式索引
- hadoop学习通过虚拟机安装hadoop完全分布式集群
- Hadoop MapReduce 上利用Lucene实现分布式索引
- hadoop集群(完全分布式)配置步骤(测试通过)
- 2016.6.13 通过虚拟机安装hadoop完全分布式集群
- 分布式 Hadoop
- 分布式hadoop
- 完全分布式Hadoop 调用DFS上so文件做缓存分发 跑mr
- Hadoop伪分布式,分布式搭建
- 解决伪分布式hadoop部署hive后,无法通过beeline连接
- Hadoop学习之自己动手做搜索引擎【网络爬虫+倒排索引+中文分词】
- lucene分布式索引(转)
- lucene分布式索引(转)
- 分布式索引文件内容
- 华庭-Oceanbase分布式索引
- sphinx分布式索引简介
- 常用程序语言的数据类型比较
- 真・恋姫†無双 蜀国剧情翻译第1章[2]
- 创建文件函数的小测试
- 什么是反射,什么序列化?
- 什么是多态(转)
- 通过Hadoop做分布式索引
- .NET 中的对象序列化
- java面试题基础3
- NFramework开源AOP框架ORM的实现原理与应用
- 如何动态加载和移除 TinyMCE
- 软件开发成本管理
- 关于央视着火(仅供娱乐)
- 我国软件业开始打响三大战役
- Seagull PHP框架下操作数据库