`
guafei
  • 浏览: 326670 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

isearch里面加外卖字段和我的第一个mapperreducer程序

阅读更多
这个练手的项目要改动三个部分:
fullbuild(dump.sh 和store-ajoin-conf.xml)
store service(增加这些字段的搜索、排序、显示功能)
即时更新(除ditu_range外都需要即时更新)

fullbuild工程:首先改动dump.sh,主要是从数据库中dump下所需要字段的值,这里就涉及到shell的编写。我们从数据库中dump下来的数据字段以\0分割,行以\b分割。其次是改动store-ajoin-conf.xml配置文件,具体看:http://guafei.iteye.com/admin/blogs/939331
还有注意几个path,table表的属性path中指定的路径的数据是放在hadoop的hdfs文件系统中的,<join>中的path也是放在hadoop的hdfs文件系统中,而upd中的path属性则是放在服务器的硬盘上,也就放着处理好的xml文件。还有在执行shell脚本的时候,还要注意打通ssh(跟龙浅说)。
下面是几个常用的几个命令:
cat part-m-0* > 2.txt 
重定向part-m-0*文件到2.txt    :应用场景,当part-m-0开头的数据很多,一个一个看比较麻烦,所以把他们重定向到一个文件查看。
grep "minimum_amount=[0-9]" *    查找数据
./hadoop dfs -get /store/in/store/store3.db.hz2.koubei.net-huangye9-store9* /home/admin/guafei  从hadoop的hdfs文件系统中取数据,并且用到了匹配操作
./hadoop dfs -mkdir /store/in/takeout   在hadoop文件系统中建立目录
./hadoop dfs -ls /store/in/  在hadoop文件系统查看文件
/home/admin/hadoop/hadoop-0.20.2/bin/hadoop job -list :查看正在运行的job进程的命令
/home/admin/hadoop/hadoop-0.20.2/bin/hadoop job -kill job_201102281935_0036:杀死指定了job进程命令
./dump.sh takeout DEV  执行shell脚本
ssh user@remote.machine 用ssh登录远程服务器命令
exit  退出登录的服务器
ls |wc -l  这个命令是查看某个目录下文件的总数
/  用vi编辑时查询符号

store service工程:改动的地方有koubei-store-isearch-common工程中的Fields类,这个类中放的都是isearch的key。同时要改动IsearchStoreVO类,设置字段的默认值。接下去就是改动SearchStoreService类,主要是设置一些查询(这个类要作为接口的实现类提供出去)。还要改动common.context.xml配置文件,里面配置的key是isearch的字段,value是
storeVO类中的对应属性。

notify工程:改动的是StoreDBService类和store.context.xml,前者主要是getDBData方法,取db的数据。配置文件中的key是isearch的字段名,value是result里的key,具体见代码

mapper程序的需求是:
把city=4858和chk_user=台湾馆  的数据帅选出来,输出成  id\tname\tuser_id格式的数据
首先要找到数据的来源,city chk_user id name user_id 这些字段在什么地方有,我是从store主表中把数据dump下来,对这批数据作为输入进行处理。写好mapper程序之后,把这个工程打成jar包(用eclipse的export),然后用Linux的shell脚本跑这个程序。

打通ssh解释:
服务器A     isearch1.store.hadoop.hz2.koubei.net
服务器B     10.9.24.15      
服务器C     10.252.71.130                                                                                       第一:打通A与B ,A与C之间的SSH    单项打通A访问B与C
第二:B与C都是数据库服务器,我们执行的是dump命令,dump下来的数据放在/tmp/data目录下,而且开通mysql和admin的权限,能对这批数据进行读、写、执行操作
第三:在A和B上面都装上hadoop客户端

public void map(LongWritable key, Text value, Context context)方法传入的参数Text value 都是一行一行的传入。 mapper主要的作用是排序,把key相同的都排在一起,为reducer切割文件做准备。如果一个mapper程序的输入本来就拍好序,并且没有什么业务逻辑,那么就没有必要进行mapper。
public void reduce(Text key, Iterable<Text> texts, Context context) 方法主要处理的相同key的value数据。job.setInputFormatClass(IsearchDbInputFormat.class);这句话是对文件的分割,具体看IsearchDbInputFormat的readline方法(如何切割文件)
分享到:
评论

相关推荐

    仿仿美团外卖小程序.zip

    【标题】"仿仿美团外卖小程序.zip"是一个压缩包文件,其内容主要是针对美团外卖小程序的仿制项目。这个项目可能包含了一系列代码、设计资源和配置文件,旨在帮助开发者或设计师学习如何构建类似美团外卖的小程序应用...

    完美解决distinct中使用多个字段的方法

    完美解决distinct中使用多个字段的方法,完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法完美解决distinct中使用多个字段的方法

    isearch(pdf+java可执行源码)

    提供的是isearch的源代码,对于学习和研究软件开发的人来说,这是一个宝贵的资源。通过阅读和分析源码,我们可以了解iSearch的内部工作原理,包括如何读取PDF文件,如何构建索引,以及如何实现高效的搜索算法。这...

    论文研究-Isearch机制分析.pdf

    Isearch是由美国国家自然科学基金投资,网络信息发掘与检索中心研制开发的一个全文检索引擎,也是最早实现诸如XML文档等基于标记的检索的搜索引擎之一。与一般XML检索引擎的设计相比,Isearch由于结合采用了全文检索...

    ES之_source字段详解

    假设我们有一个索引,其中关闭了_source字段,并且包含2个字段store为true,1个字段store为false。 1. **输入数据**:向索引中添加两条记录。 2. **查询结果**:查询结果显示了store为true的字段值。由于_source...

    趁早(quickearly)B2C早餐外卖微信小程序

    配置三个节点的Nginx作为负载均衡器,第一个Nginx负责请求分发给后面两个Nginx,最后再把请求发送到不同的Tomcat容器 使用Redis Cluster作为早餐详细页面的第一级缓存 配置使用Ehcache作为页面的第二级缓存,并设置...

    SAP中根据字段查找对应表.rar_SAP

    这个功能不仅可以提供字段的描述和使用指南,还能指示出该字段可能关联的数据表。在帮助文档的“技术信息”或“数据库字段”部分,通常能找到字段对应的数据库表名。这是最直接且快速的方式。 2. **SE11表定义查看*...

    EntityFramework 多关键词联合搜索一个字段

    本文将深入探讨如何使用Entity Framework(EF)实现多关键词联合搜索一个字段的功能。Entity Framework作为.NET框架中主流的对象关系映射(ORM)工具,允许开发者以面向对象的方式操作数据库,而无需关注底层的SQL...

    一个Java外卖系统源码.zip

    这个压缩包包含了一个名为"reggie-master"的项目,它是一个基于Java的外卖平台的实现。本文将深入探讨其背后的开发原理、关键技术以及可能涉及的知识点。 首先,我们要明确Java作为一种跨平台的开发语言,具有丰富...

    趁早(quickearly)早餐外卖微信小程序-方便面的毕业设计.zip

    配置三个节点的Nginx作为负载均衡器,第一个Nginx负责请求分发给后面两个Nginx,最后再把请求发送到不同的Tomcat容器 使用Redis Cluster作为早餐详细页面的第一级缓存 配置使用Ehcache作为页面的第二级缓存,并设置...

    Odoo货币字段解读.doc

    Odoo 货币字段是 Odoo 中的一个重要组件,它提供了货币字段的自动汇率转换和价格计算功能。本文将详细解读 Odoo 货币字段的各个方面,包括其基本概念、使用方法和实践应用。 货币字段基本概念 在 Odoo 中,货币...

    多字段 模糊查询 不要分

    在IT行业中,模糊查询是一种非常实用的技术,尤其在大数据处理和信息检索系统中。模糊查询允许用户使用不完全准确或不完整的关键词来查找相关信息,它放宽了精确匹配的限制,提高了搜索的灵活性和用户友好性。本文将...

    基于python的elasticsearch和gurobi的外卖配送路径优化问题

    该资源是对一个饭店外卖配送问题的最优路径求解. 通过编写Python脚本, 实现了利用elasticsearch读取大型数据, 然后通过gurobi对模型进行求解, 最后将最优路径通过Folium生成HTML文件展示. 该资源包括模型说明(英文...

    基于微信小程序的西餐外卖系统的设计与实现(源码 + 演示视频)

    本项目旨在设计并实现一个基于微信小程序的西餐外卖系统,通过提供源码和演示视频,帮助开发者深入理解小程序开发流程和技术要点。 首先,我们要明确的是,微信小程序的核心技术栈主要包括WXML(Wechat Markup ...

    毕业设计早餐外卖微信小程序课程设计源代码

    配置三个节点的Nginx作为负载均衡器,第一个Nginx负责请求分发给后面两个Nginx,最后再把请求发送到不同的Tomcat容器 使用Redis Cluster作为早餐详细页面的第一级缓存 配置使用Ehcache作为页面的第二级缓存,并设置...

    插件 ISearch

    1、打开QQ安装目录的Bin文件夹(就是QQFun的IPShow组件所在的目录),然后建立一个“IPlugins”的文件夹(如果已有无需建立),将插件DLL及配置文件等放进去即可。 2、登陆QQ客户端后,打开一个群聊天窗口,先选择一...

    arcgis-elasticSearch-es-矢量数据导入插件-数据建模-mapping-indexsetting-字段映射

    arcgis elasticSearch es 矢量数据导入插件 数据建模 mapping indexsetting 字段映射 索引建模支持geoshape、shape,text索引支持keyword/ngram/edgeNgram/ikSmart,快速导入,兼容multipolygon,带洞,多面,使用时...

    Mybatis的Mapper方式整合elasticsearch的DSL调用,基于接口和代理生成bean注入的方式进行调用

    1. **创建Mapper接口**:定义一个包含Elasticsearch查询的Mapper接口,比如`EsSearchMapper`,其中的方法对应于特定的DSL查询。 2. **生成代理类**:使用CGlib,为`EsSearchMapper`接口创建一个代理类。这个代理类...

    springboot + mybatis(通用mapper) + druid多数据源

    【标题】"SpringBoot + MyBatis(通用Mapper) + Druid多数据源"是一个常见的Java后端开发架构,用于构建高效、稳定且可扩展的Web应用程序。在这个框架中,SpringBoot简化了Spring应用的初始化和配置,MyBatis作为持久...

    美团外卖架构升级与多端复用技术.pdf

    《美团外卖架构升级与多端复用技术》的文件详细阐述了美团外卖在面对业务快速发展和技术挑战时,如何通过架构升级和多端复用技术来优化系统,提高效率,降低成本,提升用户体验。以下是对其中主要知识点的深入解析:...

Global site tag (gtag.js) - Google Analytics