今天更新了金山词霸和Adobe Reader后,发现金山词霸对英文的pdf书籍无法实现取词翻译功能,解决方法:
1.确保Adobe reader的安装目录下的插件目录中存在xdictV3.API文件
D:\Program Files\Adobe\Reader 10.0\Reader\plug_ins\xdictV3.API
如果不存在需要从金山词霸的安装目录
“D:\Program Files\Kingsoft\PowerWordDict\plugin\xdictV3.API”
下复制并拷贝到
“D:\Program Files\Adobe\Reader 10.0\Reader\plug_ins\”
2.打开Adobe Reader后,进入编辑-首选项-一般,进行如下设置

3.重启OK
源地址:http://www.infoq.com/cn/presentations/maruyue-ls-data-processing
在百度技术沙龙第2期(5月15日)的活动上,我们邀请到了百度分布式高级工程师马如悦以及FreeWheel的核心系统技术总监王迪分别分享了关于分布式以及服务扩展两个话题,本文将对他们的演讲内容进行一下简单的总结,并为大家提供了演示文档的下载。
为Hadoop的发展贡献自己的力量
在马如悦的演讲中,他主要介绍了百度的大规模数据存储、数据分析以及数据索引,主要包括以下内容点:
- 大规模数据存储
- Lustre和HDFS
- 系统结构
- HDFS优势、不足
- 大规模数据分析
- MPI和MapReduce
- MapReduce概念模型、实现模型
- MapReduce-Hadoop实现
- 大规模数据索引
- 在以上三方面百度遇到的问题、对策和原则
其中,马如悦提到,百度现在要处理的数据量非常庞大:存储20PB+数据,每日新增数据10TB+,每天处理的数据1PB+,每天提交10K+次作业。现在使用的文件系统是HDFS,数据存储是HBase,有超过2K台服务器节点,每个节点为2*4 core。现在遇到的一个棘手问题便是namenode的瓶颈问题:因为要存储大量的(小)文件,使namenode的压力非常大,他们刚刚采购了48GB的内存,但是这48GB的内存,预计只能坚持到今年年底,到时候,可能会采购96GB的内存来紧急应对这个问题。所以百度在namenode的分布式方面,进行了很多研究。马如悦建议大家:
如果对这方面感兴趣的话,可以参考Linux 2.6.34中的Ceph文件系统,它就是一个基于PB规模的分布式文件系统。
最后,马如悦提到了百度目前正在重点研究/解决的几个问题/方向,他建议如果大家想对Hadoop做出一些成绩的话,这几个方向也是现在的热点:
- HDFS namenode的分布式改进
- HDFS datanode的读写异步化
- MapReduce的jobtracker的分布式改进
- MapReduce的新作业和任务调度器
- MapReduce的Hadoop C++扩展框架
有读者对Hadoop C++的扩展非常感兴趣,马如悦对此阐述了一下百度Hadoop的使用方式:
我们会定期在Hadoop的官方版本上找到一个稳定版本,然后进行自定义开发。过一段时间,当我们发现官方的版本如果增加了很多新增加的功能,比我们好很多,我们再开一个新的分支,把我们的功能移上去。我们的工程师在开发Hadoop的C++扩展,我们大概是在0.19版分出来的,至今我们发现chunk版本仍然跑不过百度自己的版本,所以我们不会去做移植。HCE在我们的版本上开发的,所以如果转移到chunk上,会有些难度,需要做一些调整,这会花费一些时间。上周我们工程师刚完成了一个版本,马上就可以为大家贡献出一个链接去试用。
以数据驱动为中心
王迪是FreeWheel核心系统的技术总监,从07年FreeWheel创立起,他全程参与到其广告核心系统的架构设计,也见证了FreeWheel从最初的的只有20台广告服务器、日均几十万的访问量、不到1G/天的日志量,发展到现在拥有60台广告服务器、日均广告请求5000万次、日志处理服务器8台、日均4小时处理日志200G这么一个规模。3年之间,流量增长20倍。他主要谈到了以下的一些经验和原则:
- 应用服务扩展
- 数据仓库扩展
- De-normalization/Pivot
- Roll up/Data Availability
- Benchmarking与查询优化
- Split-Loading/Sharding
- 运营原则
- 50%运行负载上限 & N+1 Data Center
- 监控和响应
- 多阶段部署
很多具体的实践方法,都是针对他们具体的商业模式以及实际工作中摸索出来的,它不一定是“最好”的,但却是最适合的,比如对系统的负载当达到50%的时候,就是一个优化和扩容的信号了;再比如,以自动化回归测试为核心,但并未使用TDD单元测试,等等等等。
在提问环节,有读者对如何在回归测试中组织测试用例很感兴趣,王迪解释到:
比如我们有700个测试用例,需要QA做一些数据,可以用SQL文件的方式存在本地,然后把请求和预期也同样以文件的方式存在本地,然后在框架运行的时候,把它们载入到数据库当中,然后再服务结束后,再从数据库中取出来。
将MongoDB加入到我们的服务支持列表中,是整个团队年初工作计划中的首要任务。但我们感觉如果先添加一项对NoSQL存储的支持,而不是先升级已支持的关系型数据库,可能对用户不太好,毕竟目前的用户都使用关系型数据库。
所以我们决定将引入MongoDB这项工作放到升级MySQL和PostgreSQL之后来做。到目前为止,MySQL 5.5的Beta版已在进行中,而PostgreSQL的9.1 Beta版也将进入流程,因此我们打算在2012年第一季度中应用这两个版本。
由于我们对MongoDB的关注,我们选择性地为几名使用MongoDB的用户提供了技术支持。在这个过程中,我们了解到了很多可能出现问题的地方。所以想借此文与大家分享Engine Yard眼中的MongoDB最佳实践。
如果你的MongoDB是定制化安装的,我们强烈建议你将自己的设置与本文讲到的内容进行对比,并进行必要的设置修改。
通常意义上的NoSQL最佳实践
已有很多文章对NoSQL选型方面进行过讨论。在选择一个数据库产品时,通常可能需要考虑以下因素:读写吞吐量、持久化、一致性以及延迟等。在Nathan Hurst的文章《Visual Guide to NoSQL Systems》中对这些方面都做了详尽的介绍。
数据库的选择是个大问题,本文不打算就这方面深入介绍,但希望读者能够自己去了解这方面的知识。一旦开发者了解得足够多,最后的结论永远都只有一个:没有任何一个数据库能够满足所有的应用场景。本文内容是基于选择MongoDB作为数据库存储上来说的。Engine Yard在这方面提出了如下四点建议。
全面测试。测试一定要使用切合实际场景的数据,并且需要尽量模拟业务场景的数据操作情况。否则,开发者会发现在上线后的实际场景下,可能导致一些性能瓶颈甚至发现整体架构上的设计缺陷。因此,尽可能使用实际场景的操作使用来进行测试,然后收集足够的测试数据。
千万别以为在关系型数据库上的使用方法可以被直接移植。MongoDB并不支持一些关系型数据库的功能,所以开发者最好先搞清楚MongoDB支持哪些功能。为了获得更好的性能,开发者最好多看10gen官方建议的文档设计和操作方法。另外,在使用MongoDB前,建议开发者做好对整个架构进行重构以适用新的存储模型的准备。为了更好地理解数据迁移的代价,建议阅读《The cost ofMigration》一文。
明确数据需要的一致性和可靠性。对MongoDB来说,可靠性不再过度地依赖将数据写入到磁盘的操作,更多的是通过将数据同步到其他节点的方式解决可靠性问题。绝不建议开发者在真实环境中使用没有备份的节点单独工作。这一点很重要,所以建议开发者了解其中的原因。
明确你对EBS的期望。如果你是Engine Yard云平台的用户(AWS EC2),那么应该知道,EBS的性能不太稳定。所以在测试时,你最好收集足够多的EBS设备吞吐数据以做考量。Engine Yard本身并没有对用户在EBS性能上做限制。
MongoDB最佳实践
以下是我们将MongoDB引入到服务支持列表过程中所遵循的原则。
总是使用Replica Sets。Replica Sets通过自动failover机制提供MongoDB的高可用性。在应用中,如primary机器出现故障,那么某一台secondary机器就会通过选举成为新的primary,整个集群仍然能够提供正常服务。我们的服务不会支持无同步机制的MongoDB布置方案。如果在开发者自己的环境中同步机制的代价过高,我们建议其使用一些云存储服务。Engine Yard目前已经与MongoHQ和MongoLab都建立了合作关系。开发者可以在合作者页面找到更多这方面的信息。
保持版本更新。保持版本更新很重要,10gen在每个版本中都会修复一些问题,使MongoDB的运行更出色。比如在2.0.x版本中,MongoDB的存储性能和并发性能就有极大提高,同时还包括索引优化、Bug修复以及compaction命令等一系列改进,以便开发者更方便地扩展其集群。如果你还在使用1.6.3版本,那就快升级吧。
不要在32位系统上使用MongoDB。在32位机器上,MongoDB只能存储约2.5GB的数据。因为MongoDB在内部实现上是通过内存映射的方式来提高性能的,所以在32位机器上其内存地址本身就限制了数据容量。在Engine Yard云服务中使用MongoDB,请使用Large instance来部署MongoDB。在实际产品中,我们也只支持64位的MongoDB。
默认开启journaling日志。MongoDB支持在写操作前记录journaling日志来提高节点的可用性。强烈建议在部署时开启journaling日志。注意数据文件的存放位置。在使用时,请确认你的数据文件处于一个持久化存储中(比如/data/mongodb目录)。也可以使用非持久化的设备进行数据文件存储,不过你最好小心再小心,因为这可能会对你的集群架构造成影响。推荐使用EBS进行MongoDB的数据文件存储。热数据最好能放在内存中。能够保持热数据(以及索引数据)一直放在内存中,这一点非常重要,它将对整个集群的性能造成影响。如果通过监控发现page fault的数量增加,那么很可能就是热数据量超出了可用内存大小。当热数据量超出了可用内存量时,通常有两种解决方法:增加内存和数据分片。建议先增加内存,再考虑通过数据分片的方式解决。
压力过大升级配置。如果机器负载达到65%,那么应该考虑升级机器配置。在日常使用中,最好保持负载低于65%。同时这也对数据恢复和纵向扩展有影响。当需要升级配置时,AWS建议按下面的顺序来做:Large、Extra Large、High Memory 4XL。而在更高配置的机器上,网络延迟也会更小。
分片需谨慎。分片策略会受数据访问特点的影响,所以在进行数据分片前,最好先理清楚数据的访问特点,并想明白是否确实需要分片。分片字段对性能的影响非常大,所以选择一个好的分片字段是非常重要的。Config节点对整个集群的健康运行是至关重要的,所以一旦你选择使用分片机制,就一定要保证有3个Config节点。永远不要删除Config节点的数据,要确保频繁地对这些数据进行日常备份。如果可能,通过域名来指定节点的地址,比如在/etc/hosts文件中指定相应的本地域名,这能让你在集群配置上更灵活。Config节点的压力很小,但还需运行在64位机器上。千万不要把3个Config节点都放在同一台机器上!
另外,如果你要部署一个分片集群,那么可以向Engine Yard专家服务预约咨询服务。
使用Mongo MMS图形化监控服务。如果你还没有完善的MongoDB监控,可以尝试Mongo MMS。Mongo MMS是10gen官方发布的一个监控服务,可以将集群的各项健康指标以图形化的方式汇总展示。
转载自:http://www.programmer.com.cn/9999/
感谢Ines Sombra的翻译授权。Ines Sombra,Engine Yard数据工程师,关注大数据领域。
原文链接为http://www.engineyard.com/blog/2011/mongodb-best-practices/
当发现有多个解决方案引用一个dll时,为了不重复引用所以将.net的一个dll注册到GAC中去。
gacutil.exe。
开始菜单-Microsoft Visual Studio 2008 -Visual Studio Tools-Visual Studio 2008 命令提示,在控制台中输入 gacutil.exe 回车,既可以看到一些参数。
输入:gacutil.exe -i dll路径

