apache

阅读 / 问答 / 标签

org.apache.oro.text.perl.Perl5Util 是哪个包下的??

你是不是要的java?

在java中利用apache的Axis来获取C#服务接口返回的DataTable数据

首先你要确定你的DataTable 里面是有数据的我不知道你的 Table里面是什么样的数据··ItemArray 返回 object [] 数组 你拿一个object 数组 去 Convert.toInt32() 你不报错我到觉得奇怪了 ·· 如果是业务需要··那就要另外来写 toInt32() 对你的需要行不通 他只返回一个数字 而不是 int数组!一般拿个Convert.toInt32(dt.Rows[1][2]) 就是这样了!

org.apache.jasper.JasperException:无法编译JSP类 怎么解决??

1: <%2: String str = request.getparameter("info");//接收表单参数3: out.println("<h1>"+str+"</h1>");4: %>2:---这行的request.getparameter("info");使用的方法不正确应该是getParameterP是大写的试试是不是这个问题

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 文件

org.apache.juli.ClassLoaderLogManager不在classpath里??

如何使用Jackson JSON处理器和Apache Wink

Apache Wink 正在快速成长为 JAX-RS 1.0 规范的标准实现之一。Apache Wink 版本附带的面向 JSON 编组和解组的提供程序,例如 JSON.org 和 Jettison,在数组表示方面有一些问题,并且返回类型比较有限。编写 JAX-RS 服务及其客户 Asynchronous JavaScript and XML (Ajax)应用程序非常困难。在本文中,学习如何配置一个现有的支持 Apache Wink 的 Web 应用程序,从而使用 Jackson JSON 提供程序来解决一些问题。将使用一个简单的支持 Jackson 的 JAX-RS Web 服务的代码示例演示这个提供程序的优点。Apache Wink 正在快速成长为 JAX-RS 1.0 规范的标准实现之一。JSON.org 和 Jettison 是 JSON 同步的默认提供程序,但是它们自身存在某些问题。例如,它们的数组表示和有限的返回类型使编写 JAX-RS 服务及其客户 Ajax 应用程序变得很困难。本文概述了一个配置现有的支持 Apache Wink 的 Web 应用程序来使用 Jackson JSON 提供程序的方法。通过使用一个简单的支持 Jackson 的 JAX-RS Web 服务的 样例代码 来了解这种提供程序的优点。回页首Apache Wink 附带的 JSON 提供程序Apache Wink 打包了两个 JSON 提供程序作为标准版本的一部分:JSON.org 和 Jettison 实施。这两个提供程序都会使 Wink 服务和 AjaxBoth 应用程序的集成复杂化。这两个提供程序都不能直接将一个 Java 列表作为返回类型序列化到 JSON,因为 JAXB 需要一个封装的 XML 元素。这两者还有一些其他问题,例如:JSON.orgJSON.org 提供程序的数组序列化是可预见的,但是这个行为在和 Ajax 交互时是不可取的。当它显示各种大小不同的数组时,JSON.org 会以不同的方式呈现它们:2+:“正确的” 数组序列化。例如:object : { array : ["element1", "element2"] }1:折叠数组。例如:object : { array : "element1" }0:完全删除数组。例如:object : { }很明显,在 Javascript 中对不同结构的编码限制会导致多余的、不必要的复杂性。JettisonJettison 对 JSON 生成使用 Badgerfish 惯例,这将生成一种结构,这种结构在转换为 Javascript 对象后很难进行导航。回页首JacksonJackson 本质上就是一个 JSON 处理器,用于 Java 对象的 JSON 表示的生成和解析。还可以对 Jackson 进行配置,作为 JAX-RS 实现的一个 JSON 序列化提供程序。作为一个 JAX-RS JSON 序列化提供程序,如下所述,Jackson 有几个 JSON.org 和 Jettison 所没有的优点。表 1. Jackson 的优点优点描述在本地序列化列表的能力Jackson 可以直接从服务中返回一个字符串对象的列表,无需一个封装的 XML 元素。 数组处理Jackson 拥有良好的、可预见的数组序列化设施。 速度具有比其他提供程序更快的速度。 许可Apache License 2.0 得到了很好的理解。使用该许可的组件被用于商业和免费软件产品。 回页首针对 Jackson 配置 Apache Wink本文中的示例假设:您有一个现有的动态 Web 项目,该项目被配置为使用 Apache Wink 作为一个 JAX-RS 提供程序。Wink servlet org.apache.wink.server.internal.servlet.RestServlet,在 web.xml 文件中进行配置,使用一个 JAX-RS 应用程序,如清单 1 所示。清单 1. Wink servlet 的 web.xml 片段<servlet> <servlet-name>WinkServlet</servlet-name> <servlet-class>org.apache.wink.server.internal.servlet.RestServlet</servlet-class> <init-param> <param-name>javax.ws.rs.Application</param-name> <param-value>com.ibm.developerworks.winkJackson.WinkApplication</param-value> </init-param> <load-on-startup>1</load-on-startup></servlet><servlet-mapping> <servlet-name>WinkServlet</servlet-name> <url-pattern>/services/*</url-pattern></servlet-mapping>下载和安装 Jackson 库从 Jackson Web 网站下载 Jackson 的最新版本(链接见 参考资源)。在编写本文时,Jackson 团队还没有提供使用 Jackson 和 Apache Wink 所需的所有库的独立下载资源。您会需要 JAR 文件的 ASL 或者 LGPL 版本,如下所示。core-(asl/lgpl):Jackson 核心功能mapper-(asl/lgpl):POJO <-> JSON 序列化jax-rs:Wink 和 Jackson 之间的接口jax-xc:和 JAXB 注释的向后兼容性JAR 文件必须显示在您的 Web 项目的类路径下。实现此目的的最简单的方法就是将它们放置在您的 WEB-INF/lib 目录。(您的 Apache Wink JAR 文件可能已经在这个目录下。)加入 My developerWorks 的 Apache Wink 组在 My developerWorks Apache Wink 组 中与其他开发人员讨论有关用 Apache Wink 开发 RESTful Web 服务的话题并分享资源。您还不是 My developerWorks 的一员?现在就加入!配置 Apache Wink 来使用 Jackson 提供程序进行 JSON 序列化现在,Jackson JSON 提供程序作为您的 Web 应用程序的一部分进行加载,但是 Apache Wink 还尚未使用它来进行 JSON 序列化。调整 Wink servlet 的已配置过的应用程序来加载提供应用程序,如清单 2 所示。清单 2. WinkApplication.java 示例package com.ibm.developerworks.winkJackson;import java.util.HashSet;import java.util.Set;import javax.ws.rs.core.Application;// Jackson importsimport org.codehaus.jackson.jaxrs.JacksonJaxbJsonProvider;import org.codehaus.jackson.map.AnnotationIntrospector;import org.codehaus.jackson.map.ObjectMapper;import org.codehaus.jackson.map.introspect.JacksonAnnotationIntrospector;import org.codehaus.jackson.xc.JaxbAnnotationIntrospector;public class WinkApplication extends Application { /** * Get the list of service classes provided by this JAX-RS application */ @Override public Set<Class<?>> getClasses() { Set<Class<?>> serviceClasses = new HashSet<Class<?>>(); serviceClasses.add(HelloWorlds.class); return serviceClasses; } @Override public Set<Object> getSingletons() { Set<Object> s = new HashSet<Object>(); // Register the Jackson provider for JSON // Make (de)serializer use a subset of JAXB and (afterwards) Jackson annotations // See http://wiki.fasterxml.com/JacksonJAXBAnnotations for more information ObjectMapper mapper = new ObjectMapper(); AnnotationIntrospector primary = new JaxbAnnotationIntrospector(); AnnotationIntrospector secondary = new JacksonAnnotationIntrospector(); AnnotationIntrospector pair = new AnnotationIntrospector.Pair(primary, secondary); mapper.getDeserializationConfig().setAnnotationIntrospector(pair); mapper.getSerializationConfig().setAnnotationIntrospector(pair); // Set up the provider JacksonJaxbJsonProvider jaxbProvider = new JacksonJaxbJsonProvider(); jaxbProvider.setMapper(mapper); s.add(jaxbProvider); return s; }}回页首Direct List<?> 序列化Jackson 使您能够轻松地从其函数返回 Java 列表,不需要包装器 JAXB XML 元素。如清单 3 所示。清单 3. HelloWorlds.javapackage com.ibm.developerworks.winkJackson;import java.util.Arrays;import java.util.List;import javax.ws.rs.GET;import javax.ws.rs.Path;import javax.ws.rs.Produces;import javax.ws.rs.core.MediaType;@Path("helloworlds")@Produces(MediaType.APPLICATION_JSON)public class HelloWorlds { @GET public List<String> helloWorlds() { return Arrays.asList(new String [] {"Hello Earth!", "Hello Mars!" }); } }

如何使用Apache POI HSSFWorkbook转换为XSSFWorkbook

公共final类ExcelDocumentConverter {公共静态XSSFWorkbook convertWorkbookHSSFToXSSF(HSSFWorkbook源){XSSFWorkbook retVal的=新XSSFWorkbook();的for(int i = 0; I&LT; source.getNumberOfSheets();我++){XSSFSheet xssfSheet = retVal.createSheet();HSSFSheet hssfsheet = source.getSheetAt(ⅰ);copySheets(hssfsheet,xssfSheet);}返回retVal的;}公共静态无效copySheets(HSSFSheet源,XSSFSheet目的地){copySheets(源,目标,真正的);}/ *** @参数目的地*本表从副本中创建。* @参数的*板材进行复制。* @参数copyStyle*副本的风格。* /公共静态无效copySheets(HSSFSheet源,XSSFSheet目的地,布尔copyStyle){INT maxColumnNum = 0;地图&LT;整数,HSSFCellStyle&GT;在StyleMap =(copyStyle)?新的HashMap&LT;整数,HSSFCellStyle&GT;():空;对于(INT I = source.getFirstRowNum(); I&LT; = source.getLastRowNum();我++){HSSFRow srcRow = source.getRow(ⅰ);XSSFRow destRow = destination.createRow(ⅰ);如果(srcRow!= NULL){copyRow(源,目标,srcRow,destRow,在StyleMap);如果(srcRow.getLastCellNum()&GT; maxColumnNum){maxColumnNum = srcRow.getLastCellNum();}}}的for(int i = 0; I&LT; = maxColumnNum;我++){destination.setColumnWidth(ⅰ,source.getColumnWidth(ⅰ));}}/ *** @参数srcSheet*本表进行复制。* @参数destSheet*本表创建。* @参数srcRow*行复制。* @参数destRow*行创建。* @参数在StyleMap* -* /公共静态无效copyRow(HSSFSheet srcSheet,XSSFSheet destSheet,HSSFRow srcRow,XSSFRow destRow,地图&LT;整数,HSSFCellStyle&GT;在StyleMap){为了不插入两个次//管理合并区列表//合并区SET&LT; CellRangeAddressWrapper&GT; mergedRegions =新TreeSet的&LT; CellRangeAddressWrapper&GT;();destRow.setHeight(srcRow.getHeight());//倒排chaque对于(INT J = srcRow.getFirstCellNum(); J&LT; = srcRow.getLastCellNum(); J ++){HSSFCell oldCell = srcRow.getCell(J); //安西安娜细胞XSSFCell newCell = destRow.getCell(J); //新细胞如果(oldCell!= NULL){如果(newCell == NULL){newCell = destRow.createCell(J);}//复制chaque细胞copyCell(oldCell,newCell,在StyleMap);//复制莱斯信息融合德莱恩特雷里奥斯cellules//的System.out.println(“行号:”+ srcRow.getRowNum()+//“,西:”+(短)oldCell.getColumnIndex());的CellRangeAddress mergedRegion = getMergedRegion(srcSheet,srcRow.getRowNum()(短)oldCell.getColumnIndex()); 如果(mergedRegion!= NULL){//的System.out.println(“选定合并后的区域:”+// mergedRegion.toString());的CellRangeAddress newMergedRegion =新的CellRangeAddress(mergedRegion.getFirstRow()mergedRegion.getLastRow(),mergedRegion.getFirstColumn(),mergedRegion.getLastColumn());//的System.out.println(“新合并的区域:”+// newMergedRegion.toString());CellRangeAddressWrapper包装=新CellRangeAddressWrapper(newMergedRegion);如果(isNewMergedRegion(包装,mergedRegions)){mergedRegions.add(包装);destSheet.addMergedRegion(wrapper.range);}}}}}/ *** @参数oldCell* @参数newCell* @参数在StyleMap* /公共静态无效copyCell(HSSFCell oldCell,XSSFCell newCell,地图&LT;整数,HSSFCellStyle&GT;在StyleMap){如果(在StyleMap!= NULL){。INT stHash code = oldCell.getCellStyle()哈希code();HSSFCellStyle sourceCellStyle = styleMap.get(stHash code);XSSFCellStyle destnCellStyle = newCell.getCellStyle();如果(sourceCellStyle == NULL){sourceCellStyle = oldCell.getSheet()getWorkbook()createCellStyle()。}destnCellStyle.cloneStyleFrom(oldCell.getCellStyle());styleMap.put(stHash code,sourceCellStyle);newCell.setCellStyle(destnCellStyle);}开关(oldCell.getCellType()){案例HSSFCell.CELL_TYPE_STRING:newCell.setCellValue(oldCell.getStringCellValue());打破;案例HSSFCell.CELL_TYPE_NUMERIC:newCell.setCellValue(oldCell.getNumericCellValue());打破;案例HSSFCell.CELL_TYPE_BLANK:newCell.setCellType(HSSFCell.CELL_TYPE_BLANK);打破;案例HSSFCell.CELL_TYPE_BOOLEAN:newCell.setCellValue(oldCell.getBooleanCellValue());打破;案例HSSFCell.CELL_TYPE_ERROR:newCell.setCellErrorValue(oldCell.getErrorCellValue());打破;案例HSSFCell.CELL_TYPE_FORMULA:newCell.setCellFormula(oldCell.getCellFormula());打破;默认:打破;}}/ ***Récupère莱斯信息融合德宫cellules丹斯拉片源*倒莱appliquer点菜片目的地......Récupère所有领域*合并丹斯拉片源等regarde倒chacune D"ELLE ELLE SI本身* trouve丹斯LA当前行阙常识traitons。 SI OUI,retourne L"客体*的CellRangeAddress。** @参数表*包含数据的片。* @参数的rowNum*行的NUM进行复制。* @参数cellNum*单元的NUM复制。返回:创建的CellRangeAddress。* /公共静态的CellRangeAddress getMergedRegion(HSSFSheet片,诠释的rowNum,短cellNum){的for(int i = 0; I&LT; sheet.getNumMergedRegions();我++){的CellRangeAddress合并= sheet.getMergedRegion(ⅰ);如果(merged.isInRange(的rowNum,cellNum)){返回合并;}}返回null;}/ ***检查合并后的地区已在目标表中创建。** @参数newMergedRegion*合并后的区域到目标表复制或没有。* @参数mergedRegions*包含所有合并的地区名单。*如果合并的区域是已在列表或不@返回真。* /私有静态布尔isNewMergedRegion(CellRangeAddressWrapper newMergedRegion,SET&LT; CellRangeAddressWrapper&GT; mergedRegions){!返回mergedRegions.contains(newMergedRegion);}}

高手指点:SAX2 driver class org.apache.xerces.parsers.SAXParser not found

分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题描述: 下面是我的部分程序代码: public static void main(String[] args) { SAXExample saxExample = new SAXExample(); XMLReader parser = null;Create parser try { parser = XMLReaderFactory.createXMLReader(".apache.xerces.parsers.SAXParser"); Tell the parser which object will handle SAX parsing events parser.setContentHandler(saxExample); } catch (Exception e) { System.err.println("Unable to create Xerces SAX parser - check classpath"); } try { The URL that sources the DVD goes here (i.e. perform a GET on some remote Web server). parser.parse("D:\Figure_2-55.xml"); Dump the character information to screen. System.out.println(saxExample.outputCharacters().toString()); } catch (Exception e) { e.printStackTrace(); } } 但是在 parser = XMLReaderFactory.createXMLReader(".apache.xerces.parsers.SAXParser");一句执行时就抛出一个异常,为SAX2 driver class .apache.xerces.parsers.SAXParser not found,是什么原因呀?那位高手指点,对谢! 解析: 去网上下载xerces,或者换一种方法创建解析器

org.apache.lucene.queryparser在哪个包里

位于该包中,lucene-queryparser-7.4.0.jar。不是 lucene-core-7.4.0.jar 。Reference: lucene.apache.org/core/7_4_0/core/index.html

MacOS Monterey 默认apache服务器 使用php被移除的几个代替方案

更新了MacOS Monterey后发现apache 使用出了一些问题,查询后发现系统自带的php已经被移除了。对我来说之前习惯使用 apache服务器配置一些 html 、json 文件做联调带来了一些不方便,下面列举一些我发现的一些代替方案。 配置流程参考: https://tech-cookbook.com/2021/10/25/how-to-setup-mamp-macos-apache-mysql-php-on-macos-12-monterey-2021/ 配置完成后: 我这边配置完成后,就能像之前一样正常使用了,但是后续使用发现一直出现异常,如下图。 因为对apache不太熟悉,所以后续也没有继续处理这个问题,就不使用这种方案了,如果有人知道是什么问题可以留言告诉我,谢谢。 Python3的安装这里就不重复了,没有安装的同学可以自行安装。 安装好之后只要cd到对应的文件夹,使用下面的命令就可以开启,非常方便。 Vapor 是基于 Swift 实现的 Web 框架与服务,可运行于 macOS 和 Ubuntu 系统上。 既然是一个web框架,开启一个http服务器查看文件当然是杀鸡用牛刀了。因为是swift 实现的,所以对iOS开发来说是一个很好的通过掌握的语言去学习整套服务器开发的一个突破口。 因为我也是开始学习,这里就简单得说一下我掌握了开启一个http服务器然后共享文件夹里面文件的流程。 因为 Vapor 4 需要 Swift 5.2(或以上) 版本,所以需要先安装 Xcode 11.4 (或以上)。 首先是通过 homebrew 安装 Toolbox: 安装完之后: 可以确认是否安装成功 通过 vapor 命令行工具创建项目,项目名称命名为 HttpTest。 创建成功后 cd到对应文件夹,然后输入 等到build成功后输入 这时候就可以看到服务器已经跑起来了,浏览器输入http://127.0.0.1:8080 可以查看。 我们的目标是能通过服务器共享文件,所以还需要修改一些东西。输入命令: 会自动生成一个完整的 Xcode 项目,然后去到 configure.swift 文件, 可以看到打开 app.middleware.use 那行注释可以共享app.directory.publicDirectory 这个路径下的文件。不过我们也可以共享其他路径下的文件,所以我输入了我当前需要共享的路径在下面一行( "/Users/xxx/Sites" 改为你想共享的路径即可) 然后点击Xcode的run 按钮,或者输入 vapor run 命令,你就可以在浏览器输入对应的文件路径去访问了,例如/Users/xxx/Sites 下有一个 sample.pdf 文件,这时候路径是 http://127.0.0.1:8080/sample.pdf 上面是一个简单的共享文件举例,有精力的话可以尝试去把浏览的页面也实现出来。

如何在Zend Studio中配置Apache服务器

我们使用Zend Studio软件的时候,经常需要Apache服务器来运行Web项目。那么如何在Zend Studio中配置Apache服务器呢?下面我给大家分享一下。 工具/材料 Zend Studio 01 首先打开Zend Studio软件,点击顶部的Window菜单,选择下拉菜单中的Preferences选项,如下图所示 02 接下来在弹出的Preferences界面中我们展开PHP选项,选择里面的Servers选项,如下图所示 03 接着点击右侧的New按钮进行服务器的添加,如下图所示 04 然后会弹出New PHP Server界面,我们选择Local Apache HTTP Server选项,如下图所示 05 接着会进入Apache Server配置界面,我们给服务器起一个名字,然后点击Browse按钮,如下图所示 06 接下来在弹出的界面中选择Apache安装目录下的conf文件夹,因为这个文件夹下面有httpd.conf文件,如下图所示 07 当Zend Studio找到了httpd.conf文件以后我们就可以点击Next按钮了,如下图所示 08 然后我们需要设置一下Apache服务器的端口,如下图所示,这里Debug调试大家选择Xdebug即可 09 最后回到Servers界面,我们就可以看到apache服务器已经加载进来了,如下图所示

大数据时代下Apache Kafka是数据库吗?

首先明确说明它不是数据库,它没有schema,也没有表,更没有索引。它仅仅是生产消息流、消费消息流而已。从这个角度来说Kafka的确不像数据库,至少不像我们熟知的关系型数据库。那么到底什么是数据库呢?或者说什么特性使得一个系统可以被称为数据库?经典的教科书是这么说的:数据库是提供 ACID 特性的,即atomicity、consistency、isolation和durability。好了,现在问题演变成了Apache Kafka支持ACID吗?如果它支持,Kafka又是怎么支持的呢?要回答这些问题,我们依次讨论下ACID。1、持久性(durability)我们先从最容易的持久性开始说起,因为持久性最容易理解。在80年代持久性指的是把数据写入到磁带中,这是一种很古老的存储设备,现在应该已经绝迹了。目前实现持久性更常见的做法是将数据写入到物理磁盘上,而这也只能实现单机的持久性。当演进到分布式系统时代后,持久性指的是将数据通过备份机制拷贝到多台机器的磁盘上。很多数据库厂商都有自己的分布式系统解决方案,如GreenPlum和Oracle RAC。它们都提供了这种多机备份的持久性。和它们类似,Apache Kafka天然也是支持这种持久性的,它提供的副本机制在实现原理上几乎和数据库厂商的方案是一样的。2、原子性(atomicity)数据库中的原子性和多线程领域内的原子性不是一回事。我们知道在Java中有AtomicInteger这样的类能够提供线程安全的整数操作服务,这里的atomicity关心的是在多个线程并发的情况下如何保证正确性的问题。而在数据库领域,原子性关心的是如何应对错误或异常情况,特别是对于事务的处理。如果服务发生故障,之前提交的事务要保证已经持久化,而当前运行的事务要终止(abort),它执行的所有操作都要回滚,最终的状态就好像该事务从未运行过那样。举个实际的例子,第三个方法是采用基于日志结构的消息队列来实现,比如使用Kafka来做,如下图所示:在这个架构中app仅仅是向Kafka写入消息,而下面的数据库、cache和index作为独立的consumer消费这个日志——Kafka分区的顺序性保证了app端更新操作的顺序性。如果某个consumer消费速度慢于其他consumer也没关系,毕竟消息依然在Kafka中保存着。总而言之,有了Kafka所有的异质系统都能以相同的顺序应用app端的更新操作,从而实现了数据的最终一致性。这种方法有个专属的名字,叫capture data change,也称CDC。3、隔离性(isolation)在传统的关系型数据库中最强的隔离级别通常是指serializability,国内一般翻译成可串行化或串行化。表达的思想就是连接数据库的每个客户端在执行各自的事务时数据库会给它们一个假象:仿佛每个客户端的事务都顺序执行的,即执行完一个事务之后再开始执行下一个事务。其实数据库端同时会处理多个事务,但serializability保证了它们就像单独执行一样。举个例子,在一个论坛系统中,每个新用户都需要注册一个唯一的用户名。一个简单的app实现逻辑大概是这样的:4、一致性(consistency)最后说说一致性。按照Kelppmann大神的原话,这是一个很奇怪的属性:在所有ACID特性中,其他三项特性的确属于数据库层面需要实现或保证的,但只有一致性是由用户来保证的。严格来说,它不属于数据库的特性,而应该属于使用数据库的一种方式。坦率说第一次听到这句话时我本人还是有点震惊的,因为从没有往这个方面考虑过,但仔细想想还真是这么回事。比如刚才的注册用户名的例子中我们要求每个用户名是唯一的。这种一致性约束是由我们用户做出的,而不是数据库本身。数据库本身并不关心或并不知道用户名是否应该是唯一的。针对Kafka而言,这种一致性又意味着什么呢?Kelppmann没有具体展开,但我个人认为他应该指的是linearizability、消息顺序之间的一致性以及分布式事务。幸运的是,Kafka的备份机制实现了linearizability和total order broadcast,而且在Kafka 0.11开始也支持分布式事务了。

《Apache Kafka源码剖析》txt下载在线阅读全文,求百度网盘云资源

《Apache Kafka源码剖析》(徐郡明)电子书网盘下载免费在线阅读链接: https://pan.baidu.com/s/1g5_3R4b5t-35m9aQ6u28Qw 提取码: gjde书名:Apache Kafka源码剖析作者:徐郡明豆瓣评分:8.4出版社:电子工业出版社出版年份:2017-5页数:604内容简介:《Apache Kafka源码剖析》以Kafka 0.10.0版本源码为基础,针对Kafka的架构设计到实现细节进行详细阐述。《Apache Kafka源码剖析》共5章,从Kafka的应用场景、源码环境搭建开始逐步深入,不仅介绍Kafka的核心概念,而且对Kafka生产者、消费者、服务端的源码进行深入的剖析,最后介绍Kafka常用的管理脚本实现,让读者不仅从宏观设计上了解Kafka,而且能够深入到Kafka的细节设计之中。在源码分析的过程中,还穿插了笔者工作积累的经验和对Kafka设计的理解,希望读者可以举一反三,不仅知其然,而且知其所以然。《Apache Kafka源码剖析》旨在为读者阅读Kafka源码提供帮助和指导,让读者更加深入地了解Kafka的运行原理、设计理念,让读者在设计分布式系统时可以参考Kafka的优秀设计。《Apache Kafka源码剖析》的内容对于读者全面提升自己的技术能力有很大帮助。

ubuntu apache 安装出错该怎么解决呢

上次安装没有正确退出貌似试试sudo dpkg --configure -a 进行重置试试~~ 然后再重装 Apache2

Apache2+Resin3.1.6 无法读取html格式页面。。

去掉apache也可以,直接走resin。apache配置太复杂,且resin的静态文件处理能力也不弱

hive server启动 出现以下错误,请指教! org.apache.thrift.transport.TTransportException:

IP地址不正确

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/thrift/TException

搜一下org.apache.thrift.TException属于哪个jar包,你少包了。如果程序没有编译错误,这个Jar包可能不需要,但你得检查代码,是什么地方会导致org.apache.thrift.TException这个异常,将这个代码改掉,或者捕获异常也可以。

apache-tomcat-7.0.50webapps目录下默认文件

这个目录下所有的都是项目文件,安装的时候有一个ROOT的,是tomcat默认的启动页面,你将你的项目改成ROOT默认访问的就是你的ROOT的访问是:localhost:8080aaa项目的访问是:localhost:8080/aaa

Tomcat服务器根目录下的Webapps文件里里面放做什么用的程序??对应Apache服务器根目录下的哪个文件夹?

先弄清楚apache和tomcat的区别。apache是web服务器,tomcat是应用(java)服务器,它只是一个servlet容器,可以认为是apache的扩展。apache和tomcat都可以做为独立的web服务器来运行。但是apache不能解释java程序。如:jsp。class等文件。然后再看webapps,顾名思义,webapps里边主要是放web应用的。比如我们开发的java网站等等都可以放到webapps里边进行部署发布。apache功能类似的是htdocs文件夹。区别就是上面的。apache只支持html,js等静态文件。jsp放入里边是不行的。

magento 选哪个 apache nginx

Apache即可

apache的基金会

Apache软件基金会(也就是Apache Software Foundation,),是专门为运作一个开源软件项目的 Apache 的团体提供支持的非盈利性组织,这个开源软件项目就是 Apache 项目。这个组织把自己作为有着相同目标的开发者与用户的团体,而不是简单的共享在一个服务器上的一组项目的组织团体。在它所支持的 Apache 项目与子项目中,所发行的软件产品都遵循 Apache许可证(Apache License)。Apache软件基金会(ASF)正式,它的。这个“Apache 组织”在1999年以前就已经存在很长时间了,这个组织的开发爱好者们聚集在一起,在美国伊利诺斯大学超级计算机应用程序国家中心(National Center for Supercomputing Applications,简称为NCSA)开发的 NCSA HTTPd 服务器的基础上开发与维护了一个叫 Apache 的 HTTP服务器。最初 NCSA HTTPd 服务器是由 Rob McCool 开发出来的,但是它的最初开发者们逐渐对这个软件失去了兴趣,并转移到了其他地方,造成了没有人来对这个服务器软件提供更多的技术支持。因为这个服务器的功能又如此强大,而代码可以自由下载修改与发布,当时这个服务器软件的一些爱好者与用户开始自发起来,互相交流并分发自己修正後的软件版本,并不断改善其功能。为了更好进行沟通,Brian Behlendorf 自己建立了一个邮件列表,把它作为这个群体(或者社区)交流技术、维护软件的一个媒介,把代码重写与维护的工作有效组织起来。这些开发者们逐渐地把他们这个群体称为“Apache 组织”,把这个经过不断修正并改善的服务器软件命名为 Apache 服务器(Apache Server)。这个命名是根据北美当地的一支印第安部落而来,这支部落以高超的军事素养和超人的忍耐力着称,19世纪后半期对侵占他们领土的入侵者进行了反抗。为了对这支印第安部落表示敬仰之意,取该部落名称(Apache)作为服务器名。但一提到这个命名,这里还有流传着一段有意思的故事。因为这个服务器是在 NCSA HTTPd 服务器的基础之上,通过众人努力,不断地修正、打补丁(Patchy)的产物,被戏称为“A Patchy Server”(一个补丁服务器)。在这里,因为“Patchy”与“Apache”是谐音,故最後正式命名为“Apache Server”。后来由于商业需求的不断扩大,以 Apache HTTP 服务器为中心,启动了更多的与 Apache 项目并行的项目,比如mod_ perl、PHP、Java Apache等等。随着时间的推移、形势的变化,Apache软件基金会的项目列表也不断更新变化中--不断的有新项目启动,项目的中止以及项目的拆分与合并。比如一开始,Jakarta 就是为了发展 JAVA 容器而启动的 Java Apache 项目,後来由于太阳公司(SUN)的建议,项目名称变为 Jakarta 。但当时该项目的管理者也没有想到 Jakarta 项目因为 JAVA 的火爆而发展到如今一个囊括了众多基于 JAVA 语言开源软件子项目的项目。以至后来,不得不把个别项目从 Jakarta 中独立出来,成为 Apache软件基金会的顶级项目,Struts 项目就是其中之一。最近,为了避免 SCO 与 UNIX 开源社区之间的发生纠纷降临在 Apache 软件基金会(ASF)身上。Apache软件基金会(ASF)里面开始采取一些措施,让众多的项目进行更多协调的、结构化管理,并保护自己的合法利益,避免一些潜在的合乎法律的侵犯(potential legal attacks)。由于Apache软件基金会在开源服务器技术上的卓越贡献,荣获了著名IT杂志SD Times颁发的2013 SD Times 100奖项,位于“极大影响力”分类第二位,仅次于亚马逊。也由于hadoop在大数据处理和大数据挖掘上的出色表现,ASF也荣获了“大数据和商业智能”的第二位。 主要成果:HTTP Server,Ant,DB,iBATIS,Jakarta,Logging,Maven,Struts,Tomcat,Tapestry等等。Apache有名的几个项目介绍HTTPServer这个在前面的段落介绍过了,Apache已经是他的代号了 Subversion已经正式由Apache接管 。ActiveMQ免费开源由java编写符合JMS1.1标准的消息中间件。另外,它也支持通过除java语言外的语言的使用Ant这个太出名了。标准的批处理工具。是一套基于java的程序打造工具Commons一些常用的工具类库,包括common-pool,dbcp,fileupload,Common-beans等。Excalibur它的主要产品是一个由java写成的,名字叫做Fortress(要塞) 的轻量级的可嵌入式反向控制容器。iBATIS并入的一个项目,是ORM的一个很流行的工具Geronimo是Apache软件基金会为了创造一个兼容j2ee的容器,而整理出来的一个新成果Jakarta许多Java子项目的集成,tomcat,ant等就是从这里孵化出去的。James是一套用java开发的邮件、新闻组、消息服务器。它使用的avalon组件框架。目前支持 SMTP, POP3 和 NNTP 很快也会支持 IMAPLogging基于java的可靠,快速,扩展性强的日志工具Maven是一套java开发的工程综合管理工具。它基于工程对象模型(POM)的理念Portals门户产品Struts一套通过servlets和jsp来搭建web应用的MVC框架Tomcat 用量最大的免费的Java服务器Hadoop 现今最为著名的大数据神器,包括分布式存储和计算框架。

如何查看Apache当前的MPM模式

常用的两种: prefork 一个非线程型的、预派生的MPM worker 线程型的MPM,实现了一个混合的多线程多处理MPM,允许一个子进程中包含多个线程。

apache-tomcat与jakarta-tomcat有什么区别?

apache是一个开源的组织名。后来制定了一个以apache命名的开源协议。jakarta是apache组织下的一套java解决方案的开源软件的名称,它包括了很多子项目。tomcat,ant,struts等等也是apache下的开源项目。同时也是jakarta的关联项目。官网:www.apache.org

Centos 下Apache(httpd) 安装过程

其实,网上这块的部署文章非常多 。随便搜索,都有 。 这篇文章,老徐帮大家挑选几个比较重点的过程 & 命令 。 1. 有些 linux 版本中已经预置了有Apache,并且已经是服务了,所有首先检查系统中是否已经存在httpd的服务 1)先检查 服务器 上是否已经启动了此服务 。 命令如下 ps -ef|grep httpd 2)查看linux系统服务中有没有httpd chkconfig --list | grep httpd 3)如果有服务存在,那么需要先关闭httpd服务自启动 命令 chkconfig httpd off 4)停止httpd服务 命令 service httpd stop 5)再次查看,是否有进程存在 命令 ps -ef|grep httpd 6)如果有进程存在,关闭进程 命令 kill -9 pid 1)先检查 安装包 的名字 命令 rpm -qa|grep httpd <pre style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; white-space: pre-wrap; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">[root@istester]~# rpm -qa|grep httpd httpd-2.2.15-69.el6.centos.x86_64 httpd-tools-2.2.15-69.el6.centos.x86_64</pre> 2)根据安装包名字删除包 rpm -e httpd-tools-2.2.15-69.el6.centos.x86_64 rpm -e httpd-2.2.15-69.el6.centos.x86_64 3)删除httpd.conf文件 <pre class="prettyprint" style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; white-space: pre-wrap; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">#先检查文件在哪 find / -name httpd.conf rm /xxx/xxx/httpd.conf</pre> 3. 准备事项已完成,剩下的就是常规安装了 。 注:我们通过yum的方式,在线安装,非常简单 。 1)检查是否存在httpd包 <pre style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; white-space: pre-wrap; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">[www@istester ~]$ yum list httpd Loaded plugins: security base | 3.7 kB 00:00 epel | 4.7 kB 00:00 epel/primary_db | 6.0 MB 00:00 extras | 3.4 kB 00:00 extras/primary_db | 28 kB 00:00 updates | 3.4 kB 00:00 updates/primary_db | 3.2 MB 00:00 Available Packages httpd.x86_64 2.2.15-69.el6.centos base</pre> 2、安装Apache yum install httpd <pre style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; white-space: pre-wrap; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">Total 20 MB/s | 932 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64 1/4 Updating : httpd-tools-2.2.15-69.el6.centos.x86_64 2/4 Installing : httpd-2.2.15-69.el6.centos.x86_64 3/4 Cleanup : httpd-tools-2.2.15-53.el6.centos.x86_64 4/4 Verifying : httpd-tools-2.2.15-69.el6.centos.x86_64 1/4 Verifying : httpd-2.2.15-69.el6.centos.x86_64 2/4 Verifying : apr-util-ldap-1.3.9-3.el6_0.1.x86_64 3/4 Verifying : httpd-tools-2.2.15-53.el6.centos.x86_64 4/4 Installed: httpd.x86_64 0:2.2.15-69.el6.centos Dependency Installed: apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 Dependency Updated: httpd-tools.x86_64 0:2.2.15-69.el6.centos Complete!</pre> 安装过程,不用理会,如果看到如上提示,说明安装成功了。 3、设置Apache服务的启动级别 chkconfig --levels 235 httpd on Apache是一个服务,所以,可以通过设置服务的启动级别来让它启动。 4、启动服务 两种方式, 1)如下 /etc/init.d/httpd start 2)如下 service httpd start 5、查看服务是否正常启动 两种方式, 1)查看服务状态 <pre style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; white-space: pre-wrap; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">[root@istester www]# service httpd status httpd (pid 10339) is running...</pre> 2)查看进程 <pre style="box-sizing: border-box; font-family: Monaco, Menlo, Consolas, "Courier New", monospace; font-size: 12px; white-space: pre-wrap; display: block; padding: 9.5px; margin: 0px 0px 10px; line-height: 1.38462; color: rgb(51, 51, 51); word-break: break-all; overflow-wrap: break-word; background-color: rgb(245, 245, 245); border: 1px solid rgb(204, 204, 204); border-radius: 4px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">[root@istester www]# ps -ef|grep httpd | grep -v grep root 10339 1 0 23:15 ? 00:00:00 /usr/sbin/httpd apache 10341 10339 0 23:15 ? 00:00:00 /usr/sbin/httpd apache 10342 10339 0 23:15 ? 00:00:00 /usr/sbin/httpd apache 10343 10339 0 23:15 ? 00:00:00 /usr/sbin/httpd apache 10344 10339 0 23:15 ? 00:00:00 /usr/sbin/httpd apache 10345 10339 0 23:15 ? 00:00:00 /usr/sbin/httpd apache 10346 10339 0 23:15 ? 00:00:00 /usr/sbin/httpd apache 10347 10339 0 23:15 ? 00:00:00 /usr/sbin/httpd apache 10348 10339 0 23:15 ? 00:00:00 /usr/sbin/httpd</pre> 补充, 1)停止服务 service httpd stop 2)重启服务 service httpd restart 6、安装之后的说明: 1)验证是否安装成功 现在打开 http://ip 地址,看看有没有Apache的默认页面出来了?如果有就对了。 2)安装目录说明 Apache默认将网站的根目录指向 /var/www/html 默认的主配置文件是 /etc/httpd/conf/httpd.conf 配置存储在的/etc/httpd/conf.d/目录 End 文 / IDO老徐

