﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-魔兽传奇</title><link>http://www.blogjava.net/jackiesmith/</link><description>java程序爱好者</description><language>zh-cn</language><lastBuildDate>Tue, 28 Apr 2026 19:03:17 GMT</lastBuildDate><pubDate>Tue, 28 Apr 2026 19:03:17 GMT</pubDate><ttl>60</ttl><item><title>大数据入门：各种大数据技术介绍</title><link>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433748.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Sun, 05 May 2019 01:24:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433748.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/433748.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433748.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/433748.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/433748.html</trackback:ping><description><![CDATA[<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #393939; font-family: verdana, &quot;ms song&quot;, Arial, Helvetica, sans-serif; background-color: #faf7ef;">转自：<a href="http://www.aboutyun.com/thread-7569-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">http://www.aboutyun.com/thread-7569-1-1.html</a></p>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #393939; font-family: verdana, &quot;ms song&quot;, Arial, Helvetica, sans-serif; background-color: #faf7ef;">大数据我们都知道hadoop，可是还会各种各样的技术进入我们的视野：Spark，Storm，impala，让我们都反映不过来。为了能够更好的架构大数据项目，这里整理一下，供技术人员，项目经理，架构师选择合适的技术，了解大数据各种技术之间的关系，选择合适的语言。<br style="margin: 0px; padding: 0px;" />
我们可以带着下面问题来阅读本文章：<br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; color: #ff0000;">1.hadoop都包含什么技术<br style="margin: 0px; padding: 0px;" />
2.Cloudera公司与hadoop的关系是什么，都有什么产品，产品有什么特性<br style="margin: 0px; padding: 0px;" />
3.Spark与hadoop的关联是什么？<br style="margin: 0px; padding: 0px;" />
4.Storm与hadoop的关联是什么？</span><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<img id="aimg_wSJjZ" src="http://www.aboutyun.com/static/image/hrline/4.gif" alt="" width="500" height="35" border="0" style="margin: 0px; padding: 0px; border: 0px; max-width: 900px; height: auto;" /><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
hadoop家族<br style="margin: 0px; padding: 0px;" />
创始人：Doug Cutting<br style="margin: 0px; padding: 0px;" />
整个Hadoop家族由以下几个子项目组成：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Hadoop Common：<br style="margin: 0px; padding: 0px;" />
Hadoop体系最底层的一个模块，为Hadoop各子项目提供各 种工具，如：配置文件和日志操作等。详细可查看<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6553-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Hadoop技术内幕 深入解析HADOOP COMMON和HDFS架构设计与实现原理大全1-9章</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
HDFS：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
是Hadoop应用程序中主要的分布式储存系统， HDFS集群包含了一个NameNode（主节点），这个节点负责管理所有文件系统的元数据及存储了真实数据的DataNode（数据节点，可以有很多）。HDFS针对海量数据所设计，所以相比传统文件系统在大批量小文件上的优化，HDFS优化的则是对小批量大型文件的访问和存储。下面为详细资料：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6748-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">什么是HDFS及HDFS架构设计</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6153-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">HDFS+MapReduce+Hive快速入门</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6532-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Hadoop2.2.0中HDFS为何具有高可用性</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6779-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Java创建hdfs文件实例</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
MapReduce：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
是一个软件框架，用以轻松编写处理海量（TB级）数据的并行应用程序，以可靠和容错的方式连接大型集群中上万个节点（商用硬件）。<br style="margin: 0px; padding: 0px;" />
详细可查看：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-5541-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Hadoop简介(1):什么是Map/Reduce</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-5935-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Hadoop MapReduce基础</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6723-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">MapReduce工作原理讲解</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6531-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">手把手交你写Mapreduce程序实例并部署在Hadoop2.2.0上运行</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Hive：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Apache Hive是Hadoop的一个数据仓库系统，促进了数据的综述（将结构化的数据文件映射为一张数据库表）、即席查询以及存储在Hadoop兼容系统中的大型数据集分析。Hive提供完整的SQL查询功能&#8212;&#8212;HiveQL语言，同时当使用这个语言表达一个逻辑变得低效和繁琐时，HiveQL还允许传统的Map/Reduce程序员使用自己定制的Mapper和Reducer。hive类似CloudBase，基于hadoop分布式计算平台上的提供data warehouse的sql功能的一套软件。使得存储在hadoop里面的海量数据 的汇总，即席查询简单化。<br style="margin: 0px; padding: 0px;" />
详细可查看：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6509-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Hive的起源及详细介绍</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-5731-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">hive详解视频</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Pig：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">Apache Pig是一个用于大型数据集分析的平台，它包含了一个用于数据分析应用的高级语言以及评估这些应用的基础设施。Pig应用的闪光特性在于它们的结构经得起大量的并行，也就是说让它们支撑起非常大的数据集。Pig的基础设施层包含了产生Map-Reduce任务的编译器。Pig的语言层当前包含了一个原生语言&#8212;&#8212;Pig Latin，开发的初衷是易于编程和保证可扩展性。</span><br style="margin: 0px; padding: 0px;" />
Pig是SQL-like语言，是在MapReduce上构建的一种高级查询语言，把一些运算编译进MapReduce模型的Map和Reduce中，并且用户可以定义自己的功能。Yahoo网格运算部门开发的又一个克隆Google的项目Sawzall。<br style="margin: 0px; padding: 0px;" />
详细可查看：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6713-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">pig入门简单操作及语法包括支持数据类型、函数、关键字、操作符等</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-5617-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">hadoop家族Pig和Hive有什么不同？</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
HBase：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Apache HBase是Hadoop数据库，一个分布式、可扩展的大数据存储。它提供了大数据集上随机和实时的读/写访问，并针对了商用服务器集群上的大型表格做出优化&#8212;&#8212;上百亿行，上千万列。其核心是Google Bigtable论文的开源实现，分布式列式存储。就像Bigtable利用GFS（Google File System）提供的分布式数据存储一样，它是Apache Hadoop在HDFS基础上提供的一个类Bigatable。<br style="margin: 0px; padding: 0px;" />
详细可查看：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6720-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">hbase与传统数据的区别</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6612-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">HBASE分布式安装视频下载分享</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
ZooKeeper：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Zookeeper是Google的Chubby一个开源的实现。它是一个针对大型分布式系统的可靠协调系统，提供的功能包括：配置维护、名字服务、 分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务，将简单易用的接口和性能高效、功能稳定的系统提供给用户。<br style="margin: 0px; padding: 0px;" />
详细可查看：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6628-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">什么是Zookeeper，Zookeeper的作用是什么，在Hadoop及hbase中具体作用是什么</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Avro：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Avro是doug cutting主持的RPC项目，有点类似Google的protobuf和Facebook的thrift。avro用来做以后hadoop的RPC，使hadoop的RPC模块通信速度更快、数据结构更紧凑。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Sqoop:<br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具，可以将一个关系型数据库中数据导入Hadoop的HDFS中，也可以将HDFS中数据导入关系型数据库中。</span><br style="margin: 0px; padding: 0px;" />
详细可查看：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6242-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Sqoop详细介绍包括：sqoop命令，原理，流程</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Mahout:<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Apache Mahout是个可扩展的机器学习和数据挖掘库，当前Mahout支持主要的4个用例：<br style="margin: 0px; padding: 0px;" />
推荐挖掘：搜集用户动作并以此给用户推荐可能喜欢的事物。<br style="margin: 0px; padding: 0px;" />
聚集：收集文件并进行相关文件分组。<br style="margin: 0px; padding: 0px;" />
分类：从现有的分类文档中学习，寻找文档中的相似特征，并为无标签的文档进行正确的归类。<br style="margin: 0px; padding: 0px;" />
频繁项集挖掘：将一组项分组，并识别哪些个别项会经常一起出现。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Cassandra：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Apache Cassandra是一个高性能、可线性扩展、高有效性数据库，可以运行在商用硬件或云基础设施上打造完美的任务关键性数据平台。在横跨数据中心的复制中，Cassandra同类最佳，为用户提供更低的延时以及更可靠的灾难备份。通过log-structured update、反规范化和物化视图的强支持以及强大的内置缓存，Cassandra的数据模型提供了方便的二级索引（column indexe）。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Chukwa：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Apache Chukwa是个开源的数据收集系统，用以监视大型分布系统。建立于HDFS和Map/Reduce框架之上，继承了Hadoop的可扩展性和稳定性。Chukwa同样包含了一个灵活和强大的工具包，用以显示、监视和分析结果，以保证数据的使用达到最佳效果。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Ambari：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Apache Ambari是一个基于web的工具，用于配置、管理和监视Apache Hadoop集群，支持Hadoop HDFS,、Hadoop MapReduce、Hive、HCatalog,、HBase、ZooKeeper、Oozie、Pig和Sqoop。Ambari同样还提供了集群状况仪表盘，比如heatmaps和查看MapReduce、Pig、Hive应用程序的能力，以友好的用户界面对它们的性能特性进行诊断。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
HCatalog<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Apache HCatalog是Hadoop建立数据的映射表和存储管理服务，它包括：<br style="margin: 0px; padding: 0px;" />
提供一个共享模式和数据类型机制。<br style="margin: 0px; padding: 0px;" />
提供一个抽象表，这样用户就不需要关注数据存储的方式和地址。<br style="margin: 0px; padding: 0px;" />
为类似Pig、MapReduce及Hive这些数据处理工具提供互操作性。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
------------------------------------------------------------------------------------------------------------------------------------------------<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Chukwa：<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Chukwa是基于Hadoop的大集群监控系统，由yahoo贡献。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
------------------------------------------------------------------------------------------------------------------------------------------------<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Cloudera系列产品：<br style="margin: 0px; padding: 0px;" />
创始组织：Cloudera公司<br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">1.Cloudera Manager:</span><br style="margin: 0px; padding: 0px;" />
有四大功能<br style="margin: 0px; padding: 0px;" />
（1）管理<br style="margin: 0px; padding: 0px;" />
（2）监控<br style="margin: 0px; padding: 0px;" />
（3）诊断<br style="margin: 0px; padding: 0px;" />
（4）集成<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6807-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Cloudera Manager四大功能</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">2.Cloudera CDH：</span>英文名称：CDH (Cloudera's Distribution, including Apache Hadoop)<br style="margin: 0px; padding: 0px;" />
Cloudera对hadoop做了相应的改变。<br style="margin: 0px; padding: 0px;" />
Cloudera公司的发行版，我们将该版本称为CDH（Cloudera Distribution Hadoop）。<br style="margin: 0px; padding: 0px;" />
详细可以查看<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6788-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Cloudera Hadoop什么是CDH及CDH版本介绍</a><br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">相关资料</span><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6809-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">CDH3实战Hadoop(HDFS) , HBase , Zookeeper , Flume , Hive</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6808-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">CDH4安装实践HDFS、HBase、Zookeeper、Hive、Oozie、Sqoop</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6789-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Hadoop CDH四种安装方式总结及实例指导</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6739-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">hadoop的CDH4及CDH5系列文档下载分享</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">3.Cloudera Flume</span><br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">Flume是Cloudera提供的日志收集系统，Flume支持在日志系统中定制各类数据发送方，用于收集数据；</span><br style="margin: 0px; padding: 0px;" />
Flume是Cloudera提供的一个高可用的，高可靠的，分布式的海量日志采集、聚合和传输的系统，Flume支持在日志系统中定制各类数据发送方，用于收集数据；同时，Flume提供对数据进行简单处理，并写到各种数据接受方（可定制）的能力。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Flume最早是Cloudera提供的日志收集系统，目前是Apache下的一个孵化项目，Flume支持在日志系统中定制各类数据发送方，用于收集数据；同时，Flume提供对数据进行简单处理，并写到各种数据接受方（可定制）的能力 Flume提供了从console（控制台）、RPC（Thrift-RPC）、text（文件）、tail（UNIX tail）、syslog（syslog日志系统，支持TCP和UDP等2种模式），exec（命令执行）等数据源上收集数据的能力。<br style="margin: 0px; padding: 0px;" />
Flume采用了多Master的方式。为了保证配置数据的一致性，Flume[1]引入了ZooKeeper，用于保存配置数据，ZooKeeper本身可保证配置数据的一致性和高可用，另外，在配置数据发生变化时，ZooKeeper可以通知Flume Master节点。Flume Master间使用gossip协议同步数据。<br style="margin: 0px; padding: 0px;" />
详细可查看：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6247-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">什么是 flume 日志收集，flume的特性</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6844-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">什么是 flume 日志收集，flume的原理是什么，flume会遇到什么问题</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">4.Cloudera&nbsp;</span>Impala</p>
<div align="left" style="margin: 0px; color: #393939; font-family: verdana, &quot;ms song&quot;, Arial, Helvetica, sans-serif; background-color: #faf7ef;">Cloudera Impala对你存储在Apache Hadoop在HDFS，HBase的数据提供直接查询互动的SQL。除了像Hive使用相同的统一存储平台，Impala也使用相同的元数据，SQL语法（Hive SQL），ODBC驱动程序和用户界面（Hue Beeswax）。Impala还提供了一个熟悉的面向批量或实时查询和统一平台。</div>
<div align="left" style="margin: 0px; color: #393939; font-family: verdana, &quot;ms song&quot;, Arial, Helvetica, sans-serif; background-color: #faf7ef;">详细可查看：</div>
<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; color: #393939; font-family: verdana, &quot;ms song&quot;, Arial, Helvetica, sans-serif; background-color: #faf7ef;"><a href="http://www.aboutyun.com/thread-6697-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">什么是impala，如何安装使用Impala</a><br style="margin: 0px; padding: 0px;" />
<span style="margin: 0px; padding: 0px; font-family: Tahoma, Helvetica, simsun, sans-serif;">5.Cloudera&nbsp;</span>&nbsp;&nbsp;hue<br style="margin: 0px; padding: 0px;" />
Hue是cdh专门的一套web管理器，它包括3个部分hue ui，hue server，hue db。hue提供所有的cdh组件的shell界面的接口。你可以在hue编写mr，查看修改hdfs的文件，管理hive的元数据，运行Sqoop，编写Oozie工作流等大量工作。<br style="margin: 0px; padding: 0px;" />
详细可查看：<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6846-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">cloudera hue安装及Oozie的安装</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6847-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">什么是Oozie？Oozie简介</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6848-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Cloudera Hue 使用经验分享，遇到的问题及解决方案</a><br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
------------------------------------------------------------------------------------------------------------------------------------------------<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Spark<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
创始组织：加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Spark 是一种与 Hadoop 相似的开源集群计算环境，但是两者之间还存在一些不同之处，这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越，换句话说，Spark 启用了内存分布数据集，除了能够提供交互式查询外，它还可以优化迭代工作负载。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
Spark 是在 Scala 语言中实现的，它将 Scala 用作其应用程序框架。与 Hadoop 不同，Spark 和 Scala 能够紧密集成，其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
尽管创建 Spark 是为了支持分布式数据集上的迭代作业，但是实际上它是对 Hadoop 的补充，可以在 Hadoo 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发，可用来构建大型的、低延迟的数据分析应用程序。<br style="margin: 0px; padding: 0px;" />
<br style="margin: 0px; padding: 0px;" />
可以详细了解<br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6849-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">科普Spark，Spark是什么，如何使用Spark（1）</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6850-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">科普Spark，Spark核心是什么，如何使用Spark（2）</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6852-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">优酷土豆用Spark完善大数据分析</a><br style="margin: 0px; padding: 0px;" />
<a href="http://www.aboutyun.com/thread-6851-1-1.html" target="_blank" style="margin: 0px; padding: 0px; color: #6466b3;">Hadoop新成员Hadoop-Cloudera公司将Spark加入Hadoop<br />
<br />
<br />
<br />
<br /><span style="color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">Storm</span><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><span style="color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">创始人：Twitter</span><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><span style="color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">Twitter将Storm正式开源了，这是一个分布式的、容错的实时计算系统，它被托管在GitHub上，遵循 Eclipse Public License 1.0。Storm是由BackType开发的实时处理系统，BackType现在已在Twitter麾下。GitHub上的最新版本是Storm 0.5.2，基本是用Clojure写的。</span><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><span style="color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">详细可以了解：</span><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><a href="http://www.aboutyun.com/thread-6222-1-1.html" target="_blank" style="overflow-wrap: break-word; color: #336699; text-decoration-line: none; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">storm入门介绍</a><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><a href="http://www.aboutyun.com/thread-6854-1-1.html" target="_blank" style="overflow-wrap: break-word; color: #336699; text-decoration-line: none; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">Storm-0.9.0.1安装部署 指导</a><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><a href="http://www.aboutyun.com/thread-6873-1-1.html" target="_blank" style="overflow-wrap: break-word; color: #336699; text-decoration-line: none; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">总体认识storm包括概念，场景，组成</a><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><a href="http://www.aboutyun.com/thread-6858-1-1.html" target="_blank" style="overflow-wrap: break-word; color: #336699; text-decoration-line: none; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">大数据架构师：hadoop、Storm改选哪一个？</a><br style="overflow-wrap: break-word; color: #444444; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;" /><a href="http://www.aboutyun.com/thread-6855-1-1.html" target="_blank" style="overflow-wrap: break-word; color: #336699; text-decoration-line: none; font-family: Tahoma, Helvetica, SimSun, sans-serif; background-color: #ffffff;">大数据架构：flume-ng+Kafka+Storm+HDFS 实时系统组合</a><br />
</a></p><img src ="http://www.blogjava.net/jackiesmith/aggbug/433748.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2019-05-05 09:24 <a href="http://www.blogjava.net/jackiesmith/archive/2019/05/05/433748.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>2019年前端比较流行的框架</title><link>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433747.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Sun, 05 May 2019 01:20:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433747.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/433747.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433747.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/433747.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/433747.html</trackback:ping><description><![CDATA[<div>如今的前端已经不再像以前一样就是简单的写写页面和调调样式而已，现在的前端越来越复杂，知识点越来越丰富。</div><div></div><div>要做WEB前端，就需要知道前端到底是什么，需要学习那些知识；前端至少要懂的三个部分：HTML，CSS，JavaScript（简称JS），那首先先明确这三个概念：</div><div></div><div>HTML负责结构，网页想要表达的内容由html书写。</div><div></div><div>CSS负责样式，网页的美与丑由它来控制</div><div></div><div>JS负责交互，用户和网页产生的互动由它来控制。</div><div></div><div>web前端发展至今，演变出了无数的库和框架；说到库第一时间想到的是不是jquery？在小编刚接触库的时候也是从jQuery开始的；今天我们就来说说前端发展到现在都有哪些好用的库框架；</div><div></div><div>1.Bootstrap中文网</div><div></div><div>先分享下，如果有想一起学习web前端，HTML5及JavaScript的可以来一下我的前端群733581373，好友都会在里面交流，分享一些学习的方法和需要注意的小细节，每天也会准时的讲一些前端的炫酷特效，及前端直播课程学习</div><div></div><div>Bootstrap，让你的页面更简洁、直观、强悍、移动设备优先的前端开发框架,让web开发更迅速、更简单。它还提供了更优雅的HTML和CSS规范，它即是由动态CSS语言Less写成。有着丰富的网格布局系统以及丰富的可重用组件，还有强大的支持十几的JavaScript、jQuery插件以及组件定制等。</div><div></div><div>Bootstrap中文网地址：http://www.bootcss.com/</div><div></div><div>2. Layui</div><div></div><div>layer是一款口碑极佳的web弹层组件，是一款采用自身模块规范编写的前端 UI 框架，遵循原生 HTML/CSS/JS 的书写与组织形式，门槛极低，拿来即用。layui 首个版本发布于2016年秋，她区别于那些基于 MVVM 底层的 UI 框架，从核心代码到 API 的每一处细节都经过精心雕琢，非常适合界面的快速开发。</div><div></div><div>Layui官网地址：https://www.layui.com/</div><div></div><div>3.ElementUI</div><div></div><div>Element-Ul是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架，手机端有对应框架是Mint UI 。适合于Vue的UI框架；</div><div></div><div>官网地址：http://element-cn.eleme.io/#/zh-CN</div><div></div><div>4.Mint UI</div><div></div><div>Mint UI 是 由饿了么前端团队推出的 一个基于 Vue.js 的移动端组件库，Mint UI 包含丰富的 CSS 和 JS 组件，能够满足日常的移动端开发需要。通过它，可以快速构建出风格统一的页面，提升开发效率。</div><div></div><div>官网地址：http://mint-ui.github.io/</div><div></div><div>5.angular</div><div></div><div>AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性，最为核心的是MVW（Model-View-Whatever）、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。</div><div></div><div>官网地址：http://www.angularjs.net.cn/</div><div></div><div>6.React</div><div></div><div>React 可以非常轻松地创建用户交互界面。为你应用的每一个状态设计简洁的视图,在数据改变时 React 也可以高效地更新渲染界面。React 起源于 Facebook 的内部项目，因为该公司对市场上所有 JavaScript MVC 框架，都不满意，就决定自己写一套，用来架设Instagram 的网站。做出来以后，发现这套东西很好用，就在2013年5月开源了。</div><div></div><div>官网地址：http://react-china.org/</div><div></div><div>7.vue.js</div><div></div><div>近几年最火的前端框架当属Vue.js了，Vue.js是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。很多使用过vue的程序员这样评价它，&#8220;vue.js兼具angular.js和react.js的优点，并剔除了它们的缺点&#8221;。授予了这么高的评价的vue.js，也是开源世界华人的骄傲，因为它的作者是位中国人--尤雨溪</div><div>---------------------&nbsp;</div><div>作者：前端入门到精通&nbsp;</div><div>来源：CSDN&nbsp;</div><div>原文：https://blog.csdn.net/zwjweb/article/details/86073841&nbsp;</div><div>版权声明：本文为博主原创文章，转载请附上博文链接！</div><img src ="http://www.blogjava.net/jackiesmith/aggbug/433747.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2019-05-05 09:20 <a href="http://www.blogjava.net/jackiesmith/archive/2019/05/05/433747.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>几款主流 NoSql 数据库的对比</title><link>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433746.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Sun, 05 May 2019 01:14:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433746.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/433746.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433746.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/433746.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/433746.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: HBase、Redis、MongoDB、Couchbase、LevelDB 五款较主流的数据库产品中，本文将主要对它们进行分析对比。鉴于缺乏项目中的实战经验沉淀，本文内容和观点主要还是从各平台资料搜罗汇总，也不会有太多深入或底层原理探讨。本文所引用的资料来源将示于本文尾部。所汇总的内容仅供参考，若有异议望指正。转载：https://www.cnblogs.com/zgblog/p/5488735....&nbsp;&nbsp;<a href='http://www.blogjava.net/jackiesmith/archive/2019/05/05/433746.html'>阅读全文</a><img src ="http://www.blogjava.net/jackiesmith/aggbug/433746.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2019-05-05 09:14 <a href="http://www.blogjava.net/jackiesmith/archive/2019/05/05/433746.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>常见的NoSQL数据库</title><link>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433745.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Sun, 05 May 2019 01:12:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433745.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/433745.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2019/05/05/433745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/433745.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/433745.html</trackback:ping><description><![CDATA[<p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">NoSQL数据库发展迅猛，据说现在已经有上百种NoSQL数据库了，下面来了解下常见的一些NoSQL数据库</p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">先来看张表，了解下典型的NoSQL数据库的分类</p><table border="1" align="left" style="margin: 0px; padding: 0px; border-collapse: collapse; border-spacing: 0px; border-style: solid; border-color: silver; word-break: break-word; color: #000000; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 14px; background-color: #ffffff; width: 597px; height: 127px;"><tbody style="margin: 0px; padding: 0px;"><tr style="margin: 0px; padding: 0px; background-color: #5f9ba0;"><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">临时性键值存储</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">永久性键值存储</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">面向文档的数据库</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">面向列的数据库</td></tr><tr style="margin: 0px; padding: 0px;"><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;"><a href="http://www.cnblogs.com/yejg1212/p/3186179.html" target="_blank" style="margin: 0px; padding: 0px; color: black;">Memcached</a></td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">Tokyo Tyrant</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">MangoDB</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">Cassandra</td></tr><tr style="margin: 0px; padding: 0px;"><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">Redis</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">Flare</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">CouchDB</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">HBase</td></tr><tr style="margin: 0px; padding: 0px;"><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">&nbsp;</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">ROMA</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">&nbsp;</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">HyperTable</td></tr><tr style="margin: 0px; padding: 0px;"><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">&nbsp;</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">Redis</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">&nbsp;</td><td style="margin: 0px; padding: 8px 14px; border-style: solid; border-color: silver; border-collapse: collapse;">&nbsp;</td></tr></tbody></table><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">&nbsp;</p><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">&nbsp;</p><h2>&nbsp;</h2><h2>&nbsp;</h2><p style="margin-top: 10px; margin-bottom: 10px; padding: 0px; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;">&nbsp;</p><h2><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">1. CouchDB</strong></p><ul style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; list-style-position: outside; list-style-image: initial; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所用语言： Erlang</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">特点：DB一致性，易于使用</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用许可： Apache</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">协议： HTTP/REST</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">双向数据复制，</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">持续进行或临时处理，</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">处理时带冲突检查，</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">因此，采用的是master-master复制（见编注2）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">MVCC &#8211; 写操作不阻塞读操作</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">可保存文件之前的版本</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">Crash-only（可靠的）设计</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">需要不时地进行数据压缩</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">视图：嵌入式 映射/减少</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">格式化视图：列表显示</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持进行服务器端文档验证</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持认证</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">根据变化实时更新</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持附件处理</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">因此， CouchApps（独立的 js应用程序）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">需要 jQuery程序库</li></ul><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">最佳应用场景：</strong>适用于数据变化较少，执行预定义查询，进行数据统计的应用程序。适用于需要提供数据版本支持的应用程序。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">例如：</strong>&nbsp;CRM、CMS系统。 master-master复制对于多站点部署是非常有用的。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">（编注2：master-master复制：是一种数据库同步方法，允许数据在一组计算机之间共享数据，并且可以通过小组中任意成员在组内进行数据更新。）</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">2. Redis</strong></p><ul style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; list-style-position: outside; list-style-image: initial; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所用语言：C/C++</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">特点：运行异常快</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用许可： BSD</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">协议：类 Telnet</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">有硬盘存储支持的内存数据库，</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">但自2.0版本以后可以将数据交换到硬盘（注意， 2.4以后版本不支持该特性！）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">Master-slave复制（见编注3）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">虽然采用简单数据或以键值索引的哈希表，但也支持复杂操作，例如 ZREVRANGEBYSCORE。</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">INCR &amp; co （适合计算极限值或统计数据）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持 sets（同时也支持 union/diff/inter）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持列表（同时也支持队列；阻塞式 pop操作）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持哈希表（带有多个域的对象）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持排序 sets（高得分表，适用于范围查询）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">Redis支持事务</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持将数据设置成过期数据（类似快速缓冲区设计）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">Pub/Sub允许用户实现消息机制</li></ul><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">最佳应用场景：</strong>适用于数据变化快且数据库大小可遇见（适合内存容量）的应用程序。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">例如：</strong>股票价格、数据分析、实时数据搜集、实时通讯。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">（编注3：Master-slave复制：如果同一时刻只有一台服务器处理所有的复制请求，这被称为 Master-slave复制，通常应用在需要提供高可用性的服务器集群。）</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">3. MongoDB</strong></p><ul style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; list-style-position: outside; list-style-image: initial; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所用语言：C++</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">特点：保留了SQL一些友好的特性（查询，索引）。</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用许可： AGPL（发起者： Apache）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">协议： Custom, binary（ BSON）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">Master/slave复制（支持自动错误恢复，使用 sets 复制）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">内建分片机制</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持 javascript表达式查询</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">可在服务器端执行任意的 javascript函数</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">update-in-place支持比CouchDB更好</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">在数据存储时采用内存到文件映射</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">对性能的关注超过对功能的要求</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">建议最好打开日志功能（参数 &#8211;journal）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">在32位操作系统上，数据库大小限制在约2.5Gb</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">空数据库大约占 192Mb</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">采用 GridFS存储大数据或元数据（不是真正的文件系统）</li></ul><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">最佳应用场景：</strong>适用于需要动态查询支持；需要使用索引而不是 map/reduce功能；需要对大数据库有性能要求；需要使用 CouchDB但因为数据改变太频繁而占满内存的应用程序。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">例如：</strong>你本打算采用 MySQL或 PostgreSQL，但因为它们本身自带的预定义栏让你望而却步。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">4. Riak</strong></p><ul style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; list-style-position: outside; list-style-image: initial; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所用语言：Erlang和C，以及一些Javascript</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">特点：具备容错能力</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用许可： Apache</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">协议： HTTP/REST或者 custom binary</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">可调节的分发及复制(N, R, W)</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">用 JavaScript or Erlang在操作前或操作后进行验证和安全支持。</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用JavaScript或Erlang进行 Map/reduce</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">连接及连接遍历：可作为图形数据库使用</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">索引：输入元数据进行搜索（1.0版本即将支持）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">大数据对象支持（ Luwak）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">提供&#8220;开源&#8221;和&#8220;企业&#8221;两个版本</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">全文本搜索，索引，通过 Riak搜索服务器查询（ beta版）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持Masterless多站点复制及商业许可的 SNMP监控</li></ul><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">最佳应用场景：</strong>适用于想使用类似 Cassandra（类似Dynamo）数据库但无法处理 bloat及复杂性的情况。适用于你打算做多站点复制，但又需要对单个站点的扩展性，可用性及出错处理有要求的情况。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">例如：销售数据搜集，工厂控制系统；对宕机时间有严格要求；可以作为易于更新的 web服务器使用。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">5. Membase</strong></p><ul style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; list-style-position: outside; list-style-image: initial; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所用语言： Erlang和C</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">特点：兼容 Memcache，但同时兼具持久化和支持集群</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用许可： Apache 2.0</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">协议：分布式缓存及扩展</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">非常快速（200k+/秒），通过键值索引数据</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">可持久化存储到硬盘</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所有节点都是唯一的（ master-master复制）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">在内存中同样支持类似分布式缓存的缓存单元</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">写数据时通过去除重复数据来减少 IO</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">提供非常好的集群管理 web界面</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">更新软件时软无需停止数据库服务</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持连接池和多路复用的连接代理</li></ul><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">最佳应用场景：</strong>适用于需要低延迟数据访问，高并发支持以及高可用性的应用程序</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">例如：低延迟数据访问比如以广告为目标的应用，高并发的 web 应用比如网络游戏（例如 Zynga）</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">6. Neo4j</strong></p><ul style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; list-style-position: outside; list-style-image: initial; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所用语言： Java</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">特点：基于关系的图形数据库</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用许可： GPL，其中一些特性使用 AGPL/商业许可</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">协议： HTTP/REST（或嵌入在 Java中）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">可独立使用或嵌入到 Java应用程序</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">图形的节点和边都可以带有元数据</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">很好的自带web管理功能</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用多种算法支持路径搜索</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用键值和关系进行索引</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">为读操作进行优化</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持事务（用 Java api）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用 Gremlin图形遍历语言</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持 Groovy脚本</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持在线备份，高级监控及高可靠性支持使用 AGPL/商业许可</li></ul><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">最佳应用场景：</strong>适用于图形一类数据。这是 Neo4j与其他nosql数据库的最显著区别</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">例如：社会关系，公共交通网络，地图及网络拓谱</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">7. Cassandra</strong></p><ul style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; list-style-position: outside; list-style-image: initial; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所用语言： Java</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">特点：对大型表格和 Dynamo支持得最好</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用许可： Apache</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">协议： Custom, binary (节约型)</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">可调节的分发及复制(N, R, W)</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持以某个范围的键值通过列查询</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">类似大表格的功能：列，某个特性的列集合</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">写操作比读操作更快</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">基于 Apache分布式平台尽可能地 Map/reduce</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">我承认对 Cassandra有偏见，一部分是因为它本身的臃肿和复杂性，也因为 Java的问题（配置，出现异常，等等）</li></ul><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">最佳应用场景：</strong>当使用写操作多过读操作（记录日志）如果每个系统组建都必须用 Java编写（没有人因为选用 Apache的软件被解雇）</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">例如：银行业，金融业（虽然对于金融交易不是必须的，但这些产业对数据库的要求会比它们更大）写比读更快，所以一个自然的特性就是实时数据分析</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">8. HBase</strong></p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">（配合 ghshephard使用）</p><ul style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; list-style-position: outside; list-style-image: initial; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">所用语言： Java</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">特点：支持数十亿行X上百万列</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">使用许可： Apache</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">协议：HTTP/REST （支持&nbsp;<a href="http://www.jobbole.com/entry.php/73" style="border: 0px; margin: 0px; padding: 0px; text-decoration-line: none; color: #0099cc;">Thrift</a>，见编注4）</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">在 BigTable之后建模</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">采用分布式架构 Map/reduce</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">对实时查询进行优化</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">高性能 Thrift网关</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">通过在server端扫描及过滤实现对查询操作预判</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">支持 XML, Protobuf, 和binary的HTTP</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">Cascading, hive, and pig source and sink modules</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">基于 Jruby（ JIRB）的shell</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">对配置改变和较小的升级都会重新回滚</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">不会出现单点故障</li><li style="border: 0px; margin: 0px 0px 5px 30px; padding: 0px;">堪比MySQL的随机访问性能</li></ul><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;"><strong style="border: 0px; margin: 0px; padding: 0px;">最佳应用场景：</strong>适用于偏好BigTable:)并且需要对大数据进行随机、实时访问的场合。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">例如： Facebook消息数据库（更多通用的用例即将出现）</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">编注4：Thrift 是一种接口定义语言，为多种其他语言提供定义和创建服务，<a href="http://blog.jobbole.com/73/" style="border: 0px; margin: 0px; padding: 0px; text-decoration-line: none; color: #0099cc;">由Facebook开发并开源</a>。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">当然，所有的系统都不只具有上面列出的这些特性。这里我仅仅根据自己的观点列出一些我认为的重要特性。与此同时，技术进步是飞速的，所以上述的内容肯定需要不断更新。我会尽我所能地更新这个列表。</p><p style="border: 0px; margin: 0px 0px 20px; padding: 0px; font-size: 15px; color: #2e2e2e; font-family: &quot;Microsoft YaHei&quot;, 宋体, &quot;Myriad Pro&quot;, Lato, &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif; font-weight: 400; background-color: #ffffff;">&nbsp;</p></h2><ul style="margin: 0px 0px 0px 30px; padding: 0px; word-break: break-all; font-family: Verdana, Arial, Helvetica, sans-serif; background-color: #ffffff;"></ul><img src ="http://www.blogjava.net/jackiesmith/aggbug/433745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2019-05-05 09:12 <a href="http://www.blogjava.net/jackiesmith/archive/2019/05/05/433745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>java替换Excel字符</title><link>http://www.blogjava.net/jackiesmith/archive/2018/03/23/433128.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Fri, 23 Mar 2018 12:42:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2018/03/23/433128.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/433128.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2018/03/23/433128.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/433128.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/433128.html</trackback:ping><description><![CDATA[<ol style="margin: 0px; padding: 0px; list-style: none; clear: both; color: #333333; font-family: &quot;Microsoft Yahei&quot;, 微软雅黑, arial, 宋体, sans-serif; font-size: 16px; text-align: justify; background-color: #ffffff;"><li list-item-1"="" style="margin: 20px 0px 0px 17px; padding: 0px 0px 0px 35px; display: block; position: relative; min-height: 31px; border-left: 2px dotted #e4e4e4;"><div><p style="margin: 0px; padding: 0px;">//模板路径</p><p style="margin: 0px; padding: 0px;">String modelPath="D:\Excel.xls"&nbsp;</p><p style="margin: 0px; padding: 0px;">//sheet的名字</p><p style="margin: 0px; padding: 0px;">String&nbsp;sheetName="sheet1";</p><p style="margin: 0px; padding: 0px;"></p><p style="margin: 0px; padding: 0px;">获取Excel模板对象</p><p style="margin: 0px; padding: 0px;"></p><p style="margin: 0px; padding: 0px;">&nbsp;try { &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; File file = new File(modelPath); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!file.exists()){ &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("模板文件:"+modelPath+"不存在!"); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fs = new POIFSFileSystem(new FileInputStream(file)); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wb = new HSSFWorkbook(fs); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sheet = wb.getSheet(sheetName); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; } catch (FileNotFoundException e) { &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace(); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; } catch (IOException e) { &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace(); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; }</p></div></li><li list-item-2"="" style="margin: 1px 0px 0px 17px; padding: 45px 0px 0px 35px; display: block; position: relative; min-height: 31px; border-left: 2px dotted #e4e4e4;"><div style="width: 32px; height: 32px; position: absolute; left: -18px; top: 43px; color: #eeffee; text-align: center; line-height: 32px; background: url(&quot;//exp.bdstatic.com/static/article/widget/img-baidu-com/step_ol_bg_e53cfaf.png&quot;) no-repeat; visibility: hidden;"></div><div><p style="margin: 0px; padding: 0px;">//从heet中获取行数</p><p style="margin: 0px; padding: 0px;">int rowNum = sheet.getLastRowNum();</p></div></li><li list-item-3"="" style="margin: 1px 0px 0px 17px; padding: 45px 0px 0px 35px; display: block; position: relative; min-height: 31px; border-left: 2px dotted #e4e4e4;"><div style="width: 32px; height: 32px; position: absolute; left: -18px; top: 43px; color: #eeffee; text-align: center; line-height: 32px; background: url(&quot;//exp.bdstatic.com/static/article/widget/img-baidu-com/step_ol_bg_e53cfaf.png&quot;) no-repeat; visibility: hidden;"></div><div><p style="margin: 0px; padding: 0px;">//获取行里面的总列数</p><p style="margin: 0px; padding: 0px;"></p><p style="margin: 0px; padding: 0px;">row = sheet.getRow(i); //i:第I行</p><p style="margin: 0px; padding: 0px;">// 获取行里面的总列数</p><p style="margin: 0px; padding: 0px;">int columnNum = 0;</p><p style="margin: 0px; padding: 0px;">if(row!=null){</p><p style="margin: 0px; padding: 0px;">columnNum = row.getPhysicalNumberOfCells();</p><p style="margin: 0px; padding: 0px;">}</p></div></li><li list-item-4"="" style="margin: 1px 0px 0px 17px; padding: 45px 0px 0px 35px; display: block; position: relative; min-height: 31px; border-left: 2px dotted #e4e4e4;"><div style="width: 32px; height: 32px; position: absolute; left: -18px; top: 43px; color: #eeffee; text-align: center; line-height: 32px; background: url(&quot;//exp.bdstatic.com/static/article/widget/img-baidu-com/step_ol_bg_e53cfaf.png&quot;) no-repeat; visibility: hidden;"></div><div><p style="margin: 0px; padding: 0px;">//获取单元格的值&nbsp;</p><p style="margin: 0px; padding: 0px;"></p><p style="margin: 0px; padding: 0px;">HSSFCell cell = sheet.getRow(i).getCell(j); //第i行,第j列</p><p style="margin: 0px; padding: 0px;">String cellValue = cell.getStringCellValue();</p></div></li><li list-item-5"="" style="margin: 1px 0px 0px 17px; padding: 45px 0px 0px 35px; display: block; position: relative; min-height: 31px; border-left: 2px dotted #e4e4e4;"><div style="width: 32px; height: 32px; position: absolute; left: -18px; top: 43px; color: #eeffee; text-align: center; line-height: 32px; background: url(&quot;//exp.bdstatic.com/static/article/widget/img-baidu-com/step_ol_bg_e53cfaf.png&quot;) no-repeat; visibility: hidden;"></div><div><p style="margin: 0px; padding: 0px;">//替换数据 &nbsp; 本人的数据存放在Map中</p><p style="margin: 0px; padding: 0px;"></p><p style="margin: 0px; padding: 0px;">for (Entry&lt;String, Object&gt; entry : param.entrySet()) {</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; String key = entry.getKey();</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; if(key.equals(cellValue)){</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; String value = entry.getValue().toString();</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setCellStrValue(i, j, value);//设置第i行,第j列的值为Value</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; }</p><p style="margin: 0px; padding: 0px;">}</p></div></li><li list-item-6"="" style="margin: 1px 0px 0px 17px; padding: 45px 0px 0px 35px; display: block; position: relative; min-height: 31px; border-left: 2px dotted #e4e4e4;"><div style="width: 32px; height: 32px; position: absolute; left: -18px; top: 43px; color: #eeffee; text-align: center; line-height: 32px; background: url(&quot;//exp.bdstatic.com/static/article/widget/img-baidu-com/step_ol_bg_e53cfaf.png&quot;) no-repeat; visibility: hidden;"></div><div><p style="margin: 0px; padding: 0px;">完整代码：</p><p style="margin: 0px; padding: 0px;"></p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; /**</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* 替换Excel模板中的数据</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @param sheetName Sheet名字</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @param modelPath 模板路径</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @param param 需要替换的数据</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @return</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @author 刘泽中</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @Date: 2015年12月11日</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;*/</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; public HSSFWorkbook replaceExcel(String sheetName,String modelPath,Map&lt;String, Object&gt; param){</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; //获取所读取excel模板的对象</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; try { &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; File file = new File(modelPath); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if(!file.exists()){ &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.println("模板文件:"+modelPath+"不存在!"); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; fs = new POIFSFileSystem(new FileInputStream(file)); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; wb = new HSSFWorkbook(fs); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; sheet = wb.getSheet(sheetName); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; } catch (FileNotFoundException e) { &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace(); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; } catch (IOException e) { &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.printStackTrace(); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; replaceExcelDate(param);</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; return wb;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; }</p><p style="margin: 0px; padding: 0px;"></p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; /**</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* 根据 Map中的数据替换Excel模板中指定数据</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @param param&nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @author 刘泽中</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @Date: 2015年12月11日</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;*/</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; public void replaceExcelDate(Map&lt;String, Object&gt; param){</p><p style="margin: 0px; padding: 0px;">// 获取行数</p><p style="margin: 0px; padding: 0px;">int rowNum = sheet.getLastRowNum();</p><p style="margin: 0px; padding: 0px;">for (int i = 0; i &lt; rowNum; i++) {</p><p style="margin: 0px; padding: 0px;">row = sheet.getRow(i);</p><p style="margin: 0px; padding: 0px;">// 获取行里面的总列数</p><p style="margin: 0px; padding: 0px;">int columnNum = 0;</p><p style="margin: 0px; padding: 0px;">if(row!=null){</p><p style="margin: 0px; padding: 0px;">columnNum = row.getPhysicalNumberOfCells();</p><p style="margin: 0px; padding: 0px;">}</p><p style="margin: 0px; padding: 0px;">for (int j = 0; j &lt; columnNum; j++) {</p><p style="margin: 0px; padding: 0px;">HSSFCell cell = sheet.getRow(i).getCell(j);</p><p style="margin: 0px; padding: 0px;">String cellValue = cell.getStringCellValue();</p><p style="margin: 0px; padding: 0px;">for (Entry&lt;String, Object&gt; entry : param.entrySet()) {</p><p style="margin: 0px; padding: 0px;">String key = entry.getKey();</p><p style="margin: 0px; padding: 0px;">if(key.equals(cellValue)){</p><p style="margin: 0px; padding: 0px;">String value = entry.getValue().toString();</p><p style="margin: 0px; padding: 0px;">setCellStrValue(i, j, value);</p><p style="margin: 0px; padding: 0px;">}</p><p style="margin: 0px; padding: 0px;">}</p><p style="margin: 0px; padding: 0px;">}</p><p style="margin: 0px; padding: 0px;">}</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; }</p><p style="margin: 0px; padding: 0px;"></p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; /**&nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* 设置字符串类型的数据&nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @param rowIndex--行值 从0开始</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @param cellnum--列值 &nbsp;从0开始</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @param value--字符串类型的数据&nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;*&nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @author 刘泽中</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;* @Date: 2015年12月11日</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp;*/ &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; public void setCellStrValue(int rowIndex, int cellnum, String value) { &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; HSSFCell cell = sheet.getRow(rowIndex).getCell(cellnum); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; &nbsp; &nbsp; cell.setCellValue(value); &nbsp;</p><p style="margin: 0px; padding: 0px;">&nbsp; &nbsp; }</p></div><div><div clearfix"="" style="zoom: 1; position: relative; padding-top: 10px; padding-bottom: 10px;"><a href="http://jingyan.baidu.com/album/f71d603790a21c1ab641d11f.html?picindex=1" log="type:20150831,pos:enter_step" target="_self" style="text-decoration-line: none; color: #2d64b3; position: relative; display: block; float: left;"><img alt="java替换Excel中指定字符串（poi）" src="https://imgsa.baidu.com/exp/w=500/sign=cbbae030900a304e5222a0fae1c9a7c3/b7fd5266d01609249dbd362fd30735fae6cd346d.jpg" style="border: 0px; display: block; max-width: 500px; overflow: hidden;" /></a></div><div clearfix"="" style="zoom: 1; position: relative; padding-top: 10px; padding-bottom: 10px;"><a href="http://jingyan.baidu.com/album/f71d603790a21c1ab641d11f.html?picindex=2" log="type:20150831,pos:enter_step" target="_self" style="text-decoration-line: none; color: #2d64b3; position: relative; display: block; float: left;"><img alt="java替换Excel中指定字符串（poi）" src="https://imgsa.baidu.com/exp/w=500/sign=c0a12640ecf81a4c2632ecc9e72b6029/0df431adcbef760987a40dab29dda3cc7cd99e53.jpg" style="border: 0px; display: block; max-width: 500px; overflow: hidden;" /><span style="background: url(&quot;//exp.bdstatic.com/static/article/widget/img-baidu-com/show-step_24c46fe.png&quot;) no-repeat; width: 120px; height: 40px; position: absolute; top: 153.5px; left: 250px; margin-top: -20px; margin-left: -60px; font-variant-numeric: normal; font-variant-east-asian: normal; font-stretch: normal; line-height: 40px; font-family: 微软雅黑; color: #ffffff; text-indent: 22px; display: block; text-align: left; cursor: pointer; zoom: 1;">步骤阅读</span></a></div><div clearfix"="" style="zoom: 1; position: relative; padding-top: 10px; padding-bottom: 10px;"><a href="http://jingyan.baidu.com/album/f71d603790a21c1ab641d11f.html?picindex=3" log="type:20150831,pos:enter_step" target="_self" style="text-decoration-line: none; color: #2d64b3; position: relative; display: block; float: left;"><img alt="java替换Excel中指定字符串（poi）" src="https://imgsa.baidu.com/exp/w=500/sign=be59ab42f51fbe091c5ec3145b610c30/902397dda144ad349c1013b3d7a20cf431ad8553.jpg" style="border: 0px; display: block; max-width: 500px; overflow: hidden;" /></a></div></div></li><li list-item-6"="" style="margin: 1px 0px 0px 17px; padding: 45px 0px 0px 35px; display: block; position: relative; min-height: 31px; border-left: 2px dotted #e4e4e4;"><div></div></li></ol><img src ="http://www.blogjava.net/jackiesmith/aggbug/433128.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2018-03-23 20:42 <a href="http://www.blogjava.net/jackiesmith/archive/2018/03/23/433128.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>HttpClient调用Web工程的Spring @Controller方法</title><link>http://www.blogjava.net/jackiesmith/archive/2015/09/06/427140.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Sun, 06 Sep 2015 08:16:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2015/09/06/427140.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/427140.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2015/09/06/427140.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/427140.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/427140.html</trackback:ping><description><![CDATA[1、Web服务器是Spring MVC框架：<br /><div>package com.acce.server.order.controller;</div><div></div><div>import javax.annotation.Resource;</div><div>import javax.servlet.http.HttpServletResponse;</div><div></div><div>import org.springframework.stereotype.Controller;</div><div>import org.springframework.web.bind.annotation.RequestMapping;</div><div>import org.springframework.web.bind.annotation.RequestParam;</div><div></div><div>import com.acce.server.core.controller.BaseController;</div><div>import com.acce.server.pcOrder.service.PcBillService;</div><div>import com.alibaba.fastjson.JSONObject;</div><div></div><div>@Controller()</div><div>public class TestController extends BaseController {</div><div></div><div><span style="white-space:pre">	</span>@Resource(name = "PcBillService")</div><div><span style="white-space:pre">	</span>private PcBillService pcBillService;</div><div></div><div><span style="white-space:pre">	</span>/**</div><div><span style="white-space:pre">	</span> * 获取tabFirster表中属于该用户的信息。</div><div><span style="white-space:pre">	</span> *&nbsp;</div><div><span style="white-space:pre">	</span> * @param json</div><div><span style="white-space:pre">	</span> * @param response</div><div><span style="white-space:pre">	</span> */</div><div><span style="white-space:pre">	</span>@RequestMapping("/api/order/querryTabHeadByPC.html")</div><div><span style="white-space:pre">	</span>public void querryTabHead(@RequestParam String json,</div><div><span style="white-space:pre">			</span>HttpServletResponse response) {</div><div><span style="white-space:pre">		</span>System.out.println("/api/order/querryTabHead.html 接口获取到json：" + json);</div><div><span style="white-space:pre">		</span>String rstString = pcBillService.querryTabHead(</div><div><span style="white-space:pre">				</span>JSONObject.parseObject(json)).toString();</div><div><span style="white-space:pre">		</span>response.setContentType("text/html; charset=utf-8");</div><div><span style="white-space:pre">		</span>this.wirteJsonToResponse(response, rstString);</div><div><span style="white-space:pre">	</span>}<br />}<br /><br />2、将响应结果返回：<br /><div>package com.acce.server.core.controller;</div><div></div><div>import java.io.IOException;</div><div>import java.io.PrintWriter;</div><div></div><div>import javax.servlet.http.HttpServletResponse;</div><div></div><div>import org.apache.log4j.Logger;</div><div></div><div>public class BaseController {</div><div><span style="white-space:pre">	</span></div><div><span style="white-space:pre">	</span>protected Logger LOGGER = Logger.getLogger(this.getClass());</div><div><span style="white-space:pre">	</span></div><div></div><div><span style="white-space:pre">	</span>/**</div><div><span style="white-space:pre">	</span> * 将json写到servlet输出流</div><div><span style="white-space:pre">	</span> * @param response</div><div><span style="white-space:pre">	</span> * @param json</div><div><span style="white-space:pre">	</span> */</div><div><span style="white-space:pre">	</span>protected void wirteJsonToResponse(HttpServletResponse response,String json) {</div><div><span style="white-space:pre">		</span></div><div><span style="white-space:pre">		</span>PrintWriter writer = null;</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>writer = response.getWriter();</div><div><span style="white-space:pre">			</span>writer.println(json);</div><div><span style="white-space:pre">			</span>writer.flush();</div><div><span style="white-space:pre">		</span>} catch (IOException e) {</div><div><span style="white-space:pre">			</span>LOGGER.error("服务端写json报错："+json,e);</div><div><span style="white-space:pre">		</span>} finally {</div><div><span style="white-space:pre">			</span>if(null != writer) {</div><div><span style="white-space:pre">				</span>writer.close();</div><div><span style="white-space:pre">			</span>}</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">	</span>}</div><div>}<br /></div>3、新起一个JavaProject，导入HttpClient相关jar包：httpclient-4.3.6.jar、httpclient-cache-4.2.jar、httpcore-4.3.3.jar、httpcore-ab-4.2.1.jar、httpcore-nio-4.2.1.jar、httpmime-4.2.jar<br /><div>package acce;</div><div></div><div>import java.io.BufferedReader;</div><div>import java.io.InputStreamReader;</div><div>import java.util.ArrayList;</div><div></div><div>import org.apache.http.HttpResponse;</div><div>import org.apache.http.HttpStatus;</div><div>import org.apache.http.NameValuePair;</div><div>import org.apache.http.client.HttpClient;</div><div>import org.apache.http.client.entity.UrlEncodedFormEntity;</div><div>import org.apache.http.client.methods.HttpPost;</div><div>import org.apache.http.impl.client.DefaultHttpClient;</div><div>import org.apache.http.message.BasicNameValuePair;</div><div>import org.apache.http.protocol.HTTP;</div><div></div><div>public class TestHttpClient {</div><div></div><div><span style="white-space:pre">	</span>public static void main(String[] args) {</div><div><span style="white-space:pre">		</span>// \"{\"tabCorpFirst\":\"快来大酒店\",\"syncing\":\"1\"}\"</div><div><span style="white-space:pre">		</span>String url = "http://localhost:8080/acce-server/api/order/querryKingdomFromFirster.html";</div><div><span style="white-space:pre">		</span>try {</div><div><span style="white-space:pre">			</span>HttpClient httpClient = new DefaultHttpClient();</div><div><span style="white-space:pre">			</span>// HttpPost 实现 HttpUriRequest 接口,HttpUriRequest接口 继承 HttpRequest</div><div><span style="white-space:pre">			</span>HttpPost httpPostReq = new HttpPost(url);</div><div><span style="white-space:pre">			</span>ArrayList&lt;NameValuePair&gt; paramList = new ArrayList&lt;NameValuePair&gt;();</div><div><span style="white-space:pre">			</span>String json = "{\"tabCorpFirst\":\"快来大酒店\",\"syncing\":\"1\"}";</div><div><span style="white-space:pre">			</span>NameValuePair param1 = new BasicNameValuePair("json", json);</div><div><span style="white-space:pre">			</span>paramList.add(param1);</div><div><span style="white-space:pre">			</span>UrlEncodedFormEntity aa = new UrlEncodedFormEntity(paramList,</div><div><span style="white-space:pre">					</span>HTTP.UTF_8);</div><div><span style="white-space:pre">			</span>httpPostReq.setEntity(aa);</div><div></div><div><span style="white-space:pre">			</span>HttpResponse resp = httpClient.execute(httpPostReq);</div><div></div><div><span style="white-space:pre">			</span>if (resp.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {</div><div><span style="white-space:pre">				</span>BufferedReader reader = new BufferedReader(</div><div><span style="white-space:pre">						</span>new InputStreamReader(resp.getEntity().getContent()));</div><div><span style="white-space:pre">				</span>StringBuffer result = new StringBuffer();</div><div><span style="white-space:pre">				</span>String inputLine = null;</div><div><span style="white-space:pre">				</span>while ((inputLine = reader.readLine()) != null) {</div><div><span style="white-space:pre">					</span>result.append(inputLine);</div><div><span style="white-space:pre">				</span>}</div><div><span style="white-space:pre">				</span>System.out.println("结果： " + result.toString());</div><div><span style="white-space:pre">			</span>} else {</div><div><span style="white-space:pre">				</span>System.out.println("结果： "</div><div><span style="white-space:pre">						</span>+ resp.getStatusLine().getStatusCode());</div><div><span style="white-space:pre">			</span>}</div><div></div><div><span style="white-space:pre">		</span>} catch (Exception e) {</div><div><span style="white-space:pre">			</span>e.printStackTrace();</div><div><span style="white-space:pre">		</span>}</div><div><span style="white-space:pre">	</span>}</div><div>}</div><div></div>测试调用接口正确，并能获取到正确的值；<br />注：由于项目是UTF-8，需要转码。<br /></div><img src ="http://www.blogjava.net/jackiesmith/aggbug/427140.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2015-09-06 16:16 <a href="http://www.blogjava.net/jackiesmith/archive/2015/09/06/427140.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux环境下Apache安装及整合Apache和Tomcat</title><link>http://www.blogjava.net/jackiesmith/archive/2015/08/07/426617.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Fri, 07 Aug 2015 06:50:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2015/08/07/426617.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/426617.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2015/08/07/426617.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/426617.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/426617.html</trackback:ping><description><![CDATA[<div><span style="color: #444444; font-size: 10pt;"><strong>Apache和tomcat-connector下载地址：</strong><br /></span><span style="font-size: 8pt;">http://httpd.apache.org/<br /></span><span style="font-size: 8pt;">http://tomcat.apache.org/download-connectors.cgi<br />参考URL:</span>http://blog.csdn.net/wubai250/article/details/8533968<h1><div><div><span style="font-size: 8pt;">下载解压tar.gz，使用命令tar -zxvf *.tar.gz解压http和tomcat-connector<br /></span><span style="font-weight: normal; font-size: 8pt; color: red;">注：jdk、Tomcat安装不再此处描述，可在网上搜索。</span></div></div><span style="color: #444444; text-decoration: none; font-size: 10pt;">1、安装Apache2(</span><span style="font-size: 14px;">httpd-2.2.31)<br /></span><span style="font-size: 8pt;">&nbsp; &nbsp; <span style="font-weight: normal;">$</span></span><span style="font-size: 14px;"><span style="font-weight: normal;">cd httpd-2.2.31<br /></span></span><div><span style="font-size: 14px;">&nbsp; &nbsp;<span style="font-weight: normal;">$</span></span><span style="color: #333333; font-size: 14px; font-weight: normal; line-height: 24px; white-space: pre-wrap; background-color: #f7f7f7;">./configure --prefix=/env/web/apache/<br /></span></div><span style="font-size: 14px;"><span style="font-weight: normal;">&nbsp; &nbsp;$make<br />&nbsp; &nbsp;$make install<br /></span></span><span style="font-size: 14px;">&nbsp; &nbsp;安装成功后，进入<br /></span><div>&nbsp;<span style="font-size: 10pt; font-family: Arial;"><span style="font-weight: normal;"> $ cd /env/web/apache/bin</span><br /><span style="font-weight: normal;">&nbsp; &nbsp;$&nbsp;</span></span><span style="font-size: 14px; font-weight: normal;">./apachectl -k start</span><span style="font-weight: normal; font-size: 10pt; font-family: Arial;"><br /></span><span style="font-weight: normal; font-size: 10pt; font-family: Arial;">&nbsp; &nbsp;</span><span style="padding: 0px; margin: 0px; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 24px; background-color: #ffffff;">打开httpd.conf之后查找Listen这行</span><br style="padding: 0px; margin: 0px; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 24px; background-color: #ffffff;" /><span style="padding: 0px; margin: 0px; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 24px; background-color: #ffffff;">&nbsp;&nbsp;&nbsp;&nbsp;改成</span><span style="color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 24px; background-color: #ffffff;">Listen 80</span><p style="padding: 0px; margin: 0px 0px 1.5em; list-style: none; color: #333333; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; line-height: 24px; background-color: #ffffff;"><span style="font-weight: normal; padding: 0px; margin: 0px; line-height: 21px; color: #e56600;">&nbsp;&nbsp;&nbsp;&nbsp;注:80端口要是被占用了就启动不了的,如果被占用可以改成7160之类的<br /></span><span style="font-weight: normal;">&nbsp; &nbsp; 再查找ServerName</span><br /><span style="font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;改成</span><br /><span style="font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;ServerName localhost:80</span><br /><span style="font-weight: normal;">&nbsp;&nbsp;&nbsp;&nbsp;就修改这2个地方就完成了，可以启动了</span><br /><br /><span style="font-family: verdana, 'courier new'; line-height: 21px; color: #444444; font-size: 10pt;">2、安装</span><span style="font-family: verdana, 'courier new'; line-height: 21px;">tomcat-connectors-1.2.40-src<br /></span><a href="http://www.aiplaypc.com/111.html" style="font-size: 10pt; font-family: verdana, 'courier new'; line-height: 21px; color: #444444; text-decoration: none;">CentOS环境下整合Apache和Tomcat<br /></a><span style="font-family: verdana, 'courier new'; line-height: 21px; color: #444444; font-size: 10pt;"><a href="http://www.aiplaypc.com/111.html" style="color: #444444; text-decoration: none;">转载：</a></span><a href="http://www.aiplaypc.com/111.html" style="font-family: verdana, 'courier new'; line-height: 21px; color: #444444; text-decoration: none;">http://www.aiplaypc.com/111.html</a></p></div><div style="font-size: 14px; color: #444444; text-decoration: none; display: inline !important;"><span style="font-size: 10pt;"><span style="font-weight: normal;"><a href="http://www.aiplaypc.com/111.html">1</a>、先去apache官网下载tomcat与apache关联的相关应用，地址</span></span></div><span style="font-size: 14px; font-weight: normal;">http://tomcat.apache.org/download-connectors.cgi<br />2、解压下载的</span><span style="font-size: 12px;">&nbsp;<span style="font-weight: normal;">tar -xzvf tomcat-connectors-1.2.40-src.tar.gz&nbsp;<br />3、进入cd /</span></span><span style="font-weight: normal; font-size: 12px;">tomcat-connectors-1.2.40-src/native ，输入命令：./configure --with-apxs=/env/web/apache/bin/apxs</span><span style="font-weight: normal; font-size: 12px; color: red;">(注：此处为apache安装路径)<br /></span><span style="font-weight: normal; font-size: 12px;">&nbsp; &nbsp; &nbsp;$make<br /></span><span style="font-weight: normal; font-size: 12px;">&nbsp; &nbsp; &nbsp;$make install</span><span style="font-weight: normal; font-size: 12px;"><br /></span>&nbsp; <span style="color: #ff0000; font-family: Arial; font-size: 14px; font-weight: normal; line-height: 26px; background-color: #ffffff;">注意：安装完成tomcat-connectors之后，查看apache目录下的modules目录，是否多出一些.so文件。这些文件即jk的配置信息文件</span><br /><span style="font-size: 12px;">3、配置负载均衡</span><br /><span style="font-size: 12px;">A)、修改http.conf配置文件</span><br /><div><span style="font-size: 12px; font-weight: normal;">&lt;VirtualHost *:80&gt;</span></div><div><span style="font-size: 12px; font-weight: normal;"><span style="white-space:pre">	</span>ServerName test.XXX.com</span></div><div><span style="font-size: 12px; font-weight: normal;"><span style="white-space:pre">	</span>ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=on</span></div><div><span style="font-size: 12px; font-weight: normal;"><span style="white-space:pre">	</span>ProxyPassReverse / balancer://cluster</span></div><div><span style="font-size: 12px; font-weight: normal;"><span style="white-space:pre">	</span>ErrorLog logs/test.XXX.com-error_log</span></div><div><span style="font-size: 12px; font-weight: normal;"><span style="white-space:pre">	</span>CustomLog logs/test.XXX.com-access_log common</span></div><div><span style="font-size: 12px; font-weight: normal;">&lt;/VirtualHost&gt;</span></div><div><span style="font-size: 12px; font-weight: normal;"><br /></span></div><div><span style="font-size: 12px; font-weight: normal;">ProxyRequests Off</span></div><div><span style="font-size: 12px; font-weight: normal;">&lt;Proxy balancer://cluster&gt;<br />&nbsp; &nbsp; &nbsp; &nbsp; #注此处端口不是8080那个端口，而是负载均衡使用的端口</span></div><div><span style="font-size: 12px; font-weight: normal;"><span style="white-space:pre">	</span>BalancerMember ajp://127.0.0.1:8089 loadfactor=1 route=jvm1</span></div><div><span style="font-size: 12px; font-weight: normal;"><span style="white-space:pre">	</span>BalancerMember ajp://127.0.0.1:9099 loadfactor=1 route=jvm2</span></div><div><span style="font-size: 12px; font-weight: normal;">&lt;/Proxy&gt;<br />注：参考</span><span style="font-size: 14px; font-weight: normal;">http://www.cnblogs.com/fx2008/p/4086555.html<br />B)、配置tomcat<br />修改端口，具体详见上述链接描述</span></div><span style="font-weight: normal; font-size: 12px; color: red;"></span></h1></div><img src ="http://www.blogjava.net/jackiesmith/aggbug/426617.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2015-08-07 14:50 <a href="http://www.blogjava.net/jackiesmith/archive/2015/08/07/426617.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>【cenos】apache安装及配置（同一端口分静态html和动态tomcat页面）</title><link>http://www.blogjava.net/jackiesmith/archive/2015/08/03/426561.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Mon, 03 Aug 2015 08:20:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2015/08/03/426561.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/426561.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2015/08/03/426561.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/426561.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/426561.html</trackback:ping><description><![CDATA[1、软硬件环境：<br />&nbsp; &nbsp; &nbsp;cenos 环境、httpd 2.2.3、tomcat 7、jdk 1.7、mysql 5.5<br />&nbsp; &nbsp; 注：jdk、tomcat安装不再描述<br />2、安装apache httpd<br />&nbsp; &nbsp; 查看是否有安装httpd ：rpm -qa httpd<br />&nbsp; &nbsp; 安装httpd ： yum install httpd<br />&nbsp; &nbsp; 卸载httpd ： yum remove httpd<br />3、默认安装路径：/etc/httpd<br />&nbsp; &nbsp; 启动httpd: cd /etc/init.d/ &nbsp; ./httpd start<br />&nbsp; &nbsp; 停止httpd: cd /etc/init.d/ &nbsp; ./httpd stop<br />4、修改/etc/httpd/conf/httpd.conf<br />&nbsp; &nbsp; &nbsp;#同一端口，不同域名配置必须下一行<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NameVirtualHost *:80<div></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&lt;VirtualHost *:80&gt;</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ServerName XX.XXX.com</div><div>&nbsp; &nbsp; &nbsp; &nbsp;<span style="white-space:pre">	</span>DocumentRoot "/env/www/html"</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ErrorLog logs/XX.XXX.com-error_log</div><div>&nbsp; &nbsp; &nbsp; &nbsp; CustomLog logs/XX.XXX.com-access_log common</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/VirtualHost&gt;</div><div></div><div>&nbsp;&nbsp;&nbsp;&nbsp;&lt;VirtualHost *:80&gt;</div><div><span style="white-space:pre">	</span>ServerName YY.YYY.com</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ProxyPass / http://YY.YYY.com:8080/</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ProxyPassReverse / http://YY.YYY.com:8080/</div><div>&nbsp; &nbsp; &nbsp; &nbsp; ErrorLog logs/hbseed.accedeal.com-error_log</div><div>&nbsp; &nbsp; &nbsp; &nbsp; CustomLog logs/hbseed.accedeal.com-access_log common</div><div>&nbsp;&nbsp;&nbsp;&nbsp;&lt;/VirtualHost&gt;</div>5、在浏览器中分别输入XX.XXX.com和YY.YYY.com分别访问了html和tomcat的jsp项目<br /><br /><img src ="http://www.blogjava.net/jackiesmith/aggbug/426561.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2015-08-03 16:20 <a href="http://www.blogjava.net/jackiesmith/archive/2015/08/03/426561.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Tomcat配置域名和多域名映射同一IP（Windows环境）</title><link>http://www.blogjava.net/jackiesmith/archive/2015/05/27/425325.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Wed, 27 May 2015 03:02:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2015/05/27/425325.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/425325.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2015/05/27/425325.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/425325.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/425325.html</trackback:ping><description><![CDATA[背景：在本地环境配置，不同域名访问对应的数据：<br />
1、硬件配置：Win7、Tomcat7.0；<br />
<br />
2、修改 C:\Windows\System32\drivers\etc\hosts 文件<br />
&nbsp; &nbsp; 增加域名映射本服务器地址（可换成IP地址）：<br />
<div>&nbsp; &nbsp; 127.0.0.1 heyj.net</div>
<div>&nbsp; &nbsp; 127.0.0.1 www.test.net</div>
<div>&nbsp; &nbsp; 127.0.0.1 www.run.net<br />
3、<span style="color: #111111; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 23.3999996185303px; background-color: #ffffff;">tomcat目录下的conf文件夹, server.xml<br />
&nbsp; &nbsp; 修改8080端口，改为80<br />
&nbsp; &nbsp; &lt;</span>Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/&gt;<br />
&nbsp;&nbsp;<span style="color: red; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 23.3999996185303px; background-color: #ffffff;">&nbsp; &lt;</span><span style="color: red;">Connector connectionTimeout="20000" port="80" protocol="HTTP/1.1" redirectPort="8443"/&gt;<br />
</span>&nbsp; &nbsp; 修改Host端口对应的配置<br />
<div>&nbsp; &nbsp; &lt;Host appBase="webapps" autoDeploy="true" <span style="color: red;">name="localhost"</span> unpackWARs="true"&gt;<br />
&nbsp; &nbsp; &nbsp; &nbsp;<span style="color: red;">&lt;Alias&gt;heyj.net</span><span style="color: red;">&lt;/Alias&gt;</span><br />
<span style="color: red;">&nbsp; &nbsp; &nbsp; &nbsp;&lt;Alias&gt;www.test.net&lt;/Alias&gt;</span><br />
<span style="color: red;">&nbsp; &nbsp; &nbsp; &nbsp;&lt;Alias&gt;www.run</span><span style="color: red;">.net&lt;/Alias&gt;</span><br />
&nbsp; &nbsp; &lt;/Host&gt;</div>
4、输入localhost、heyj.net、www.test.net、www.run.net后，IE页面均能显示如图所示：<br />
<div></div>
&nbsp;&nbsp;<img src="http://www.blogjava.net/images/blogjava_net/jackiesmith/1.png" border="0" alt="" /><img src="http://www.blogjava.net/images/blogjava_net/jackiesmith/2.png" border="0" alt="" /><img src="http://www.blogjava.net/images/blogjava_net/jackiesmith/3.png" border="0" alt="" /><img src="http://www.blogjava.net/images/blogjava_net/jackiesmith/4.png" border="0" alt="" /><br /><br />
<span style="color: #111111; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 23.3999996185303px; background-color: #ffffff;"><br />
</span><span style="color: #111111; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; line-height: 23.3999996185303px; background-color: #ffffff;"><br />
&nbsp; &nbsp;&nbsp;<br />
<br />
<br />
</span></div><img src ="http://www.blogjava.net/jackiesmith/aggbug/425325.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2015-05-27 11:02 <a href="http://www.blogjava.net/jackiesmith/archive/2015/05/27/425325.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Input Text 的事件及方法</title><link>http://www.blogjava.net/jackiesmith/archive/2014/07/12/415722.html</link><dc:creator>龙旋风</dc:creator><author>龙旋风</author><pubDate>Sat, 12 Jul 2014 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/jackiesmith/archive/2014/07/12/415722.html</guid><wfw:comment>http://www.blogjava.net/jackiesmith/comments/415722.html</wfw:comment><comments>http://www.blogjava.net/jackiesmith/archive/2014/07/12/415722.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jackiesmith/comments/commentRss/415722.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jackiesmith/services/trackbacks/415722.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 事件 描述onactivate 当对象设置为活动元素时触发。onafterupdate 当成功更新数据源对象中的关联对象后在数据绑定对象上触发。onbeforeactivate 对象要被设置为当前元素前立即触发。onbeforecut 当选中区从文档中删除之前在源对象触发。onbeforedeactivate 在 activeElement 从当前对象变为父文档其它对象之前立即触发。onbefor...&nbsp;&nbsp;<a href='http://www.blogjava.net/jackiesmith/archive/2014/07/12/415722.html'>阅读全文</a><img src ="http://www.blogjava.net/jackiesmith/aggbug/415722.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jackiesmith/" target="_blank">龙旋风</a> 2014-07-12 11:06 <a href="http://www.blogjava.net/jackiesmith/archive/2014/07/12/415722.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>