很长一段时间没有关注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
相关推荐
SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part3 SSH + Lucene + 分页 + 排序 + 高亮 模拟简单新闻网站搜索引擎--NewsWithSearch.part2 SSH + Lucene + 分页 + 排序 + 高亮 ...
毕业设计-基于Hadoop+Spark的大数据金融信贷风险控系统源码.zip毕业设计-基于Hadoop+Spark的大数据金融信贷风险控系统源码.zip毕业设计-基于Hadoop+Spark的大数据金融信贷风险控系统源码.zip毕业设计-基于Hadoop+...
毕设基于Hadoop+Hive构建数据仓库使用django+echarts构建前端web网站对业务指标进行可视化呈现源码.zip毕设基于Hadoop+Hive构建数据仓库使用django+echarts构建前端web网站对业务指标进行可视化呈现源码.zip毕设基于...
毕业设计,采用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、Hive、HBase、Oozie、Kafka、Flume、Flink、Elasticsearch和Redash。这些组件协同工作,提供了数据存储、处理、调度、流...
1、基于Hadoop+Hive构建数据仓库,使用django+echarts构建前端web网站对业务指标进行可视化呈现项目源码+说明(毕设).zip 2、该资源包括项目的全部源码,下载可以直接使用! 3、本项目适合作为计算机、数学、电子...
《构建企业级网盘分布式系统:SpringBoot+Hadoop+Vue技术栈解析》 在当前数字化时代,企业级网盘分布式系统已经成为企业数据管理和共享的重要工具。本项目以"基于SpringBoot+Hadoop+Vue开发的企业级网盘分布式系统...
Hadoop+Zookeeper+Hbase安装配置使用.pdf
Hadoop+Hbase+Spark+Hive搭建指南 Hadoop是Apache开源的大数据处理框架,它提供了可靠的高效的数据存储和处理能力。Hbase是基于Hadoop的分布式NoSQL数据库,提供了高效的数据存储和检索能力。Spark是基于内存的数据...
Elasticsearch是一个基于Lucene的分布式搜索服务器,其设计目的是提供一个分布式的、可扩展的全文搜索引擎,同时也具备数据的聚合和统计分析能力。而Hadoop是一个由Apache软件基金会开发的开源框架,它允许使用简单...
毕业设计基于Hadoop+SpringCloud+Vue的企业级网盘系统设计与实现源码+论文+答辩PPT,个人经导师指导并认可通过的高分毕业设计项目,评审分98分。主要针对计算机相关专业的正在做大作业和毕业设计的学生和需要项目实战...
项目源码:基于Hadoop+Spark招聘推荐可视化系统 大数据项目 计算机毕业设计项目源码:基于Hadoop+Spark招聘推荐可视化系统 大数据项目 计算机毕业设计项目源码:基于Hadoop+Spark招聘推荐可视化系统 大数据项目 ...