怎样确定电脑中有ApacheStructs软件?

搜索 ApacheStructs

求解!JAVA 使用Apache POI将PPTX转图片出错。见下图

关键代码就是: rtruns[l].setFontName("宋体"); import java.awt.Dimension;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException; import ...

apache2.4怎么屏蔽其他域名

恶意域名指向是指别有用意的人,不经服务器所有权人的授权同意,把域名非法解析指向有一定名气的网站服务器IP。 由于恶意域名一般都没有备案,严重的结果会导致被恶意指向的服务器网站被关闭,有的恶意域名被搜索引擎K掉或惩罚过,恶意指向后会导致正规网站在搜索引擎的排名下降或K掉。 今天在查看百度统计时,发现上游一个域名66la.com流向我们的wh.ohqly.com网站,经过调查,确认是个恶意域名指向,于是百度了一下,有很多解决办法,分析这些解决办法后,本人做了一个比较简单有效的屏蔽恶意域名指向办法。 原理是利用Apache的跳转功能,代码入下: # 非法绑定域名将301跳转 RewriteCond %{HTTP_HOST} !^.*ohqly.com$ RewriteRule ^(.*)$ /malicious.html 第一行代码是匹配非ohqly.com的域名(包括子域名),第二行是把非ohqly.com域名的恶意域名跳转到malicious.html。 再来说说malicious.html,malicious.html中利用js,取得恶意域名,并做一个法律通知声明,只要访问恶意域名,就会打开malicious.html,malicious.html内容如下图:malicious.html代码如下: <html xmlns="http://www.w3.org/1999/xhtml"><head><META http-equiv="Content-Type" content="text/html; charset=utf-8"><title>恶意解析的域名</title><script type="text/javascript">function init() {var _ey = document.getElementById("ey");var _href = location.href;// 取得恶意域名_href = _href.replace(/http:///, "").replace(//.+/, "");if (_href.indexOf("ohqly") == -1) { // 若是恶意域名,设置之_ey.innerHTML = _href;}}</script></head><body scroll="no" onLoad="init()"><center><h1 style="padding-top:20px;">通知</h1><p style="width:500px;text-align:left;font-size:20px;font-weight:bold; text-indent:40px;">域名<font color="red" id="ey"></font>恶意指向<font color="red">千里眼网</font>的服务器,千里眼网郑重通知行为人,请尽快解除该恶意指向。千里眼网保留提起诉讼并追究行为人侵权之权利!</p></center></body></html> 以上办法不仅简单,而且也表达了自己的法律诉求,恶意网站的访问人员一眼看出了这是个恶意网站指向。

