很长一段时间没有关注hadoop,突然间有兴致,于是动手又研究一下
准备的基础如下:
下载hadoop-1.0.4,tomcat,lucene由于关于hadoop的基础资料也挺多的,所以这里只写一段关于hadoop+lucene+web小综合的demo设计思路, 希望对初学入门者有所启示,如下图:
本例子会引用最初hadoop提供的wordcount例子,具体的代码可以通过网上得到,然后运行.
workcount输入文件名称inputfile.txt 包含内容:
Hello World Bye World goole
workcount输出的文件名称part-00000 ,包含内容:
Bye 1
Hello 1
World 2
goole 1
假设:在生成part-00000 文件之后,马上调用lucene创建索引文件
创建索引文件的java代码如下:
// @author minn IndexWriter writer = new IndexWriter(PRE_PATH+ "index",new SimpleAnalyzer(),true); FileReader read = new FileReader(PRE_PATH+"part-00000"); BufferedReader br = new BufferedReader(read); String row; Document document =null; while((row = br.readLine())!=null){ String tmp[]=row.split("\\s+"); document=new Document(); document.add(new Field("name",tmp[0],Field.Store.YES,Field.Index.TOKENIZED)); document.add(new Field("count",tmp[1],Field.Store.YES,Field.Index.TOKENIZED)); writer.addDocument(document); } writer.optimize(); writer.close();
查找java代码:
/** * * @author minn * */ public static String searchWord(String word) throws Exception { Analyzer analyzer = new StandardAnalyzer(); String result = ""; IndexSearcher indexSearcher = null; indexSearcher = new IndexSearcher(PRE_PATH + "index"); QueryParser queryParser = new QueryParser("name", analyzer); Query query = null; query = queryParser.parse(word); if (null != query && null != indexSearcher) { Hits hits = indexSearcher.search(query); result = hits.doc(0).get("count"); } return result; }
servlet调用lucene查找:
package servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import lucene.SearchHadoopFile; /** * Servlet implementation class HadoopServlet * @author minn */ public class HadoopServlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public HadoopServlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doPost(request,response); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stubintl String result=""; PrintWriter out=response.getWriter(); try { result= SearchHadoopFile.searchWord(request.getParameter("word")); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } out.write(result); out.flush(); out.close(); } }
web页面:
写道
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hadoop lucene test</title>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function queryWord(){
var word=$('#searchWord_id').val();
$.ajax({
type: "POST",
url: "hServlet",
data: { word: word }
}).done(function( msg ) {
$('#count_id').text('结果:'+msg);
});
}
</script>
</head>
<body>
<div>关键字:Hello,World bye,google</div>
查找字段:<input id="searchWord_id" type="text"><input type="button" onclick="queryWord()" value="查找">
<div id="count_id"></div>
</body>
</html>
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>hadoop lucene test</title>
<script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
function queryWord(){
var word=$('#searchWord_id').val();
$.ajax({
type: "POST",
url: "hServlet",
data: { word: word }
}).done(function( msg ) {
$('#count_id').text('结果:'+msg);
});
}
</script>
</head>
<body>
<div>关键字:Hello,World bye,google</div>
查找字段:<input id="searchWord_id" type="text"><input type="button" onclick="queryWord()" value="查找">
<div id="count_id"></div>
</body>
</html>
效果界面如下:
新增对这一方案的部分实现:多语言版基础管理系统展示[es6版]-简单整合spring+lucene+hadoop
相关推荐
hadoop+lucene 包含和solr、solrcloud对比
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
Hadoop+HBase+Hive+lucene分布式搜索引擎分析系统
毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现 毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现 毕业...
毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现 1. Hadoop+Hive构建数据仓库 2. django+echarts网站开发 3. 数据清洗,数据模型构建 毕业设计,采用Hadoop+...
毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现.zip毕业设计,采用Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现.zip...
毕业设计-基于Hadoop+Spark的大数据金融信贷风险控系统源码.zip毕业设计-基于Hadoop+Spark的大数据金融信贷风险控系统源码.zip毕业设计-基于Hadoop+Spark的大数据金融信贷风险控系统源码.zip毕业设计-基于Hadoop+...
1、内容概要:Hadoop+Spark+Hive+HBase+Oozie+Kafka+Flume+Flink+Elasticsearch+Redash等大数据集群及组件搭建指南(详细搭建步骤+实践过程问题总结)。 2、适合人群:大数据运维、大数据相关技术及组件初学者。 3、...
关于hadoop++的权威论文,感兴趣的同学可以看看
基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统+本科毕业设计+源码+数据库 基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统+本科毕业设计+源码+数据库 基于SpringBoot+Hadoop+Vue开发的企业级网盘...
Centos+Hadoop+Hive+HBase
拥有强大的搜索和统计功能,Elasticsearch已经越来越流行。但是如果用它来做复杂的数据分析工具,它能打败hadoop或spark吗?
Hadoop、Spark、hive、mapReduce经典学习资料
Hadoop+Hbase搭建云存储总结
Hadoop+Hbase技术使用文档 1 目的 3 2 运行环境要求 4 2.1 支持的平台 4 2.2 硬件环境 4 2.3 软件环境 4 2.4 其他要求 5 3 安装jdk 5 3.1 查看本机的jdk版本 5 3.2 卸载低版本jdk 5 3.3 安装jdk 6 3.4 配置JDK1.6.0_...
1、基于Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现项目源码+说明(毕设).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子...
通过VirtualBox安装多台虚拟机,实现集群环境搭建。 优势:一台电脑即可。 应用场景:测试,学习。...内附百度网盘下载地址,有hadoop+zookeeper+spark+kafka等等·····需要的安装包和配置文件
Hadoop+ZooKeeper+HBase+hive(HQL)安装步骤
HADOOP+HBASE+HIVE整合工程和文档