注册成功后,刷新整个解决方案,成功。
问题:此错误(HTTP 500 内部服务器错误)意味着您正在访问的网站出现了服务器问题,此问题阻止了该网页的显示
我的网站解决办法:
可能是因为IIS服务器没有开启父路径
解决:
在IIS中
属性->主目录->配置->选项中。把”启用父路径“前面打上勾。确认刷新。
如果服务器提供商出于‘安全考虑不开启父路径,建议路径指向的时候写绝对路径,即完整地址 如"http://www.freeyule.com/template/default/images/logo_n.png"
IIS6.0安装后默认设置是,不开启父路径。
----------------------------------------------
如果你的网站程序使用了父路径,如../conn/db.asp这样的,..表示上层目录,就一定要开启父路径,否则系统不能正常识别..父路径,网页就无法正常显示。
摘要: 备份集中的数据库备份与现有的数据库不同问题:使用Sql Server 2008还原 2000的备份数据库时,报备份集中的数据库备份与现有的数据库不同的错误.原因:主要由于新建的数据与备份集中的数据库创建时的版本不同导致解决办法: 1.在SQL Server 2008上新建数据库时在【选项】-【兼容级别】选择 SQL Server 2000 (80) 2.还原数据时,设置:选项 -->还原选项 -->覆盖现有数据库 --> 确定
阅读全文
摘要: 问题:当设置TableLayoutPanel属性AutoSize = true and Dock = fill, 动态向其单元格添加控件时,最后一行和列会出现空白的现象。 设置行为自适应: for (int row = 0; row < rowCount; row++) { table.RowStyles.Add(new RowStyle(SizeType.AutoSize)); } 添加一行为了修复Bug table.RowStyles.Add(new RowStyle(SizeType.Absolute, 0.0F)); table.RowCount = rowCount + 1; 设置列
阅读全文
摘要: 由于之前安装目录带有空格,所以现在想卸载ROR重新安装:gem uninstall Railsgem uninstall Rakegem uninstall Actionwebservicegem uninstall Actionmailergem uninstall Actionpackgem uninstall Activesu
阅读全文
摘要: 一 :网站及其博客:1..http://ihower.tw/training/ Ruby on Rails学习网是一个交流学习Ruby on Rails知识的专业网站。2.http://www.javaeye.com/wiki/rails_weekly Rails每周一题3.http://www.5iror.com/ ihower的教程 4.http://railstutorial.org/book 一个英文教程5.http://www.javaeye.com/wiki/Rails-EveryDay 每天一剂Rails良药6.http://chinaonrails.com/ The
阅读全文