请问什么是Module和Isapi?php在apache运行模式Apache module、cgi、Isapi有什么分别?

iis运行php有两种模式:isapi和fastcgi模式。apache运行php有三种模式:cgi、fastcgi和apache模块。============================================iis: php5.3以前的版本支持isapi和fastcgi模式,现在只支持fastcgi模式。apache:php依然支持fastcgi、cgi、apache模块三种模式。============================================iis如何配置支持上面两种模式:isapi模式配置方法:操作简单,网上搜搜。注意:php5.3以前的版本支持。php5.4和php5.5都不支持。fast-cgi模式配置方法:这个模式的配置,需要下载 fcgisetup_1.5_x86_rtw.msi这个软件,才能是iis支持fast-cgi.apache如何配置支持上面三种模式:apache模块模式:httpd.conf文件添加下面代码:LoadModule php5_module "c:/php/php5apache2.dll"fast-cgi模式:httpd.conf文件添加下面代码:Action application/x-httpd-php "C:/php/php-cgi.exe"注意:更改相应的路径。cgi模式:由于现在很少使用,不用过多了解。

安装完gerrit前一定要安装apache吗

1、安装ubuntu的时候可选包要选择上openSSH,如果没有选择的话,系统安装完成后手工安装openSSH服务;2、(挪至第7步)3、安装java 运行环境,大概需要100M的内容:1sudo apt-get install openjdk-6-jre-headless4、安装邮件服务:1postfixsudo apt-get install postfix注意,安装过程中会提示输入主机名,gemfield此处输入的是 civilnet.cn。5、安装git服务1sudo aptitude install git-core git-doc6、创建gerrit用户:123sudo adduser gerritsudo su gerritcd ~7、下载gerrit包,这次编辑时gerrit的版本是2.8.0(最新版本)8、安装gerrit:1java -jar gerrit-2.8.war init -d review_site9、安装过程中会出现交互式的提问,除非gemfield本文明确指定,否则都是默认值。10、配置完上面的步骤后,gerrit服务会自动启动。以后可以使用如下命令手工启动:/home/gerrit/review_site/bin/gerrit.sh start11、通过如下步骤设置gerrit服务开机自启动:123sudo ln -snf /home/gerrit/review_site/bin/gerrit.sh /etc/init.d/gerrit.shsduo ln -snf /etc/init.d/gerrit.sh /etc/rc2.d/S90gerritsduo ln -snf /etc/init.d/gerrit.sh /etc/rc3.d/S90gerrit服务自动启动脚本/etc/init.d/gerrit.sh需要通过/etc/default/gerritcodereview文件来提供一些配置。该文件的内容为:GERRIT_SITE=/home/gerrit/review_siteNO_START=0

Apache2.0的进程名是什么

答案:httpd。2002年,Apache2.0版本发布,这个历时5年多才完成的版本,几乎重写了整个架构,并完全剔除NCSA的代码,主要特点如下:1、从设计上加强了Apache的跨平台移植能力,将Apache运行在可移植层上。2、将原来的多处理能力转移到多路处理模块中,提高了服务器的性能和稳定性。3、模块功能增强,mod_ssl作为官方模块正式进入Apache源代码中,新增加的mod_auth_ldap模块使得Apache2.0可以使用LDAP数据库进行认证,全新的mod_negotiation模块可以解决多选择或不可接受的响应,优化了内容协商和MultiViews算法,代理模块全部重写,可以使用Apache2.0所提供的过滤功能结构优势。扩展资料:1995年,美国国家计算机安全协会的开发者创建了NCSZ全球网络服务软件,其最大的特点是HTTP守护进程,它比当时的CERN服务器更容易由源码来配置和创建,又由于当时其他服务器软件的缺乏,它很快便流行起来。但是后来,该服务器的核心开发人员几乎都离开了NCSA,一些使用者们自己成立了一个组织来管理他们编写的补丁,于是Apache Group应运而生。他们把该服务器软件称为Apache。Apache源于A patchy server的读音,意思是充满补丁的服务器。如今Apache慢慢地已经成为Internet上最流行的Web服务器软件了。Apache作为自由软件之一,像其他自由软件一样,他们都是由许许多多的自由开发人员投入了大量的时间和精力来实现并逐步完善的,所以我们有理由相信Apache的发展前景会更好。

详解 Apache SkyWalking 的跨进程传播协议

SkyWalking 跨进程传播协议是用于上下文的传播,本文介绍的版本是 3.0 ,也被称为为 sw8 协议。 Header应该是上下文传播的最低要求。 Header值中具体包含以下8个字段: 上面的说明太干了,我们来举一个具体的例子,可以更好的理解。 有两个服务,分别叫 onemore-a 和 onemore-b ,用户通过HTTP调用 onemore-a 的 /onemore-a/get ,然后 onemore-a 的 /onemore-a/get 又通过HTTP调用 onemore-b 的 /onemore-b/get ,流程图就是这样的: 那么,我们在 onemore-b 的 /onemore-b/get 的Header中就可以发现一个叫做 sw8 的key,其值为: 以 - 字符进行分割,可以得到: 扩展Header项是为高级特性设计的,它提供了部署在上游和下游服务中的探针之间的交互功能。 当前值包括的字段:

apache poi什么用

Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程式对Microsoft Office格式档案读和写的功能。 结构: HSSF - 提供读写Microsoft Excel格式档案的功能。 XSSF - 提供读写Microsoft Excel OOXML格式档案的功能。 HWPF - 提供读写Microsoft Word格式档案的功能。 HSLF - 提供读写Microsoft PowerPoint格式档案的功能。 HDGF - 提供读写Microsoft Visio格式档案的功能。 创建Excel 文档 示例1将演示如何利用Jakarta POI API 创建Excel 文档。 示例1程序如下: import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFCell; import java.io.FileOutputStream; public class CreateXL {public static String outputFile="D:\test.xls"; public static void main(String argv[]){ try{ // 创建新的Excel 工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); // 在Excel工作簿中建一工作表,其名为缺省值 // 如要新建一名为"效益指标"的工作表,其语句为: // HSSFSheet sheet = workbook.createSheet("效益指标"); HSSFSheet sheet = workbook.createSheet(); // 在索引0的位置创建行(最顶端的行) HSSFRow row = sheet.createRow((short)0); //在索引0的位置创建单元格(左上端) HSSFCell cell = row.createCell((short) 0); // 定义单元格为字符串类型 cell.setCellType(HSSFCell.CELL_TYPE_STRING); // 在单元格中输入一些内容 cell.setCellValue("增加值"); // 新建一输出文件流 FileOutputStream fOut = new FileOutputStream(outputFile); // 把相应的Excel 工作簿存盘 workbook.write(fOut); fOut.flush(); // 操作结束,关闭文件 fOut.close(); System.out.println("文件生成..."); }catch(Exception e) { System.out.println("已运行 xlCreate() : " + e ); } } } 读取Excel文档中的数据 示例2将演示如何读取Excel文档中的数据。假定在D盘JTest目录下有一个文件名为test1.xls的Excel文件。 示例2程序如下: import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFCell; import java.io.FileInputStream; public class ReadXL {public static String fileToBeRead="D:\test1.xls"; public static void main(String argv[]){ try{ // 创建对Excel工作簿文件的引用 HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(fileToBeRead)); // 创建对工作表的引用。 // 本例是按名引用(让我们假定那张表有着缺省名"Sheet1") HSSFSheet sheet = workbook.getSheet("Sheet1"); // 也可用getSheetAt(int index)按索引引用, // 在Excel文档中,第一张工作表的缺省索引是0, // 其语句为:HSSFSheet sheet = workbook.getSheetAt(0); // 读取左上端单元 HSSFRow row = sheet.getRow(0); HSSFCell cell = row.getCell((short)0); // 输出单元内容,cell.getStringCellValue()就是取所在单元的值 System.out.println("左上端单元是: " + cell.getStringCellValue()); }catch(Exception e) { System.out.println("已运行xlRead() : " + e ); } } } 设置单元格格式 在这里,我们将只介绍一些和格式设置有关的语句,我们假定workbook就是对一个工作簿的引用。在Java中,第一步要做的就是创建和设置字体和单元格的格式,然后再应用这些格式: 1、创建字体,设置其为红色、粗体: HSSFFont font = workbook.createFont(); font.setColor(HSSFFont.COLOR_RED); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); 2、创建格式 HSSFCellStyle cellStyle= workbook.createCellStyle(); cellStyle.setFont(font); 3、应用格式 HSSFCell cell = row.createCell((short) 0); cell.setCellStyle(cellStyle); cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellValue("标题 "); 处理WORD文档 import java.io.*; import org.textmining.text.extraction.WordExtractor; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFCell; public class TestPoi { public TestPoi() { } public static void main(String args[]) throws Exception { FileInputStream in = new FileInputStream ("D:\a.doc"); WordExtractor extractor = new WordExtractor(); String str = extractor.extractText(in); //System.out.println("the result length is"+str.length()); System.out.println(str); } }

xapp中apache启动后立即停止

安装xampp后apache无法启动的原因及解决方法Xampp的获得和安装都十分简单,你只要到以下网址:下载xampp即可,我安装的是windows版本的Installer安装包,只要根据它的安装提示一路安装下去就可以了,十分方便快捷。不过,安装目录最好选择C盘之外的其它磁盘,据某些网友的经验,在Windonws7或Vista中,如果选择C盘安装,由于权限原因,会出现创建一些文件失败的问题。如果你已经据有最高权限,可以直接装在C盘。一般在windows XP或windows 7中,刚安装完xampp时,apache服务器是启动不了的。这个原因有很多,下面我来一一细说。u2022没有安装VC9的环境要判断是否是这一问题十分简单,只要单独运行C:xamppapacheinhttpd.exe时(这个是我的安装路径),提示“系统无法执行指定的程序”(这个是用命令行运行后的提示),如果是直接双击httpd.exe,则会提示环境配置错误。解决办法:直接下载vcredist_x86.exe。以下是在php.net看到的提示信息:VC9 Versions are compiled with the Visual Studio 2008 compiler and have improvements in performance and stability. The VC9 versions require you to have the Microsoft 2008 C++ Runtime (x86) or the Microsoft 2008 C++ Runtime (x64) installed按照链接下载了Microsoft Visual C++ 2008 Redistributable Package (x86),就是那个vcredist_x86.exe,一个运行时环境,使用户能够在未安装 Visual C++ 2008 的计算机上运行使用 Visual C++ 开发的应用程序。装好后启动Apache,一切正常。u2022端口被其它程序占用有时,并不是安装完VC9环境就可以直接运行Apache,其中一个重要的原因,便是Apache服务器所使用的端口被其它程序占用了,经典代表:迅雷。解决办法:1.80端口冲突,解决方法:打开目录C:xamppapacheconf(我的安装目录为C:xampp)下的httpd.conf文件,将Listen 80和 ServerName localhost:80中的80改为8081或其它值(尽量不要使用0-1023端口,这个是系统保留端口),要保持一致。2.监听端口443冲突,解决方法:打开目录C:xamppapacheconfextra (我的安装目录为C:xampp)下的httpd-ssl.conf文件,将Listen 443这句注释掉:# Listen 443或将443改为4433或其它值(尽量不要使用0-1023)。3.Apache启动后又马上停止,一种情况是,Apache已经正常启动,只是Xampp的控制面板没有显示而已,你可以通过在浏览器中输入http://localhost:8081,如果能直接进入Apache服务器的控制页面就是没有问题的了。另一种情况,原因可能是由于安装了oracle10g,与其中的perl5lib变量发生了冲突,解决方法有3种:(1) 打开目录C:xamppapacheconf(我的安装目录为C:xampp)下的httpd.conf文件,将Include "conf/extra/httpd-perl.conf"注释掉:# Include "conf/extra/httpd-perl.conf"。(2) 打开目录C:xamppapacheconfextra (我的安装目录为C:xampp)下的httpd-perl.conf文件,找到LoadModule perl_module modules/mod_perl.so,在下面一行增加PerlSwitches –T,保存文件即可。(3) 修改环境变量:在环境变量path中增加C:xamppperllib; C:xamppperlsitelib;即可。前两种方法的任一种都能解决我遇到的apache启动后又马上停止的问题,第3种方法我遇到的是没显示,但已经运行,至于另一种情况可能对某些网友有用,所以也把它写了出来,以供参考。其它方法:下面的解决方法也是网友在实际中用到的,不过本人并不推荐。原因在于,可以更改服务器配置,就尽量不要动操作系统的环境和配置,要不然,以后其它软件出问题,你也不知道是不是这个系统设置惹的祸。当然,如果你对你的操作系统足够熟悉就另当别论。而现在我只是写出来,供大家参考,也许由于你的原因特殊,正好解决你的问题。1 关闭占用80端口的进程。在“运行”中输入cmd命令,打开dos窗口,输入命令:netstat –abn –>D:port.txt或命令netstat –ano|findstr 80命令,打到占用80端口的进程,然后打任务管理器窗口,关闭该进程。此方法治标不治笨,执行比较麻烦,不推荐使用。2 修改网络设置(1) 网上邻居——本地连接——属性——internet协议(TCP/IP)——属性——高级——wins标签——去掉“启用LMHOSTS查询(L)”前的勾。(2) 控制面板——Windows防火墙——“高级”标签——本地连接——设置——“服务”标签——勾选“安全web服务器(HTTPS)。

安装Xampp是否无需再另外安装apache + mysql + php

xapp插件启动后,如何mysql服务启动不起来,就是他的80端口被占用,可以去路径为:xamppapacheconfhttpd.conf下修改,把里面所有的80端口改成其他的,例如"8081"。apache服务启动不起来,是它的端口"443"被占用了,去路径为:xamppapacheconfextrahttp-ssl.conf中,修改,把所有的“443”端口,全部修改成你想要的就行,例如“4433”。80端口修改后,在浏览器中运行地址时:后面应该加入端口号,例如:htttp://www.baidu.com:8081/就行了。

安装XAMPP后运行好了apache和mysql,但是打不开localhost/xampp/index.php

你如果是本机测试的话,给你推荐个PHPNOW套件,比XAMPP简单些。

xampp中的apache为什么启动不起来

你安装xampp之前是不是装了别的web服务器软件?如果单独装了apache,或者装了wamp,那xampp的apache就启动不了,因为抢占了80端口。

xampp的apache怎么使用

安装和配置 XAMPP 包此部分将介绍如何下载、安装和配置 XAMPP 包。警告:不要使用 XAMPP 1.7.0。此版本中的 XDebug 出现重大问题。可以使用版本 1.7.1 或更高版本,其中已修复这些问题。注:从 XAMPP 1.7.2 开始,XAMPP 附带提供 PHP 5.3 而不是 PHP 5.2.x。适用于 PHP 的 NetBeans IDE 版本 6.7.x 不支持新的 PHP 5.3 功能。适用于 PHP 6.8 的 NetBeans IDE 目前提供开发版本,完全支持 PHP 5.3。另请注意,PHP 5.2.x 和 PHP 5.3 之间的 Xdebug 安装不同。下载 XAMPP 安装包。(XAMPP Lite 不包括 XDebug。)下载完成后,运行 .exe 文件。在 Microsoft Vista 上,“用户访问控制”功能会阻止 PHP 安装程序更新 Apache httpd 配置。在安装 XAMPP 时请禁用 UAC。有关详细信息,请参见 Microsoft 支持。您可以选择作为服务安装 Apache 服务器和 MySQL 数据库服务器。如果将 Apache 服务器和 MySQL 作为服务进行安装,则您将不必通过 XAMPP 控制面板来手动启动它们。请注意,您可以在 XAMPP 控制面板中选择安装或卸载这些服务。如果您使用的是自解压档案文件,请在解压缩该档案文件之后,运行 setup-xampp.bat 文件以配置该包的组件。(XAMPP 安装程序会自动运行此文件。)配置之后,打开 XAMPP 控制面板。(您可以通过运行 XAMPP_HOME/xampp-control.exe 文件或通过自动置于桌面上的 XAMPP 控制面板图标手动打开该控制面板。)在打开 XAMPP 控制面板时,请注意作为服务安装的模块是否已在运行。警告:在 Windows Vista 上,有时 xampp-control.exe 不会运行。这时您可以运行 xampp-start.exe。警告:如果通过 MySQL 的“管理”按钮启动 winmysqladmin.exe 文件,则该文件将无法正常运行。出现层叠错误消息时,只能通过手动终止 winmysqladmin 进程来阻止这些消息。您也无法从命令行启动 winmysqladmin.exe。请参见http://bugs.xampp.org/view.php?id=71。

关于xampp这是怎么回事,网页没法显示,apache,mysql不能启动

1、你安装xampp之前,机器上有没有安装过apache、mysql?2、如果您的机器上边apache不能正常启动,请运行f:xamppxamppapache_start.bat//根据你安装的实际路径来查看详细的错误信息3、如果您的机器上边mysql不能正常启动,请运行f:xamppxamppmysql_start.bat//根据你安装的实际路径来查看详细的错误信息4、如果您的机器已经安装了iis,那么apache会报错,443ssl端口会iis占用,请修改f:xamppxamppapacheconfextrahttpd-ssl.conf端口号解决例如:将所有的443都修改为533,这种错误对于80端口也一样可能存在,如果是80端口,请修改f:xamppxamppapacheconfhttpd.conf将所有的80修改为8081

XAMPP安装好了APACHE老是打不开怎么办

 XAMPP Apache 无法启动原因1(缺少VC运行库):  这个就是我遇到的问题原因,下载安装的XAMPP版本是xampp-win32-1.7.7-VC9,而现有的Windows XP系统又没有安装VC9运行库,所以无法继续运行相关服务,这个可以在Windows事件查看器里看到错误日志提示。  既然找到问题原因,解决就很容易了,到微软下载中心搜索下载安装一个Microsoft Visual C++ 2008 Redistributable安装包即可。  XAMPP Apache 无法启动原因2(80端口被占用):  这是无法启动Apache服务的最常见原因了,像迅雷等P2P软件都会占用80端口,一般关闭这些软件后就可以启动了,如果你有需要也可以先启动XAMPP后再开这些软件。  如果无法确定是哪个程序占用了80端口,可以按下面方法找出:  1、打开“开始菜单”——点击“运行”——输入“CMD”打开命令行窗口,在里面输入“netstat -ano”命令并回车(不包含双引号,为防止输入错误,你可以直接复制用鼠标右键粘贴)。  2、运行命令后,会显示一系列端口的使用情况,查找到“0.0.0.0: 80”对应的PID进程标识符,记录下来,等下会用到。  3、鼠标右键点击桌面任务栏,打开Windows任务管理器,在“查看”——“选择列”中勾选“PID(进程标识符)”确定,即可看到每个程序使用的端口状态。结合上面所查到的80端口对应的PID进程标识符,就可确定是哪个程序占用了80端口。要关闭该程序建议先从该软件界面中关闭,如果找不到软件界面关闭,可鼠标右键直接结束该进程。  如果不想这么麻烦,也可以修改XAMPP不使用80端口使用其它,修改方法:打开XAMPP安装目录,修改apacheconfhttpd.conf文件,找到下面这两句,将端口修改为8081或其它即可。  Listen 80  ServerName localhost:80  XAMPP Apache 无法启动原因3(443端口被占用):  这个情况比较少见,会占用443端口的程序并不多。XAMPP启动除需要80端口外,还有一个加载SSL模块的443端口。如果你遇到443端口被占用的情况,有三种方法可以解决,分别是:  1、排查端口占用程序,关闭后再启动XAMPP(排查方法见上面)。  2、修改XAMPP SSL模块使用端口号,修改方法:打开XAMPP安装目录,修改apacheconfextrahttpd-ssl.conf文件,找到Listen 443这么一句,将443端口改成4433或其它。  3、如果你不使用Apache的https,也可以关闭掉SSL模块,方法如下:打开XAMPP安装目录,修改apacheconfhttpd.conf文件,找到Include "conf/extra/httpd-ssl.conf"这句,将其注释掉即可。  XAMPP Apache 无法启动原因4(关闭mod_perl模块):  如果Apache服务启动后又马上自动关闭,那么你可以试着运行XAMPP安装目录下的xampp_start.exe程序文件,将mod_perl模块关闭掉。

如何正确配置xampp,并正确设置apache的虚拟目录

是不是之前有删除过apache。apache没删除干净吧。你运行网站报什么错了,是什么界面。或者:在httpd.conf配置文件查找lsiten80,改成别的端口,可以改特殊一点,肯定不会用到的,比如3369等。果没有php相关配置行正确的好,那端口方面应该没有错误。建议现运行apachectl-t,看看配置文件的检查结果。

mac 重启后 XAMPP下的apache无法启动

mac重启后,XAMPP下的apache无法启动,如下图:原因:因为系统自带的apache抢先起来了 解决办法:运行sudo apachectl stop,再来xampp启动即可

XAMPP的功能是什么?它与Apache、MySQL和Filezilla有什么区别和联系?

X是指操作系统平台 AMPP是指 Apache+MySQL+PHP+PERL例如:wlampp(windows+Apache+MySQL+PHP+PERL)lmapp(Linux+Apache+MySQL+PHP+PERL)还有其他的操作系统下的环境如 mac所以就用“XAMPP” 就是指php的运行环境。

xampp怎么启动apache服务

1.需要关掉 6.mod_perl 模块# Perl settings#Include "conf/extra/httpd-perl.conf"于是我把httpd.conf里的Include "conf/extra/httpd-perl.conf"注释掉了2.查看端口占用:运行cmd -> netstat -ano, 将占用端口的程序关闭即可Xampp中Apache无法启动的解决方法简单的就是修改80和443端口。在启动XAMPP时,如果报80/443端口被占,可以修改此软件的端口打开xamppapacheconfhttpd.conf文件把80修改为8081;打开xamppapacheconfextrahttpd-ssl.conf文件把443修改为4433或者关闭SSL扩展3.最后重新安装windows 2003再次安装Xampp1.77.exe,并且也没发现有什么占用80端口的程序。以上三种方法经一天各种尝试之后(头都快大了!)仍旧不能正常运行Xampp1.77下的Apache,依然是同样的问题。最后找一个旧版本Xampp1.74压缩包版的,一次Apache就启动成功。感觉Xampp1.77还是不稳定,建议使用Xampp1.74 如果那位大侠有好的解决方法,希望能进行探讨。

xampp怎么启动apache服务

看一下是不是路径有问题,别用中文命名文件夹!

为什么XAMPP第一项Apache老是打不开

修复了修复了修复了修复了修复了修复了修复了修复了修复了修复了

xampp apache无法启动

你安装xampp之前是不是装了别的web服务器软件?如果单独装了apache,或者装了wamp,那xampp的apache就启动不了,因为抢占了80端口。

xampp开启apache失败怎么办

当大家使用xampp开启apache失败了,怎么解决呢?小编给大吉分享一个,希望可以帮到大家。首先当然要先启动的需要的软件的文件,进行双击xampp的软件。启动完成软件之后,进入到了xampp的界面中,进行点击start之后,可以在log日志中提示错误的信息,提示了端口是被占用了。那么就需要进行设置一下,进行点击confiig。弹出了下拉菜单中进行选择为apache(httpd.conf)的选项。进入到apache的的conf的配置的文件中当中的,进行把80端口改为其它没有的使用的端口。xampp|

《ApacheKylin权威指南》pdf下载在线阅读全文,求百度网盘云资源

《Apache Kylin权威指南》(Apache Kylin核心团队 著)电子书网盘下载免费在线阅读链接: https://pan.baidu.com/s/1ZFm-5Jd7rWv__C3AxDvWZw 提取码: 5pgq书名:Apache Kylin权威指南作者:Apache Kylin核心团队 著豆瓣评分:8.4出版社:机械工业出版社出版年份:2017-1页数:188内容简介:Apache Kylin是Hadoop大数据平台上的一个开源OLAP引擎,将大数据的查询速度和并发性能提升至原来的百倍以上,为超大规模数据集上的交互式大数据分析打开了大门。本书由Apache Kylin核心开发团队编写,系统地介绍了Apache Kylin安装、入门、可视化、模型调优、运维、二次开发等各个方面,是关于Apache Kylin的权威指南。第1章和第2章是基本概念和快速入门,为初学者打下坚实基础。第3章和第4章介绍增量构建和进阶的流式构建,应对数据的持续增长。第5章展示丰富的查询接口和其上的可视化能力。第6章则重点讲解了Cube模型和调优,它们是用好Apache Kylin,提升百倍性能的关键。第7章通过一系列有行业特点的具体案例分析,贯穿之前的所有概念,温故知新。第8章介绍可扩展架构和二次开发接口,适合开发者。第9章则介绍企业级功能、用户的认证和授权相关知识。第10章着重于安装和企业级部署、运维管理等内容。第11章和第12章分别说明如何参与和贡献到开源,以及Apache Kylin的未来。作者简介:本书由李扬为首的麒麟技术团队撰写。团队是Apache Kylin的主创团队。李扬是大数据架构师和工程师,专注大数据分析技术。他是Apache Kylin管理委员会成员,也是Kyligence Inc.(一家专业提供大数据商务智能服务的创业公司)创始人之一。李扬是Apache Kylin主创团队的架构师和技术负责人,在eBay期间从2014年开始开发Kylin项目。之前,李扬在IBM工作8年,在摩根士丹利工作2年。在IBM期间,他是“杰出技术贡献奖”的获奖者,曾担任InfoSphere BigInsights的技术负责人,负责Hadoop开源产品架构。在摩根士丹利期间,李扬担任副总裁,负责全球监管报表基础架构。

《ApacheKylin权威指南》pdf下载在线阅读,求百度网盘云资源

《Apache Kylin权威指南》(Apache Kylin核心团队 著)电子书网盘下载免费在线阅读链接:https://pan.baidu.com/s/1ELslz1LQ9DFOx_9DmPk9yw 提取码:qcui书名:Apache Kylin权威指南作者:Apache Kylin核心团队 著豆瓣评分:8.4出版社:机械工业出版社出版年份:2017-1页数:188内容简介:Apache Kylin是Hadoop大数据平台上的一个开源OLAP引擎,将大数据的查询速度和并发性能提升至原来的百倍以上,为超大规模数据集上的交互式大数据分析打开了大门。本书由Apache Kylin核心开发团队编写,系统地介绍了Apache Kylin安装、入门、可视化、模型调优、运维、二次开发等各个方面,是关于Apache Kylin的权威指南。第1章和第2章是基本概念和快速入门,为初学者打下坚实基础。第3章和第4章介绍增量构建和进阶的流式构建,应对数据的持续增长。第5章展示丰富的查询接口和其上的可视化能力。第6章则重点讲解了Cube模型和调优,它们是用好Apache Kylin,提升百倍性能的关键。第7章通过一系列有行业特点的具体案例分析,贯穿之前的所有概念,温故知新。第8章介绍可扩展架构和二次开发接口,适合开发者。第9章则介绍企业级功能、用户的认证和授权相关知识。第10章着重于安装和企业级部署、运维管理等内容。第11章和第12章分别说明如何参与和贡献到开源,以及Apache Kylin的未来。作者简介:本书由李扬为首的麒麟技术团队撰写。团队是Apache Kylin的主创团队。李扬是大数据架构师和工程师,专注大数据分析技术。他是Apache Kylin管理委员会成员,也是Kyligence Inc.(一家专业提供大数据商务智能服务的创业公司)创始人之一。李扬是Apache Kylin主创团队的架构师和技术负责人,在eBay期间从2014年开始开发Kylin项目。之前,李扬在IBM工作8年,在摩根士丹利工作2年。在IBM期间,他是“杰出技术贡献奖”的获奖者,曾担任InfoSphere BigInsights的技术负责人,负责Hadoop开源产品架构。在摩根士丹利期间,李扬担任副总裁,负责全球监管报表基础架构。

大数据分析界的“神兽”Apache Kylin到底有多厉害?

Apache Kylin,中文名麒(shen)麟(shou) 是Hadoop动物园的重要成员。Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。简而言之,Kylin的核心思想是计算在多维分析中可能使用的测量值的期望值,并保证计算结果。存储为多维数据集,以便在查询期间直接访问。将高复杂度的聚合操作、多表连接和其他操作转换为一个预期将是这个决策的结果的查询,使Kylin能够具有良好的快速查询和高并发性能力。Kylin从数据仓库中最常用的Hive中读取源数据,使用MapReduce作为由多维数据集构建的引擎,并将预期的结果存储在HBase中,公开Rest API/JDBC/ODBC的查询接口。因为Kylin支持标准ANSI SQL,它可以无缝地连接到常见的分析工具,如Tableau、Excel等。

GitHub,Apache 等开源软件被管制,开源之路在哪里?

说 Apache 许可证分发的软件也受美国出口管制。吓得我赶快去看了看 Apache 基金会的官网(幸好还没被墙)。这不看不知道,一看吓一跳。 Apache 基金会官网上有一段话(见原文链接)是这么说的: 这段话的大意是说,Apache 基金会是在美国注册的非盈利性组织,该组织开发的(软件)产品是通过公开的论坛在线协作完成的,并通过位于美国的中心服务器分发。因此,美国出口法律和法规适用于该基金会发布的产品… 听话要听音。这段说明可不仅仅针对的是 Apache 基金会发布的那些开源软件,引申而来,只要是在美国开发的,不管是 Apache 基金会的开源软件,还是自由软件基金会开发的 GCC,还是其他美国实体(比如 Google)开发的以 Apache 许可证、MIT 许可证、BSD 许可证,还是 GPL/LGPL 许可证分发的开源软件,都受美国出口法律法规管辖。 如此看来,美国人如果说华为连开源的 Android 也不能用,也是有法律依据的;尽管 Google 的 Android 开源版本使用 Apache 2.0 许可证发布,名义上任何人都可以免费使用。 我们在去年就知道Github被微软高价格以7,500,000,000美元收购,价值人民币48,750,000,000 ,这是多少个0,反正我没数清楚,你看清了吗? 才刚刚不到一年的时间,美国就开始像当初制裁中国的著名中兴集团一样,限制Github,因此还发布了Github的出口管制法律的约束。 再看看另外一个至关重要的开源软件 Linux 内核。Linux 内核是由来自世界各地的开发者一同协作完成的,知识产权所有者遍布全球。然而,Linux 基金会是在美国注册的,且 Linux 内核的分发服务器([ www.kernel.org] 、git 仓库服务器也都在美国的,所以美国人如果说 Linux 内核也受美国的出口法律法规管辖,你是挑不出来毛病的。 长期以来,我们国家几乎没有自己的基础软件产业,大多数所谓的国产操作系统,基本上就是整合了一些已有的开源软件,做了些必要的本地化而已。几乎没有任何从业者(包括我自己)意识到很多我们常用的那些开源软件也是受美国出口管制的。 不要觉得技术无国界。不积极积累、使用自己开发的基础软件,建立良性循环的基础软件发展生态,而继续使用美国为主开发和分发的开源软件,将把我们自己的高科技行业置于非常危险的境地。 这绝对不是危言耸听! 我想,此时,我们应该有"开源自立"的意识了吧!

安装Moodle时,PHP 打开apache 出现apache started [port 80],但打不开,我的电脑是win7系统。困惑啊!

可以用DOS命令 netstat /ano 试试,里面会例出本地已开启的端口,下载个process Explorer,这个小工具就可以看到PID,就知道哪个程序占用了80端口

为什么打开ie浏览器时显示apache tomcat/6.0.20 error report 没法进入到正常页面内

访问的页面暂时不可用,估计是tomcat服务器的问题

Apache Tomcat/7.0.68 - Error report

题主这是用什么报表的时候出现的报错啊,我用finereport的时候没有看到过这种类型的报错哎,不过貌似这个报错和服务器有关,也有可能是调用java的时候出现的问题。

在ie浏览器上登录某论坛账号密码正确出现Apache Tomcat/5.5.17-Error report 怎么办

他们论坛服务器出问题了,你过会再看看就好了,。。。

apache tomcat/6.0-error report是什么意思

tomcat出错大部分是路径错了 检查一下

如何解决Apache Tomcat/6.0.14-error report

报告的错误提示你贴上来,要不然怎么分析?

Apache Pulsar 跨地域复制详解

在 Geo-Replication 的设计支撑下,其一,我们可以比较容易的将服务分散到多个机房;其二,可以应对机房级别的故障,即在一个机房不可用的情况下,服务可以转接到其它的机房来继续对外提供服务。 Apache Pulsar 内置了多集群跨地域复制的功能,GEO-Repliaaction 是指把分散在不同物理地域的集群通过一定的配置方式让其能在集群之间进行数据的相互复制。 根据消息是否为异步读写的维度,跨地域复制可以分为如下两种方案: 下面我们讨论的是异步模式下,pulsar 的跨地域复制方案。 Pulsar 目前支持以下三种异步跨地域复制的方案: 从是否具有 configurationStoreServers (global zookeeper)的角度可以分为以下两种异步跨地域复制方案: 在整个跨地域复制中的一个核心理念在于,各个集群之间的数据是否能够互通,它们之间的交互主要依靠如下配置信息: Full-mesh 的形式允许数据在多个集群中共享,如下图: 对于多个集群之间的数据复制,我们均可以简化到两个集群之间的数据复制,基于这个理念,Geo-Replication 的原理如下图所示: 当前拥有两个集群,分别部署在北京和上海,当用户在北京的集群中使用 producer 发送数据时,首先会发送到北京机房的本地集群中(topic1)与此同时会去创建一个 replication cursor,用于专门复制数据的一个游标,通过这个cursor信息,你可以判断当前数据究竟复制到哪一个阶段。同时会去创建 replication producer,它会把数据从北京机房的 topic1 中读取数据,然后将数据写到上海机房的 topic1 中,上海机房的 broker 收到 producer 的请求之后,会写到本地相同的 topic 中来(topic1)。此时如果上海机房的用户开启 consumer 去消费数据的话,会接收到由北京机房 producer 生产的数据信息。反之亦然。 在这里需要说明如下问题: 上面我们提到,在配置了 global zookeeper 的情况下,是没有办法做数据的单向复制的,但是很多场景下,我们并不需要所有的集群之间的数据都是全连通的,这种场景下,我们就可以考虑使用单向复制的功能,需要强调的是,单向复制并不需要用户单独配置或指定 configurationStoreServers,配置时只需要将 configurationStoreServers 的值配置为本地集群的 zookeeper 地址(zookeeperServers)即可。 那么在不配置 global zookeeper 的情况下,如何去做跨集群复制的场景呢? 在上面我们提到,global zookeeper 的作用主要是用来存储多个集群的地址信息以及相应的namespace信息,并没有额外的元数据信息。所以在单向复制的场景下,你需要告诉其它机房的集群,你需要读到不同集群之间的 namespace 信息。 Failover 模式是单向复制的特例。 Failover 模式下,远端机房的集群只是用来做数据的备份,并不会有producer和consumer的存在,只有当当前处于 active 的集群宕机之后,才会把对应的 producer 和 consumer 切换到对应的 standby 集群中来继续消费。因为有 replication sub 的存在,所以会一同将订阅的状态也复制到备份机房。 目前 TDMD 已经基于 Apache Pulsar 应用在多种业务场景下,腾讯云TDMQ、计平、数平等多个团队也在一起共建Pulsar,对Pulsar感兴趣的小伙伴,欢迎加入下面的企业微信群一起交流。 [图片上传失败...(image-b7c1a1-1639451966467)]

Apache Pulsar 之企业级特性-多租户介绍

Apache Pulsar 最初诞生于雅虎,当时就是为了解决雅虎内部各个部门之间数据的协调,所以多租户特性显得至关重用,Pulsar 从诞生之日起就考虑到多租户这一特性,并在后续的实现过程中,将其不断的完善。 多租户这一特性,使得各个部门之间可以共享同一份数据,不用单独部署独立的系统来操作数据,很好的保证了各部门间数据一致性的问题,同时简化维护成本。 在介绍 Pulsar 多租户之前,先来看一下,正常一个系统要实现一个多租户需要做哪些事情: Pulsar 的多租户设计符合上述要求: 如下图所示:在一个 Pulsar 集群中,有三个概念:tenant(图中的 property 是之前的一种叫法,现在更习惯将其称为:tenant)、namespace、topic。这一点从 pulsar 中 topic 的命名组成也可以反应出来,例如: persistent://tenant/namespace/topic ,在 Pulsar 中,使用 tenant , namespace , topic-name 来唯一标识一个 topic。 tenant 代表的是租户名,它是一个资源的隔离单位,一个 tenant 下可以有多个 namespace。namespace 用来管理其下面所属的 topics,可以在 namespace 级别给 topic 设置相应的策略,比如 retention,backlog,ratelimit。一个 namespace 下又可以有多个 topic,他们的权限大小也是由上到下。Pulsar 的多租户通过 tenant、namespace、topic 形成多级管理系统。 开篇中提到,一个多租户系统需要在租户内提供系统级别的安全性,细分来讲,主要可以归类为一下两点: 在 Pulsar 中,多租户的安全性是通过身份验证和授权机制实现的。当 client 连接到 pulsar broker 时,broker 会使用身份验证插件来验证此客户端的身份,然后为其分配一个 string 类型的 role token 。role token 主要有如下作用: Pulsar 目前支持两种身份认证: 当然,用户也可以使用自己实现的身份认证程序。 当身份认证系统识别出客户端的 role token 之后,Pulsar broker 会使用授权系统来告诉客户端当前你可以执行哪些操作。 授权操作是在 tenant 级别进行配置的 ,这意味着在 Pulsar 集群中,允许用户根据不同的角色设定多个授权方案。 具体的权限操作是在 namespace 级别进行设置和管理的 ,例如:针对某一个 topic 是否具有 produce 或 consume 的权限归属于 namespace 这个级别来控制。换句话来说:在 tenant 级别 用户可以配置,什么样的 role 拥有对哪些 tenant 操作的权限,在 namespace 级别用户可以配置,针对某一 topic 当前 role 拥有什么样的权限,又回到了开头所介绍的,namespace 主要用来管理它所包含的 topics 的属性。 通过认证和授权系统巧妙的将租户与 topics 之间的执行权限等问题剥离开来,从而实现在租户内满足系统级别安全性的目的。 隔离性主要分为如下两种: 在 Pulsar 中,为了保证良好的扩展性,采用了存储和计算分离的架构设计,而存储(bookie)和计算 (broker)又是 produce 和 consume 所共享的资源,为了更好的实现隔离性,Pulsar 分别在存储和计算层做了不同的处理。 在存储方面,Apache Pulsar 使用了另外一个 Apache 的顶级项目 Bookkeeper 来作为其存储层。bookie 是 Bookkeeper 中的一个实例,一个 bookie 拥有多个 ledgers,每个 ledger 对应 Pulsar 中的一个 topic。Bookkeeper 本身的 I/O 分离 能够很好的为此做支撑。在单个 bookie 中,有一个 journal 日志文件(一般有一块专有的 journal 盘用于 journal 文件的写入)(类似于 LSMTree 中的 WAL 文件)会以 append 的形式将所有的写操作追加写入其内部。当写入完成之后,后台会有一个单独的线程来定期将 journal 文件的数据 flush 到磁盘中。这种 I/O 架构的设计实现了写入和读取操作之间的隔离,这样租户可以尽可能快的读取数据,同时写的吞吐量和延迟不会受到读取操作的影响。 除了 I/O 隔离外,不同的租户可以为不同的 namespace 配置不同的存储配额。如果租户内消息的大小达到了存储配额的限制,Pulsar 会采取相应的措施,例如:阻止消息生成,抛出异常或丢弃消息等。 为了满足 SLAs, Pulsar 在 Broker 层面也提供了多种机制。首先,在 Pulsar broker 中的一切操作都是异步进行的。每个 Broker 使用的内存资源是有上限的,当 Broker 达到配置的 CPU 或内存使用的阈值,Pulsar 会迅速的将流量转移到负载较小的 Broker 上来处理。在 Pulsar 中,有一个组件 load manager component 专门用来处理这种情况,这受益于 Pulsar 优秀的架构设计:计算与存储分离。这使得 Broker 近乎是无状态的,Broker 本身不存储任何数据,所以这种流量负载的转移成本很小而且速度很快,所以在这里并不需要担心流量负载时租户的特性是否会打折扣。 其次,在消息的生产和消费方面,Pulsar 都做了流量控制。在生产者方面 ,租户可以配置当前消息发送到 broker 和 bookies 的速度,避免当前用户发送消息的速度大于系统本身处理消息的能力。在消费者方面,租户可以配置当前 broker 可以给 consumer 发送多少未完成的消息。除此之外,Pulsar 还可以限制 Broker 以指定的速率向消费者投递消息,避免消费者的消费能力大于当前 Broker 的处理能力。 软隔离中提到的机制可以确保 Pulsar 在共享 Broker 和 Bookies 资源时能很好的保证隔离性。但是,在某些情况下,应用程序也需要物理资源隔离。Pulsar 允许将某些租户或名称空间与特定 Broker 进行隔离。这可确保这些租户或命名空间可以充分利用该特定 Broker 上的资源。 此选项还可用于测试不同的配置,调试并快速响应生产中发生的任何意外情况。例如,当前有一个用户可能在 Broker 触发可能影响其他租户性能的不良行为。在这种情况下,可以将该特定租户物理隔离出来,然后进行确认或者修复。 除了物理隔离 Broker 上的流量之外,你还可以隔离存储相关的业务。可以在 namespace 级别来配置相关的 placement policy 来达到目的。

在所有程序找不到Apache Tomcat 6.0Monitor Tomcat怎么办

你可以找到安装文目录bin文件下找到shartup.bat文件双击就可以打开打开文件了,要关闭的话,那就双击shutdown.bat 文件

apache-superset与superset区别

Apache Superset是一个现代的,工业级的Business Intelligence的Web应用。

apache开源项目有哪些

数据探查与可视化平台 Superset [推荐]分布式数据库 Apache HBase分布式系统基础架构 Hadoop [推荐]Java 全文搜索框架 Lucene [推荐]纯 Java 的 FTP 服务器 Apache FtpServer [推荐]Java连接池 DBCP [推荐]数据库查询工具包 DbUtils [推荐]JMS消息服务器 ActiveMQ [推荐]分布式发布订阅消息系统 Kafka [推荐]HBase 的 SQL 驱动 Apache Phoenix [推荐]

apache无法加载mod_jk.so模块

sdafsdf

xampp中Apache突然无法启动 (端口没有被占用!!)

亲 apache有两个可能被占用的端口哦,除了80端口 还有个监听端口443,你检查了吗?443端口被占用,apache无法监听443端口,该如何解决呢? 在/xampp/apache/conf/extra/httpd-ssl.conf 把Listen 443 修改为 444(可自定义)百度搜"vps教程" 或许能解决你遇到的问题,谢谢~~

Exception in thread "main" java.lang.AbstractMethodError: org.apache.tuscany

意思是说你的spring配置文件不对,里面有地方写的不对,仔细检查一下。

如何调整nginx和apache服务器的header限制的大小

可以通过2个参数来调整nginx的header上限。client_header_buffer_size 16k。arge_client_header_buffers 4 16k。LimitRequestLine 指令设置的是每一个header长度的上线。引用LimitRequestLine 指令。限制接受客户端发送的HTTP请求行的字节数。语法 LimitRequestLine bytes。默认值 LimitRequestLine 8190。作用域 server config。状态 核心(C)。模块 core。bytes将设置HTTP请求行的字节数限制。LimitRequestLine指令允许服务器管理员增加或减少客户端HTTP请求行允许大小的限制。LimitRequestFieldSize指令设置的是所有header总长度的上限值引用LimitRequestFieldSize 指令语法 LimitRequestFieldsize bytes默认值 LimitRequestFieldsize 8190作用域 server config状态 核心(C)模块 corebytes指定了HTTP请求头允许的字节大小。LimitRequestFieldSize指令允许服务器管理员增加或减少HTTP请求头域大小的限制。

如何调整nginx和apache服务器的header限制的大小

现在主流的apache和nginx服务器他们都可以自由设置header的头信息上限大小。我们通过配置文件修改来达到目的。nginx默认的header长度上限是4k,如果超过了这个值如果header头信息请求超过了,nginx会直接返回400错误可以通过以下2个参数来调整nginx的header上限client_header_buffer_size 16k;large_client_header_buffers 4 16k;看起来是,nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取引用client_header_buffer_size syntax: client_header_buffer_size size default: 1k context: http, server Directive sets the headerbuffer size for the request header from client. For the overwhelming majority of requests it is completely sufficient a buffer size of 1K. However if a big cookie is in the request-header or the request has come from a wap-client the header can not be placed in 1K, therefore, the request-header or a line of request-header is not located completely in this buffer nginx allocate a bigger buffer, the size of the bigger buffer can be set with the instruction large_client_header_buffers.引用large_client_header_buffers syntax: large_client_header_buffers number size default: large_client_header_buffers 4 4k/8k context: http, server Directive assigns the maximum number and size of buffers for large headers to read from client request. The request line can not be bigger than the size of one buffer, if the client send a bigger header nginx returns error "Request URI too large" (414). The longest header line of request also must be not more than the size of one buffer, otherwise the client get the error "Bad reques t" (400). Buffers are separated only as needed. By default the size of one buffer is equal to the size of page, depending on platform this either 4K or 8K, if at the end of working request connection converts to state keep-alive, then these buffers are freed. 对于apache2来说,它默认值是8k可以调整以下2个参数LimitRequestLine 16kLimitRequestFieldSize 16kLimitRequestLine 指令设置的是每一个header长度的上线引用LimitRequestLine 指令说明 限制接受客户端发送的HTTP请求行的字节数 语法 LimitRequestLine bytes 默认值 LimitRequestLine 8190 作用域 server config 状态 核心(C) 模块 core bytes将设置HTTP请求行的字节数限制。LimitRequestLine指令允许服务器管理员增加或减少客户端HTTP请求行允许大小的限制。因为请求行包括HTTP方法、URI、协议版本,所以LimitRequestLine指令会限制请求URI的长度。服务器会需要这个值足够大以装载它所有的资源名,包括可能在GET请求中所传递的查询部分的所有信息。这个指令给了服务器管理员更大的可控性以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。LimitRequestFieldSize指令设置的是所有header总长度的上限值引用LimitRequestFieldSize 指令说明 限制客户端发送的请求头的字节数 语法 LimitRequestFieldsize bytes 默认值 LimitRequestFieldsize 8190 作用域 server config 状态 核心(C) 模块 core bytes指定了HTTP请求头允许的字节大小。LimitRequestFieldSize指令允许服务器管理员增加或减少HTTP请求头域大小的限制。一般来说,服务器需要此值足够大,以适应普通客户端的任何请求的头域大小。一个普通头域的大小对于不同的客户端来说是有很大差别的,一般与用户配置他们的浏览器以支持更多的内容协议密切相关。SPNEGO的认证头最大可能达到12392字节。这个指令给了服务器管理员更大的可控性以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。注:该设置在apache root/manual/mod/core.xml中进行设置

如何调整nginx和apache服务器的header限制的大小

现在主流的apache和nginx服务器他们都可以自由设置header的头信息上限大小。我们通过配置文件修改来达到目的。nginx默认的header长度上限是4k,如果超过了这个值如果header头信息请求超过了,nginx会直接返回400错误可以通过以下2个参数来调整nginx的header上限client_header_buffer_size 16k;large_client_header_buffers 4 16k;看起来是,nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取引用client_header_buffer_size syntax: client_header_buffer_size size default: 1k context: http, server Directive sets the headerbuffer size for the request header from client. For the overwhelming majority of requests it is completely sufficient a buffer size of 1K. However if a big cookie is in the request-header or the request has come from a wap-client the header can not be placed in 1K, therefore, the request-header or a line of request-header is not located completely in this buffer nginx allocate a bigger buffer, the size of the bigger buffer can be set with the instruction large_client_header_buffers.引用large_client_header_buffers syntax: large_client_header_buffers number size default: large_client_header_buffers 4 4k/8k context: http, server Directive assigns the maximum number and size of buffers for large headers to read from client request. The request line can not be bigger than the size of one buffer, if the client send a bigger header nginx returns error "Request URI too large" (414). The longest header line of request also must be not more than the size of one buffer, otherwise the client get the error "Bad request" (400). Buffers are separated only as needed. By default the size of one buffer is equal to the size of page, depending on platform this either 4K or 8K, if at the end of working request connection converts to state keep-alive, then these buffers are freed. 对于apache2来说,它默认值是8k可以调整以下2个参数LimitRequestLine 16kLimitRequestFieldSize 16kLimitRequestLine 指令设置的是每一个header长度的上线引用LimitRequestLine 指令说明 限制接受客户端发送的HTTP请求行的字节数 语法 LimitRequestLine bytes 默认值 LimitRequestLine 8190 作用域 server config 状态 核心(C) 模块 core bytes将设置HTTP请求行的字节数限制。LimitRequestLine指令允许服务器管理员增加或减少客户端HTTP请求行允许大小的限制。因为请求行包括HTTP方法、URI、协议版本,所以LimitRequestLine指令会限制请求URI的长度。服务器会需要这个值足够大以装载它所有的资源名,包括可能在GET请求中所传递的查询部分的所有信息。这个指令给了服务器管理员更大的可控性以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。LimitRequestFieldSize指令设置的是所有header总长度的上限值引用LimitRequestFieldSize 指令说明 限制客户端发送的请求头的字节数 语法 LimitRequestFieldsize bytes 默认值 LimitRequestFieldsize 8190 作用域 server config 状态 核心(C) 模块 core bytes指定了HTTP请求头允许的字节大小。LimitRequestFieldSize指令允许服务器管理员增加或减少HTTP请求头域大小的限制。一般来说,服务器需要此值足够大,以适应普通客户端的任何请求的头域大小。一个普通头域的大小对于不同的客户端来说是有很大差别的,一般与用户配置他们的浏览器以支持更多的内容协议密切相关。SPNEGO的认证头最大可能达到12392字节。这个指令给了服务器管理员更大的可控性以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。注:该设置在apache root/manual/mod/core.xml中进行设置

如何调整nginx和apache服务器的header限制的大小

现在主流的apache和nginx服务器他们都可以自由设置header的头信息上限大小。我们通过配置文件修改来达到目的。nginx默认的header长度上限是4k,如果超过了这个值如果header头信息请求超过了,nginx会直接返回400错误可以通过以下2个参数来调整nginx的header上限client_header_buffer_size 16k;large_client_header_buffers 4 16k;看起来是,nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取引用client_header_buffer_size syntax: client_header_buffer_size size default: 1k context: http, server Directive sets the headerbuffer size for the request header from client. For the overwhelming majority of requests it is completely sufficient a buffer size of 1K. However if a big cookie is in the request-header or the request has come from a wap-client the header can not be placed in 1K, therefore, the request-header or a line of request-header is not located completely in this buffer nginx allocate a bigger buffer, the size of the bigger buffer can be set with the instruction large_client_header_buffers.引用large_client_header_buffers syntax: large_client_header_buffers number size default: large_client_header_buffers 4 4k/8k context: http, server Directive assigns the maximum number and size of buffers for large headers to read from client request. The request line can not be bigger than the size of one buffer, if the client send a bigger header nginx returns error "Request URI too large" (414). The longest header line of request also must be not more than the size of one buffer, otherwise the client get the error "Bad request" (400). Buffers are separated only as needed. By default the size of one buffer is equal to the size of page, depending on platform this either 4K or 8K, if at the end of working request connection converts to state keep-alive, then these buffers are freed. 对于apache2来说,它默认值是8k可以调整以下2个参数LimitRequestLine 16kLimitRequestFieldSize 16kLimitRequestLine 指令设置的是每一个header长度的上线引用LimitRequestLine 指令说明 限制接受客户端发送的HTTP请求行的字节数 语法 LimitRequestLine bytes 默认值 LimitRequestLine 8190 作用域 server config 状态 核心(C) 模块 core bytes将设置HTTP请求行的字节数限制。LimitRequestLine指令允许服务器管理员增加或减少客户端HTTP请求行允许大小的限制。因为请求行包括HTTP方法、URI、协议版本,所以LimitRequestLine指令会限制请求URI的长度。服务器会需要这个值足够大以装载它所有的资源名,包括可能在GET请求中所传递的查询部分的所有信息。这个指令给了服务器管理员更大的可控性以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。LimitRequestFieldSize指令设置的是所有header总长度的上限值引用LimitRequestFieldSize 指令说明 限制客户端发送的请求头的字节数 语法 LimitRequestFieldsize bytes 默认值 LimitRequestFieldsize 8190 作用域 server config 状态 核心(C) 模块 core bytes指定了HTTP请求头允许的字节大小。LimitRequestFieldSize指令允许服务器管理员增加或减少HTTP请求头域大小的限制。一般来说,服务器需要此值足够大,以适应普通客户端的任何请求的头域大小。一个普通头域的大小对于不同的客户端来说是有很大差别的,一般与用户配置他们的浏览器以支持更多的内容协议密切相关。SPNEGO的认证头最大可能达到12392字节。这个指令给了服务器管理员更大的可控性以控制客户端不正常的请求行为。这有助于避免某些形式的拒绝服务攻击。注:该设置在apache root/manual/mod/core.xml中进行设置

如何用Apache POI操作Excel文件

完整例子如下,仅供参考:package com.soukenan.util.filter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; public class POITest { //使用POI创建excel工作簿 public static void createWorkBook() throws IOException { //创建excel工作簿 Workbook wb = new HSSFWorkbook(); //创建第一个sheet(页),命名为 new sheet Sheet sheet = wb.createSheet("new sheet"); //Row 行 //Cell 方格 // Row 和 Cell 都是从0开始计数的 // 创建一行,在页sheet上 Row row = sheet.createRow((short) 0); // 在row行上创建一个方格 Cell cell = row.createCell(0); //设置方格的显示 cell.setCellValue(1); // Or do it on one line. row.createCell(1).setCellValue(1.2); row.createCell(2).setCellValue("This is a string 速度反馈链接"); row.createCell(3).setCellValue(true); //创建一个文件 命名为workbook.xls FileOutputStream fileOut = new FileOutputStream("workbook.xls"); // 把上面创建的工作簿输出到文件中 wb.write(fileOut); //关闭输出流 fileOut.close(); } //使用POI读入excel工作簿文件 public static void readWorkBook() throws Exception { // poi读取excel //创建要读入的文件的输入流 InputStream inp = new FileInputStream("workbook.xls"); //根据上述创建的输入流 创建工作簿对象 Workbook wb = WorkbookFactory.create(inp); //得到第一页 sheet //页Sheet是从0开始索引的 Sheet sheet = wb.getSheetAt(0); //利用foreach循环 遍历sheet中的所有行 for (Row row : sheet) { //遍历row中的所有方格 for (Cell cell : row) { //输出方格中的内容,以空格间隔 System.out.print(cell.toString() + " "); } //每一个行输出之后换行 System.out.println(); } //关闭输入流 inp.close(); } public static void main(String[] args) throws Exception { // POITest.createWorkBook(); POITest.readWorkBook(); } }

apache spark是什么意思?

Apache Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。使用的语言是Scala,项目的core部分的代码只有63个Scala文件,非常短小精悍。Apache Spark的5大优势:1.更高的性能,因为数据被加载到集群主机的分布式内存中。数据可以被快速的转换迭代,并缓存用以后续的频繁访问需求。很多对Spark感兴趣的朋友可能也会听过这样一句话——在数据全部加载到内存的情况下,Spark可以比Hadoop快100倍,在内存不够存放所有数据的情况下快Hadoop 10倍。2.通过建立在Java、Scala、Python、SQL(应对交互式查询)的标准API以方便各行各业使用,同时还含有大量开箱即用的机器学习库。3.与现有Hadoop v1 (SIMR) 和2.x (YARN) 生态兼容,因此机构可以进行无缝迁移。4.方便下载和安装。方便的shell(REPL: Read-Eval-Print-Loop)可以对API进行交互式的学习。5.借助高等级的架构提高生产力,从而可以讲精力放到计算上。同时,Apache Spark由Scala实现,代码非常简洁。

apache spark是什么

Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。使用的语言是Scala,项目的core部分的代码只有63个Scala文件,非常短小精悍。Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。Spark 集群计算架构虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟。Spark 还引进了名为弹性分布式数据集(RDD) 的抽象。RDD 是分布在一组节点中的只读对象集合。这些集合是弹性的,如果数据集一部分丢失,则可以对它们进行重建。重建部分数据集的过程依赖于容错机制,该机制可以维护 "血统"(即允许基于数据衍生过程重建部分数据集的信息)。RDD 被表示为一个 Scala 对象,并且可以从文件中创建它;一个并行化的切片(遍布于节点之间);另一个 RDD 的转换形式;并且最终会彻底改变现有 RDD 的持久性,比如请求缓存在内存中。Spark 中的应用程序称为驱动程序,这些驱动程序可实现在单一节点上执行的操作或在一组节点上并行执行的操作。与 Hadoop 类似,Spark 支持单节点集群或多节点集群。对于多节点操作,Spark 依赖于 Mesos 集群管理器。Mesos 为分布式应用程序的资源共享和隔离提供了一个有效平台。该设置充许 Spark 与 Hadoop 共存于节点的一个共享池中。

apache spark是什么意思?

Spark是一个基于内存计算的开源的集群计算系统,目的是让数据分析更加快速。Spark非常小巧玲珑,由加州伯克利大学AMP实验室的Matei为主的小团队所开发。使用的语言是Scala,项目的core部分的代码只有63个Scala文件,非常短小精悍。Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为Mesos的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。Spark 集群计算架构虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟。Spark 还引进了名为弹性分布式数据集(RDD) 的抽象。RDD 是分布在一组节点中的只读对象集合。这些集合是弹性的,如果数据集一部分丢失,则可以对它们进行重建。重建部分数据集的过程依赖于容错机制,该机制可以维护 "血统"(即允许基于数据衍生过程重建部分数据集的信息)。RDD 被表示为一个 Scala 对象,并且可以从文件中创建它;一个并行化的切片(遍布于节点之间);另一个 RDD 的转换形式;并且最终会彻底改变现有 RDD 的持久性,比如请求缓存在内存中。Spark 中的应用程序称为驱动程序,这些驱动程序可实现在单一节点上执行的操作或在一组节点上并行执行的操作。与 Hadoop 类似,Spark 支持单节点集群或多节点集群。对于多节点操作,Spark 依赖于 Mesos 集群管理器。Mesos 为分布式应用程序的资源共享和隔离提供了一个有效平台。该设置充许 Spark 与 Hadoop 共存于节点的一个共享池中。

org.apache.spark.api.java.optional在哪个包下

apache官网找spark,然后看下载的文件夹,里面有这个包

Apache Phoenix(一)答疑

创建test.java 文件包含如下内容: 在命令行中编译和执行 Phoenix Thick驱动的JDBC的URL格式如下([]内的元素可选择的) 最简单的例子: 最复杂的例子: 请注意,URL中的每个可选元素都需要前面所有可选元素。例如,去指定Hbase的zk节点,那么zk的端口必须是指定的。 这些信息最初包含在 该页 。 Phoenix Thin驱动(与Phoenix查询服务一起使用)JDBC格式如下: 这里暴露了数个key供客户端使用。最经常使用的key为 url 和 serialization 。url key直接影响到需要查询的Phoenix查询服务器的地址。 最简单的URL例子: 非常复杂的URL例子: 这里记录着所有有关于Thin 客户端JDBC URL涉及到的支持项,可以参考 Apache Avatica documentation 和 Query Server Documentation 。 查看 相关例子 。 CSV数据可以批量导入通过psql的通用功能。一般插入的速度在20K-50K行数据每秒。(取决于一行数据有多大)。 创建表例子: 插入数据例子: 你可以创建Phoenix 表(table)和视图(view)通过 CREATE TABLE/CREATE VIEW 在已存在的HBase表上执行DLL语句。两种情况下都不会改变Hbase的元数据。对于 CREATE TABLE ,我们会创建任何不存在的元数据(table,column families)。我们会增加空键在每一行,所以查询的行为符合预期(不需要所有的列都进行扫描)。 需要注意的是字节的序列化必须匹配Phoenix的字节序列化。比如varchar、char和unsigned_ 类型,我们使用Hbase字节方法。char类型预期只有单字节字符和无符号类型预期值大于或者等于0。 对于有符号的类型(tinyint,smallint,integer 和bigint),phoenix会翻转第一个字节,这样负值会在正值之前排序。 因为Hbase排序row key按照ASCII正序排列,负值的第一位是1 而正值的第一位是0,那么负值大于正值,党我们不进行第一位翻转时。所以你存储整数时通过Hbase本地API接口和想通过Phoenix访问整数,确认你的数据类型是否是无符号类型。 我们复合row key可以将简单的值进行拼接在一起,在可变长类型上使用0字节作为分隔符。 如果你创建Hbase表如下: 如果你已经有了一张带有名称为"t1"和列簇为"f1"的Hbase表。那么请记住,在Hbase中你不用对可能的键值和row key结构进行建模。这是你在phoenix指定的表和列簇之外的信息。所以在phoenix,你不需要像这样创建view: 这个‘pk"列定义,你的row key是varchar类型(类似字符串),而"f1".val列定义你的Hbase表包含键值形式和列成员及列限定符为"f1".val还有他们的类型为varchar。 注意,你不需要使用双引号,当你创建你的hbase表包含所有的大写名称(Phoenix会标准化字符串,将字符串转大写)。比如: 你可以这样创建phoenix视图: 或者如果你创建了新的hbase表,不需要借助hbase shell,直接在phoenix操作。 注意:理想情况下4核CPU的16个region server,可以选择salt buckets在32-64最佳性能。 始于Phoenix 2.1版本,Phoenix开始支持索引在可变和不可变的数据中。注意,Phoenix在2.0.x中仅支持不可变数据的索引。索引写性能在不可变索引表中,稍微快一些于可变数据表,不可变数据表即是数据不支持更新。 例子: 更新行信息在test表中,Phoenix查询优化器会选择正确的索引去使用。你可以查看 explain plan 如果Phoenix使用这个索引表。你还可以在Phoenix查询中给出使用特定索引的 提示 。 除非查询中使用到的所有列都在二级索引中,否作不会使用二级索引(作为直接索引,或者覆盖索引)。构成数据表中的主键全部列都会自动包含在索引中。 在lastname不是索引或者覆盖所有一部分时,索引是没有被使用到。这点可以在 "explain plan" 中被证实。在创建索引时固定lastname字段存在索引中一部分,或者时覆盖索引的覆盖字段。 例子: Phoenix速度非常快,全表扫描100M的数据,通常情况下在20秒内完成(中等规模的集群上的小表)。如果查询包含到关键列的过滤器,则降低到毫秒级。你可以添加索引在导致性能等同于过滤键的列上,使用索引列作为键的一部分复制表。 为什么Phoenix即使做了全扫描,速度依然快: 检阅Anil Gupta的优秀 文章 。 Hadoop2的配置存在Phoenix的pom.xml中即可。 在默认情况下,Phoenix让Hbase管理时间戳,并只让你查看最后的版本数据。但是,Phoenix也给用户提供支持任意的时间戳。要做到这一点,使用连接属性"CurrentSCN",像这样: 上面的操作等同于Hbase API中的: 通过指定CurrentSCN,你可以告诉Phoenix。所有东西在这次连接中按该时间戳被完成。注意的是,这也适用于对连接执行的查询。举个例子,一个查询在myTable表的数据是不会看到刚插入的数据,因为它只看到创建连接时指定CurrentSCN属性之前的数据。这样提供了一种类似于快照的功能,或者是时间点查询。 请记住,创建个新的连接不是一个很昂贵的操作。相同的底层Hbase的连接用于全部连接的相同的集群,所以或多或少实例出一些对象。 RANGE SCAN :意味着只扫描表中一部分数据。如果使用主键约束中的一个或者多个组成主键的列会出现这种情况。没有过滤PK列的查询,例子: select * from test where pk2="x" and pk3="y"; 将会出现全扫描,然而在 select * from test where pk1="x" and pk2="y"; 中却是范围扫描(range scan)。注意,你可以添加二级索引在"pk2"和"pk3"列上,会触发范围扫描(range scan)在第一次查询中。 DEGENERATE SCAN :意味着一个查询不能返回行数据。如果我们决定在编译时完成。我们甚至不需要运行扫描。 FULL SCAN :意味着所有行都被扫描到。(如果你有一个where子句,可能会应用到一个过滤器) SKIP SCAN :将扫描一个表中的子集或者全部行。无论如何它将会根据过滤器跳过大分组的行。可以查看 博客 了解更多。如果主键上没有过滤器的列,那我们就不做SKIP SCAN,但是你可以强制SKIP SCAN通过使用/+ SKIP_SCAN/去命中。在一些条件下,也就是说当你的主键基数比较少时,它将会更有效超过FULL SCAN。 不,它不是必须的Phoenix jDBC连接池。 Phoenix的连接对象时不同大部分的JDBC连接,原因在于底层是Hbase的连接。Phoenix连接对象在设计时就是为了更精细便宜的代价去创建。如果Phoenix的连接被再利用,底层的HBase连接可能并不总是由前一个用户保持在健康状态。更好的方式是去创建一个新的Phoenix连接,保证避免潜在的问题。 实行Phoenix连接池可以简单的创建实例化委派,对外部而言,创建出新的Phoenix连接,实际是需要时从池中获取,对外部而言的关闭,实际是返回到池中去,可以参考 Phoenix-2388 。 空键值或者伪键值(_01列限定符)必须的,去保证列都有有效的在全部行中。 数据存储在Hbase是以键值对形式存在,意味着存储每个列值完整的行键。这还意味着,除非至少存储了一个列,否则根本不存储行键。 现在考虑到JDBC的行存在int类型的主键,和若干列可能是空(null)的。为了可以存储主键,键值必须去存储去展示这行数据的全部(现在的时间戳,考虑的时间戳版本)。你会注意到这些列是空列。这允许执行“SELECT * FROM TABLE”并接收所有行的记录,即使那些非pk列为空的记录也是如此。 即使对于某些(或所有)记录只有一个列为空,也会出现相同的问题。在Phoenix上的扫描将包括空列,以确保只包含主键的行(所有非键列都为空)将包含在扫描结果中。

大芒果那个80端口怎么修改啊 我也是那个单独启动Apache 启动不了.....很小白 讲的详细一点号码 麻烦了

找到你安装Apache的目录,在此apacheconf有个httpd.conf文件,用记事本打开,找到Listen 80字段,后面的80就是端口号,修改此次即可

如何搭建apache+tomcat集群

搭建apache+tomcat集群的方法:1、安装tomcat+apache+mysql。 2、修改tomcat的端口,即修改server.xml中的配置,并修改 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat_8084"> 3、修改httpd.conf,解注释Include conf.d/*.conf 4、在conf.d文件夹中加入xxx.conf文件,在该文件中添加如下配置: #LoadModule proxy_http_module modules/mod_proxy_http.so ProxyRequests Off ProxyPass / balancer://chinatrial-cluster/ stickysession=JSESSIONID nofailover=Off ProxyPassReverse / http://127.0.0.1:8084/ ProxyPassReverse / http://127.0.0.1:8184/ #ProxyPassReverse / http://127.0.0.1:8380/ <Proxy balancer://chinatrial-cluster> BalancerMember http://127.0.0.1:8084/ max=800 loadfactor=10 route=tomcat_8084 BalancerMember http://127.0.0.1:8184/ max=800 loadfactor=10 route=tomcat_8184 # BalancerMember http://127.0.0.1:8380/ max=800 loadfactor=10 route=chinatrial_8080 </Proxy> 其中route后面的值是和tomcat的server.xml中的<Engine>中的jvmRoute相对应 5、实现session共享 在数据库中建session共享表: CREATE DATABASE `session` USE `session`; DROP TABLE IF EXISTS `session`.`tomcat_sessions`; CREATE TABLE `session`.`tomcat_sessions` ( `session_id` varchar(100) NOT NULL, `valid_session` char(1) NOT NULL, `max_inactive` int(11) NOT NULL, `last_access` bigint(20) NOT NULL, `app_context` varchar(255) default NULL, `session_data` mediumblob, PRIMARY KEY (`session_id`), KEY `kapp_context` (`app_context`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 6、在项目的context.xml中进行Manager的配置: <Manager className="org.apache.catalina.session.PersistentManager" debug="99" saveOnRestart="true" maxActiveSessions="-1" minIdleSwap="30" maxIdleSwap="600" maxIdleBackup="0"> <Store className="org.apache.catalina.session.JDBCStore" driverName="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://172.16.100.229/session?user=root&password=nazca123&useUnicode=true&characterEncodeing=utf-8" sessionTable="tomcat_sessions" sessionIdCol="session_id" sessionDataCol="session_data" sessionValidCol="valid_session" sessionMaxInactiveCol="max_inactive" sessionLastAccessedCol="last_access" sessionAppCol="app_context" checkInterval="60" debug="0" /> </Manager>

linux下apache+tomcat集群详细配置

环境:操作系统均为:CentOS 5.1 Apache2.X服务器一台:IP地址192.168.232.4;安装路径/usr/local/apache; Tomcat6服务器一台:IP地址192.168.232.5;安装路径/usr/local/tomcat; Tomcat6服务器一台:IP地址192.168.232.6;安装路径/usr/local/tomcat; 配置:Apache安装:#./configure --prefix=/usr/local/apache --enable-modules=so --enable-mods-shared=all --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-proxy-ajp --enable-proxy-balancer --enable-rewrite注释:激活tomcat集群需要的 enable-proxy,enable-proxy-http,enable-proxy-connect,enable-proxy-ajp和enable-proxy-balancer,其中proxy-ajp和proxy-balancer必须依赖proxy,如果是自定义的编译除了以上几个必须的模块外,mod_status也要编译进去,切记。enable-proxy-ftp可以不编译。#make;make install 制作Apache启动项:#cp support/apachectl /etc/rc.d/init.d/httpd#vi /etc/rc.d/init.d/httpd添加以下内容:(包括#号)# Startup script for the Apache Web Server# chkconfig: 2345 85 15# description: Apache is a World Wide Web server .It is used to server# HTML files and CGI.# processname: httpd# pidfile: /usr/local/apache/log/httpd.pid# config: /usr/local/apache/conf/httpd.conf增加服务项#chkconfig --add httpd#chmod 755 /etc/rc.d/init.d/httpd#chkconfig --level 345 httpd on JDK安装:#chmod a+x jdk-6u4-linux-i586-rpm.bin#./jdk-6u4-linux-i586-rpm.bin JAVA环境变量设置:#vi /etc/profile在文件最后添加以下内容:JAVA_HOME=/usr/java/jdk1.6.0_04CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarPATH=$JAVA_HOME/bin:$PATHCATALINA_HOME=/usr/local/tomcatexport JAVA_HOME CLASSPATH PATH CATALINA_HOME 执行如下命令使环境变量生效:source /etc/profile测试配置是否成功:java –version Tomcat安装:#wget [url]http://apache.mirror.phpchina.com/tomcat/tomcat-6/v6.0.16/bin/apache-tomcat-6.0.16.tar.gz[/url]#tar zxvf apache-tomcat-6.0.16.tar.gz#mv apache-tomcat-6.0.16 /usr/local/tomcat Tomcat随机启动:#vi /etc/rc.local添加以下内容:/usr/local/tomcat/bin/startup.sh tomcat6配置文件server.xml:把<!-- You should set jvmRoute to support load-balancing via AJP ie :<Engine name="Standalone" defaultHost="localhost" jvmRoute="jvm1">--><Engine name="Catalina" defaultHost="localhost">改成 <!-- You should set jvmRoute to support load-balancing via AJP ie :--><Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcatX"><!-- <Engine name="Catalina" defaultHost="localhost">-->说明:第一台tomcat就把jvmRoute="tomcat1"第二台tomcat就把jvmRoute="tomcat2" 把<!--<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>-->去掉注释变为<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>***群集详细配置***<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8"> <Manager className="org.apache.catalina.ha.session.DeltaManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/> <Channel className="org.apache.catalina.tribes.group.GroupChannel"><Membership className="org.apache.catalina.tribes.membership.McastService"address="228.0.0.4"port="45564"frequency="500"dropTime="3000"/><Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"address="auto"port="4000"autoBind="100"selectorTimeout="5000"maxThreads="6"/> <Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"><Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/></Sender><Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/><Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/></Channel> <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"filter=""/><Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"tempDir="/tmp/war-temp/"deployDir="/tmp/war-deploy/"watchDir="/tmp/war-listen/"watchEnabled="false"/> <ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster> 配置应用的web.xml:在每个webapps应用中,修改配置文件web.xml文件 添加元素<distributable/> 在web.xml文件中<web-app>元素下增加以下内容: <!--此应用将与群集服务器复制Session--> <distributable/> 具体修改如下: 修改前: <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="[url]http://java.sun.com/xml/ns/javaee[/url]" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]" version="2.5"> </web-app> 修改后: <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="[url]http://java.sun.com/xml/ns/javaee[/url]" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee [url]http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd[/url]" version="2.5"> <!--此应用将与群集服务器复制Session--> <distributable/> </web-app>配置apache的ajp负载均衡功能:确保将以下Module的注释去掉LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_connect_module modules/mod_proxy_connect.so LoadModule proxy_ftp_module modules/mod_proxy_ftp.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule status_module modules/mod_status.so增加以下内容:# Proxypass ConfigInclude conf/extra/httpd-modproxy.conf建立文件httpd-modproxy.conf输入内容:<Location /server-status> SetHandler server-status Order Deny,Allow Deny from all Allow from all </Location> <Location /balancer-manager> SetHandler balancer-manager Order Deny,Allow Deny from all Allow from all </Location> ProxyRequests Off ProxyPass / balancer://tomcatcluster stickysession=jsessionid nofailover=On <Proxy balancer://tomcatcluster> BalancerMember [url]http://192.168.232.5:8080[/url] loadfactor=1 BalancerMember [url]http://192.168.232.6:8080[/url] loadfactor=2 </Proxy>注释:ProxyRequests Off 表示启用反向代理,必须开启; ProxyPass为代理转发的Url,即将所有访问/的请求转发到群集balancer://tomcatcluster,这里为/即将所有访问/的请求转发到群集balancer://tomcatcluster的/test目录; BalancerMember为群集的成员,即群集服务器1或2,负载均衡服务器会根据均衡规则来将请求转发给BalancerMember; 调试负载均衡集群系统:访问apache服务器的web服务:[url]http://192.168.232.4/balancer-manager[/url]如果显示负载均衡有关信息则说明成功了,接着可以访问[url]http://192.168.232.4/[/url]即访问到了tomcat的应用***必须先启动Tomcat服务再启动Apache服务!*** 参考文档:[url]http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html[/url] [url]http://tomcat.apache.org/tomcat-6.0-doc/balancer-howto.html[/url] [url]http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy.html[/url] [url]http://man.chinaunix.net/newsoft/ApacheMenual_CN_2.2new/mod/mod_proxy_balancer.html[/url]

Apache Commons 工具类介绍及使用方法简单说明

Apache Commons 工具类大家都有用过,但是可能缺乏系统学习,只用到了一小部分功能,无法发挥极限的价值,我用大白话说就是,一颗好白菜都让猪给拱了! 代码过多,手机观看效果不佳,建议收藏后在电脑上静悄悄地看。因内容 健康 ,可大胆转发,即使未满十八岁,在没有家长陪同下也一样可以观看! 提供了对于JavaBean进行各种操作, 比如对象,属性复制等等。XML与Java对象之间相互转换。提供了一些公共的编解码实现,比如Base64, Hex, MD5,Phonetic and URLs等等。对java.util的扩展封装,处理数据还是挺灵活的。 org.apache.commons.collections – Commons Collections自定义的一组公用的接口和工具类 org.apache.commons.collections.bag – 实现Bag接口的一组类 org.apache.commons.collections.bidimap – 实现BidiMap系列接口的一组类 org.apache.commons.collections.buffer – 实现Buffer接口的一组类 org.apache.commons.collections.collection – 实现java.util.Collection接口的一组类 org.apache.commons.collections.comparators – 实现java.util.Comparator接口的一组类 org.apache.commons.collections.functors – Commons Collections自定义的一组功能类 org.apache.commons.collections.iterators – 实现java.util.Iterator接口的一组类 org.apache.commons.collections.keyvalue – 实现集合和键/值映射相关的一组类 org.apache.commons.collections.list – 实现java.util.List接口的一组类 org.apache.commons.collections.map – 实现Map系列接口的一组类 org.apache.commons.collections.set – 实现Set系列接口的一组类commons compress中的打包、压缩类库。用来帮助处理配置文件的,支持很多种存储方式。 1. Properties files 2. XML documents 3. Property list files (.plist) 4. JNDI 5. JDBC Datasource 6. System properties 7. Applet parameters 8. Servlet parameters(Database Connection Pool)是一个依赖Jakarta commons-pool对象池机制的数据库连接池,Tomcat的数据源使用的就是DBCP。Apache组织提供的一个资源JDBC工具类库,它是对JDBC的简单封装,对传统操作数据库的类进行二次封装,可以把结果集转化成List。,同时也不影响程序的性能。 DbUtils类:启动类 ResultSetHandler接口:转换类型接口 MapListHandler类:实现类,把记录转化成List BeanListHandler类:实现类,把记录转化成List,使记录为JavaBean类型的对象 Qrery Runner类:执行SQL语句的类提供的一个开源的API,是对javamail的封装。基于HttpCore实 现的一个HTTP/1.1兼容的HTTP客户端,它提供了一系列可重用的客户端身份验证、HTTP状态保持、HTTP连接管理module。对java.io的扩展 操作文件非常方便。主要是一些公共的工具集合,比如对字符、数组的操作等等。提供的是一个Java 的日志接口,同时兼顾轻量级和不依赖于具体的日志实现工具。通用验证系统,该组件提供了客户端和服务器端的数据验证框架。 1.验证日期2.表达式验证3.配置文件中使用验证4.验证类

apache common collection 3.2.2修复方案

修复weblogic反序列化漏洞,修复方法为:替换原来的common-collections组件,建议:原来是3.2.d就替换为3.2.2,原来是4.x,就替换为4.4.1,如果出现不兼容,则替换一个版本试试。1.先停止weblogic 2.替换oraclemodules目录里com.bean.core.apache.commons.collections_x.x.x.jar3.启动weblogic

大数据分析界的“神兽”Apache Kylin有多牛

1.Apache Kylin是什么? 在现在的大数据时代,越来越多的企业开始使用Hadoop管理数据,但是现有的业务分析工具(如Tableau,Microstrategy等)往往存在很大的局限,如难以水平扩展、无法处理超大规模数据、缺少对Hadoop的支持;而利用Hadoop做数据分析依然存在诸多障碍,例如大多数分析师只习惯使用SQL,Hadoop难以实现快速交互式查询等等。神兽Apache Kylin就是为了解决这些问题而设计的。Apache Kylin,中文名麒(shen)麟(shou) 是Hadoop动物园的重要成员。Apache Kylin是一个开源的分布式分析引擎,最初由eBay开发贡献至开源社区。它提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持大规模数据,能够处理TB乃至PB级别的分析任务,能够在亚秒级查询巨大的Hive表,并支持高并发。Apache Kylin于2014年10月在github开源,并很快在2014年11月加入Apache孵化器,于2015年11月正式毕业成为Apache顶级项目,也成为首个完全由中国团队设计开发的Apache顶级项目。于2016年3月,Apache Kylin核心开发成员创建了Kyligence公司,力求更好地推动项目和社区的快速发展。Kyligence是一家专注于大数据分析领域创新的数据科技公司,提供基于Apache Kylin的企业级智能分析平台及产品,以及可靠、专业、源码级的商业化支持;并推出Apache Kylin开发者培训,颁发全球唯一的Apache Kylin开发者认证证书。2.Kylin的基本原理和架构下面开始聊一聊Kylin的基本原理和架构。简单来说,Kylin的核心思想是预计算,即对多维分析可能用到的度量进行预计算,将计算好的结果保存成Cube,供查询时直接访问。把高复杂度的聚合运算、多表连接等操作转换成对预计算结果的查询,这决定了Kylin能够拥有很好的快速查询和高并发能力。上图所示就是一个Cube的例子,假设我们有4个dimension,这个Cube中每个节点(称作Cuboid)都是这4个dimension的不同组合,每个组合定义了一组分析的dimension(如group by),measure的聚合结果就保存在这每个Cuboid上。查询时根据SQL找到对应的Cuboid,读取measure的值,即可返回。为了更好的适应大数据环境,Kylin从数据仓库中最常用的Hive中读取源数据,使用 MapReduce作为Cube构建的引擎,并把预计算结果保存在HBase中,对外暴露Rest API/JDBC/ODBC的查询接口。因为Kylin支持标准的ANSI SQL,所以可以和常用分析工具(如Tableau、Excel等)进行无缝对接。下面是Kylin的架构图。说到Cube的构建,Kylin提供了一个称作Layer Cubing的算法。简单来说,就是按照dimension数量从大到小的顺序,从Base Cuboid开始,依次基于上一层Cuboid的结果进行再聚合。每一层的计算都是一个单独的Map Reduce任务。如下图所示。MapReduce的计算结果最终保存到HBase中,HBase中每行记录的Rowkey由dimension组成,measure会保存在column family中。为了减小存储代价,这里会对dimension和measure进行编码。查询阶段,利用HBase列存储的特性就可以保证Kylin有良好的快速响应和高并发。有了这些预计算的结果,当收到用户的SQL请求,Kylin会对SQL做查询计划,并把本该进行的Join、Sum、Count Distinct等操作改写成Cube的查询操作。Kylin提供了一个原生的Web界面,在这里,用户可以方便的创建和设置Cube、管控Cube构建进度,并提供SQL查询和基本的结果可视化。根据公开数据显示,Kylin的查询性能不只是针对个别SQL,而是对上万种SQL 的平均表现,生产环境下90%ile查询能够在在3s内返回。在上个月举办的Apache KylinMeetup中,来自美团、京东、百度等互联网公司分享了他们的使用情况。例如,在京东云海的案例中,单个Cube最大有8个维度,最大数据条数4亿,最大存储空间800G,30个Cube共占存储空间4T左右。查询性能上,当QPS在50左右,所有查询平均在200ms以内,当QPS在200左右,平均响应时间在1s以内。北京移动也在meetup上展示了Kylin在电信运营商的应用案例,从数据上看,Kylin能够在比Hive/SparkSQL在更弱的硬件配置下获得更好的查询性能。 目前,有越来越多的国内外公司将Kylin作为大数据生产环境中的重要组件,如ebay、银联、百度、中国移动等。大家如果想了解更多社区的案例和动态,可以登录Apache Kylin官网或Kyligence博客进行查看。3.Kylin的最新特性Kylin的最新版本1.5.x引入了不少让人期待的新功能,可扩展架构将Kylin的三大依赖(数据源、Cube引擎、存储引擎)彻底解耦。Kylin将不再直接依赖于Hadoop/HBase/Hive,而是把Kylin作为一个可扩展的平台暴露抽象接口,具体的实现以插件的方式指定所用的数据源、引擎和存储。开发者和用户可以通过定制开发,将Kylin接入除Hadoop/HBase/Hive以外的大数据系统,比如用Kafka代替Hive作数据源,用Spark代替MapReduce做计算引擎,用Cassandra代替HBase做存储,都将变得更为简单。这也保证了Kylin可以随平台技术一起演进,紧跟技术潮流。在Kylin 1.5.x中还对HBase存储结构进行了调整,将大的Cuboid分片存储,将线性扫描改良为并行扫描。基于上万查询进行了测试对比结果显示,分片的存储结构能够极大提速原本较慢的查询5-10倍,但对原本较快的查询提速不明显,综合起来平均提速为2倍左右。除此之外,1.5.x还引入了Fast cubing算法,利用Mapper端计算先完成大部分聚合,再将聚合后的结果交给Reducer,从而降低对网络瓶颈的压力。对500多个Cube任务的实验显示,引入Fast cubing后,总体的Cube构建任务提速1.5倍。目前,社区正在着手准备Apache Kylin 1.5.2版本的发布,目前正处于Apache Mailing list投票阶段,预计将会在本周在Kylin官网发布正式下载。在本次的1.5.2版本中,Kylin带来了总计 36个缺陷修复、33个功能改进、6个新功能。一些主要的功能改进包括对HyperLogLog计算效率的提升、在Cube构建时对Convert data to hfile步骤的提速、UI上对功能提示的体验优化、支持hive view作为lookup表等等。另一个新消息是Kylin将支持MapR和CDH的Hadoop发行版,具体信息可见KYLIN-1515和KYLIN-1672。相应的测试版本是MapR5.1和CDH5.7。UI上提供了一个重要更新,即允许用户在Cube级别进行自定义配置,以覆盖kylin.properties中的全局配置。如在cube中定义kylin.hbase.region.count.max 可以设置该cube在hbase中region切分的最大数量。另一个重要的功能是Diagnosis。用户经常会遇到一些棘手的问题,例如Cube构建任务失败、SQL查询失败,或Cube构建时间过长、SQL查询时间过长等。但由于运维人员对Kylin系统了解不深,很难快速定位到root cause所在地。我们在mailing list里也经常看到很多用户求助,由于不能提供足够充分的信息,社区也很难给出一针见血的建议。当用户遇到查询、Cube/Model管理的问题,单击System页面的Diagnosis按钮,系统会自动抓取当前Project相关的信息并打包成zip文件下载到用户本地。这个包会包含相关的Metadata、日志、HBase配置等。当用户需要在mailing list求助,也可以附上这个包。
 1 2 3  下一页  尾页