首页 文章 精选 留言 我的

精选列表

搜索[非自回归核心技术],共10000篇文章
优秀的个人博客,低调大师

阿里全资收购一家核心技术公司,中科院大牛带队加盟

阿里在人工智能和物联网领域又落一子。这次,瞄准的是智能语音交互。 今天,阿里宣布全资收购北京先声互联科技有限公司(以下简称“先声互联”)。同时,先声互联创始人、中科院声学所前研究员付强博士,正式入职阿里达摩院机器智能技术实验室,负责语音交互前端处理技术和方案的研发。随付强一同入职的,包括先声互联创始团队的多名资深专家,他们多为付强在中科院的原班人马,其中一位来自著名的杜比实验室。 一支能文能武的团队 先声互联是国内最早从事语音增强、远讲语音交互接口技术的团队,曾为阿里、百度、小米等多家公司提供远讲语音交互软硬件的解决方案。 创始人付强拥有二十余年语音信号处理研发经历,在美国OGI等语音研究机构从事过博士后工作,回国在中国科学院声学研究所担任研究员,曾牵头完成了国家自然科技基金国家、省部委几十项科研课题,在包括IEEE Trans.在内的国

优秀的个人博客,低调大师

承担双11万亿流量,阿里核心技术揭秘:12位大咖告诉你!

技术成就辉煌,今年的双11毫无悬念地再次刷新了全球记录——11秒交易额破亿,28秒破10亿,最终的交易额稳稳定格在了1682亿,不仅创造了极高的交易峰值和支付峰值,同时刷爆纪录的还有4200万次/秒的数据库处理峰值。在双11背后,还隐藏着众多黑科技! 12月13日-14日,云栖社区联合阿里巴巴技术协会,共同举办《2017阿里双11技术十二讲》在线直播峰会,独家分享双11背后技术最佳实践,欢迎预约直播! 直播的同时,云栖社区为此次在线峰会特设答疑互动窗口,欢迎大家带着问题点击进入: 13日直播专家答疑入口:https://yq.aliyun.com/roundtable/62278 14日直播专家答疑入口:https://yq.aliyun.com/roundtable/62279 下面是本次演讲议题及嘉宾详情介绍,供大家参考。 议题详情 阿里下一代技术架构:云化架构的演进之路——叔同 / 阿里巴巴资深技术专家 通过云化架构大幅降低日常IT运行成本,以及降低双11大促的IT运行成本50%,本演讲将解密阿里云化架构的秘密。 2017双11供应链的那些事儿——粤谦 / 阿里巴巴资深技术专家 天猫双11是一年一度的盛事。大量的用户会在双11期间来到阿里巴巴的平台上购物,会产生海量的订单和包裹。这些包裹大小不一,分布在全国各地,且数量庞大。如何快速、高效的处理这些订单,将消费者的包裹尽可能快的送达到消费者手中,成为双11期间一件非常重要而艰巨的工作,背后依赖于整个供应链的高效协同。本次分享将介绍天猫双11期间供应链的相关工作,包括前期的备货、爆款下沉等准备事项、流量调控、销量预测、补货调拨、以及仓、配履行等多个环节,阐述我们遇到的挑战和取得的成果。 双11中的智能化网络实践——后羿 / 阿里巴巴资深技术专家 阿里巴巴网络的规模和以及由于不同业务形态带来的复杂性,让整个网络治理面临前所未有的挑战(如双11的尖峰时刻)。 基于机器学习的智能化网络思路,让我们再次思考破解这些挑战的工程能力。 霸下-七层流量清洗——铁花 / 阿里巴巴资深技术专家 阿里巴巴集团网络层恶意流量清洗产品,能够将所有请求中夹杂的CC攻击、Web攻击、爬虫、机器刷单等恶意流量进行清洗,从而保障业务系统在超负载运行状态下的安全。 人工智能在商品搜索中的应用——三桐 / 阿里巴巴资深算法专家 搜索一直在用人工智能的前沿技术理解用户和商品,提供智能的搜索购物体验。通过在线深度学习、多智能体和知识图谱等技术,搜索在搜索意图理解、语义匹配、用户兴趣感知、搜索排序策略、多场景协同优化、智能交互等领域取得了重要的进展。搜索的深度用户感知网络能够根据用户行为足迹和上下文实时感知用户意图、预测用户兴趣偏好和生成个性化的排序策略,感知网络超过10B个参数,已经学习了几千亿次的用户行为,并且会保持不间断的增量学习,让模型越来越聪明;搜索利用多智能体协同学习技术,实现了搜索多个异构场景间的环境感知、通信和协同决策,实现联合收益最大化,而不是此消彼长;搜索的在线深度学习,能够在秒级完成从日志收集、模型训练再到模型同步部署,日均处理数千亿次的样本。 阿里智能运维平台助力研发应对双11挑战——如柏 / 阿里巴巴高级技术专家 随着互联网日新月异的发展,系统规模越来越大,伴随着云技术、虚拟化、微服务的广泛运用,运维越来越受到人们的重视。阿里巴巴作为全球最大的互联网公司之一,我们的系统分布全球,往往每分钟能产生TB级的运维数据,如何从这些海量数据里发现规律,指导运维并将其智能化,成为了下一代运维中最重要的环节之一。实现运维标准化,自动化, 智能化以提升系统稳定性并且能降低运维成本,我们做了非常多的探索,遇到不少挑战,沉淀了许多经验,并转化为技术的突破。本次演讲主要集中在系统介绍阿里智能运维平台的能力,并分享智能化在发布部署、文件分发、监控几个领域的探索。 未来已来:阿里新一代数据库技术在双11中的应用——张瑞 / 阿里巴巴研究员 阿里正在建设新一代数据库技术体系,包括新一代数据库X-DB、数据库容器化、存储计算分离、混合云以及智能诊断系统等技术。本主题将会介绍新技术在2017年双11中的应用与成果。 双11万亿流量下的分布式缓存Tair技术揭秘——宗岱 / 阿里巴巴资深技术专家 Tair做为双11的核心基础产品之一,在每秒数亿次访问的背后,提供着超低延时的响应。本次分享将探讨Tair在错综复杂的业务环境下,如何不断挑战高并发,效率成本和规模的边界,如何解决缓存系统的热点难题。 2017双11交易系统TMF2.0技术揭秘——毗卢 / 阿里巴巴资深技术专家 基于TMF2.0框架改造的交易平台,通过业务管理域与运行域分离、业务与业务的隔离架构,大幅度提高了业务在可扩展性、研发效率以及可维护性问题。同时,以更好的开放模式,让业务方同学能自助进行无侵入的需求开发。 争分夺秒:阿里实时大数据技术助战双11——大沙 / 阿里巴巴高级技术专家 揭秘阿里云流计算平台2.0如何在双11高效快速地实时处理海量数据,支持了媒体大屏等业务。同时通过在线机器学习给用户提供实时的个性化服务。 嘉宾介绍 大沙,阿里巴巴高级技术专家,负责实时计算Flink SQL,之前在美国脸书任职,Apache Flink committer 毗卢,阿里巴巴资深技术专家,主导设计了TMF2.0框架,并基于该框架完成交易平台架构升级改造,目前负责商品中心 后羿,阿里巴巴资深技术专家,参与8年双11大战,主导阿里"去IOE"战略落地,目前在推动阿里基础设施智能化 江鹤,阿里云资深技术专家,7次参与双11,负责阿里云网络类产品研发及阿里集团网络虚拟化、负载均衡等网关类产品研发 如柏,阿里巴巴高级技术专家,Apache顶级项目CXF初创成员之一,阿里集团基础架构事业群运维中台负责人、亲历者 叔同,阿里巴巴资深技术专家,8次参与双11作战,阿里高可用架构、双11稳定性负责人,阿里容器、调度、集群管理、运维技术负责人 三桐,阿里巴巴资深算法专家,淘宝商品搜索算法方向,主持多个搜索技术项目,致力于推动大规模机器学习、深度学习等在商品搜索的应用 省身,阿里云资深技术专家,2012年加入飞天盘古团队,主攻分布式存储方向,推动盘古2.0在双11的全面落地 铁花,阿里巴巴资深技术专家,淘宝最早SDL建立及实施人,淘宝第一代web安全解决方案主要开发,安全静态代码扫描平台创建者 粤谦,阿里巴巴资深技术专家,创建供应链算法团队,负责供应链平台事业部算法研发,通过综合使用多种算法保障供应链整体效率 宗岱,阿里巴巴资深技术专家,2008年加入淘宝,阿里分布式缓存、NoSQL数据库Tair和Tengine负责人 张瑞,阿里巴巴研究员,阿里集团数据库技术团队负责人,经历阿里数据库技术变革历程,连续6年作为数据库总负责人参与双11备战工作 《2017阿里双11技术十二讲》在线直播峰会,将在12月13日-14日在线直播,独家分享双11背后技术最佳实践,不可错过哟~

优秀的个人博客,低调大师

理解非结构化文档:将 Reducto 解析与 Elasticsearch 结合使用

作者:来自 ElasticAdel Wu Elasticsearch 与行业领先的 Gen AI 工具和提供商进行了原生集成。查看我们的网络研讨会,了解如何超越 RAG 基础知识,或构建可用于生产的应用程序Elastic Vector Database。 要为您的用例构建最佳搜索解决方案,请开始免费试用云,或立即在本地计算机上试用 Elastic。 解析是大多数RAG管道中的瓶颈。扫描的 PDF 和电子表格可能很混乱,输入不当会导致检索不完整、产生幻觉和脆弱的结果。近 80%** 的企业知识被困在这些格式中,传统的 OCR 使结构和意义扁平化。 应对这一挑战需要先进的解析技术,将传统的 OCR 和视觉语言模型 (VLM) 相结合来解释文档布局和内容,并生成结构化的、LLM 就绪的块。本文将探讨这种混合方法,并演示如何将 Reducto 的文档解析 API 与 Elasticsearch 集成以进行语义搜索。 解析为何仍是巨大挑战 传统的 OCR 和基础文本提取方法只能生成文档的 “扁平” 视图。这可能适用于复制粘贴,但对于搜索来说是灾难性的。 想象一下把一份财务报告或复杂表单扁平化成一串纯文本: 表格、标题、脚注和正文之间的关系被抹去 关于布局、重要性和层级的上下文线索丢失 基于向量或关键词的检索系统失去了有效的信号 Reducto没有沿用 “先 OCR 一切 → 再导入 Elastic” 的传统流程,而是设计了一种新方法:保留现实文档中的结构、上下文和语义。 Reducto 的 “视觉优先” 方法 Reducto 的 parsingAPI不再把文档仅仅当作文本,而是作为具有上下文意义的视觉对象来处理。 我们的解析流程结合了: 传统 OCR:字符级别的高精度文本提取 视觉语言模型(Vision-Language Models- VLMs ):对视觉上下文的深度理解,例如表格、多栏布局、嵌入式表单等 Reducto 的混合方法在基准测试中相比传统纯文本解析器带来了显著提升(例如,在RD-TableBench这类开源表格解析基准数据集上,一些实现表现提升超过 20 个百分点)。 通过同时分析文档的内容和视觉结构,Reducto 可生成: 精准的边界框(页面上某个元素的坐标,用于引用) 每个区块的分段布局类型(标题、表格、文本、图形等) 可自定义的 LLM 就绪内容块 最终解析结果完整保留了原始文档的丰富信息,适用于需要拆分与上下文嵌入的检索流程。 引入 Agentic OCR:多轮自我纠错 即使是最好的模型,也难免会出现解析错误。复杂的扫描件、手写笔记或多层嵌套表格可能会让一次性解析器失效。 为了解决这个问题,我们引入了Agentic OCR——一个多轮自我纠错框架。 可以把它看作是一个 “人类参与” 的过程 —— 只是无需人工。该方法大幅提升了真实环境下的稳健性,确保即使是复杂、从未见过的文档也能被清晰准确地解析。 示例:将 Reducto API 与 Elasticsearch 一起使用 解析不是最终目标,搜索才是。 Reducto 的客户经常将解析后的输出直接集成到 Elasticsearch 中,用于内部知识库、智能文档检索或检索增强生成(retrieval-augmented generation - RAG )系统。 以下是一个高级概览: 解析:使用Reducto 的 API将文档解析为结构化的 JSON,可自定义分块选项。 嵌入 + 索引:我们将在本例中使用ELSER,这是一种内置于 Elasticsearch 的稀疏检索模型,可以非常轻松地执行语义搜索,用于生成加权的 tokens。我们会将嵌入向量和分块元数据存储到 Elasticsearch 中以实现语义检索。 检索:给定一个查询,从索引中获取最相关的分块。 如果你有兴趣进一步了解稀疏向量以及为什么它们是语义搜索的优秀选择,请阅读此博客以了解更多信息。 🧾 1. 使用 Reducto(通过 API)进行解析和分块 要获取 Reducto 的 API 密钥,请前往reducto.ai并点击 “Contact us”。我们会安排一次简短的入职电话,了解你的使用场景,并为你设置一个试用密钥。 安装我们的Python SDK—— 与我们 API 交互的最简单方式。 pip install reductoai 然后,调用我们的解析函数。这里有一些与分块相关的配置需要注意: options.chunk_mode:选择你希望如何配置分块。例如,按页、按块、按变量(字符长度)等。 options.chunk_size:你希望分块的字符长度大约是多少。默认是 250-1500 个字符。 我们建议 RAG 用例保持 Reducto 默认的 “variable” 分块模式,因为它在捕获和分组最语义相关的数据方面最灵活。使用默认值时,调用中无需设置特定配置。 更多可配置项请参考 Reducto 的API 文档中 Parse 端点的说明。你也可以试用我们的UI 体验区,查看 “Configure Options” 下的所有选项。 from reducto import Reducto from getpass import getpass # Parse documents using Reducto SDK reducto_client = Reducto(api_key=getpass("REDUCTO_API_KEY")) upload = reducto_client.upload(file=Path("sample_report.pdf")) parsed = reducto_client.parse.run( document_url=upload, options={ # Optional configs would go here "chunking": { "chunk_mode": "variable", "chunk_size": 1000, } } ) # Parsed output print(f"Chunk count: {str(len(parsed.result.chunks))}") print(parsed.result.chunks) 使用我们提供的示例股票研究报告(链接在这里),解析后的输出大致如下: Chunk count: 32 ResultFullResultChunk(blocks=[ResultFullResultChunkBlock(bbox=BoundingBox(height=0.022095959595959596, left=0.08823529411764706, page=1, top=0.04671717171717172, width=0.22549019607843138, original_page=1), content='Goldman Stanley', type='Title', confidence='high', image_url=None), ...]) 📐 📦 2. 使用 ELSER 进行嵌入和索引 创建你的Elastic Cloud Serverless集群,或选择你喜欢的部署方式。 安装 Elasticsearch 的 Python 客户端。 pip install elasticsearch 初始化客户端并连接到你的 Elasticsearch 实例。 from elasticsearch import Elasticsearch, exceptions # Create Elasticsearch Client es_client = Elasticsearch( getpass("ELASTICSEARCH_ENDPOINT"), api_key=getpass("ELASTIC_API_KEY") ) print(es_client.info()) 创建用于生成嵌入向量的 ingest pipeline,使用 ELSER,并应用到我们的新索引中。 INDEX_NAME = "reducto_parsed_docs" # Drop index if exists es_client.indices.delete(index=INDEX_NAME, ignore_unavailable=True) # Create the ingest pipeline with the inference processor es_client.ingest.put_pipeline( id="ingest_elser", processors=[ { "inference": { "model_id": ".elser-2-elasticsearch", "input_output": { "input_field": "text", "output_field": "text_semantic" } } } ] ) print("Finished creating ingest pipeline") # Create mappings with sparse_vector for ELSER es_client.indices.create(index=INDEX_NAME, body={ "settings": {"index": {"default_pipeline": "ingest_elser"}}, "mappings": { "properties": { "text": { "type": "text" }, "text_semantic": { "type": "sparse_vector" } } } }) print("Finished creating index") 将每个 Reducto 分块索引到 Elasticsearch 中,Elastic Inference Service 会通过 ingest pipeline 生成嵌入向量。 # Index each chunk for i, chunk in enumerate(parsed.result.chunks): doc = { "text": chunk.embed } es_client.index(index=INDEX_NAME, id=f"chunk-{i}", document=doc) 🔍 3. 检索 使用推理服务执行稀疏向量查询,为查询生成嵌入向量。该查询由 ELSER 构建的稀疏向量组成。 # Use semantic text search response = es_client.search( index=INDEX_NAME, query={ "sparse_vector":{ "field": "text_semantic", "inference_id": ".elser-2-elasticsearch", "query": "What was the client revenue last year?" } } ) # Print results for hit in response["hits"]["hits"]: print(f"Score: {hit['_score']:.4f}") print(f"Text: {hit['_source']['text'][:300]}...\n") print(f"ELSER Embedding: {hit['_source']['text_semantic']}...\n") 当查询我们示例股票研究报告的分块时,结果可能如下,包含余弦相似度分数和对应的分块内容: Score: 13.0095 Text: # Operations (cont.) Figure 2 - Jazz Historical and Projected Revenue Mix by Product... ELSER Embedding: {'studio': 0.5506277, 'copyright': 0.29489025, 'def': 1.0905615, ... } Score: 12.0828 Text: # Jazz Pharmaceuticals (JAZZ) (cont.) ## Strong Q1 FY14 & Multiple Catalysts Ahead (cont.)... ELSER Embedding: {'##arm': 0.12544458, 'def': 1.4090042, '##e': 0.48080343, ... } . . . Elasticsearch 是领先的向量数据库,为 AI 应用提供大规模性能。它在处理庞大嵌入数据集方面尤为强大,得益于其分布式架构和将向量相似度与关键词相关性结合的混合搜索质量。Reducto 通过提供结构化、适合 LLM 的分块,补充了 Elastic 的能力,确保 Elasticsearch 强大的索引和搜索检索在最高质量的输入上运行,从而带来更优的 AI 代理性能和更准确的生成结果。 结论 企业多年来一直基于不完整或扁平化的文档数据构建搜索系统——现在,新技术正出现以挖掘这些信息的更深层见解。Reducto 的 API 适合各行各业的公司,尤其是那些需要高准确性的领域,如金融、医疗和法律。 Reducto 的以视觉为先、由代理驱动的解析管道提供了前进的方向: 保持上下文、结构和意义 向像 Elasticsearch 这样的向量存储和检索系统输入更丰富、更准确的数据 实现更可靠、无幻觉的 RAG 和搜索体验 你可以在 ReductoPlayground体验Reducto,或联系了解完整集成方案。如果你想构建此应用并操作代码,可以在这个notebook中找到说明。 有了 Reducto 和 Elasticsearch 向量数据库,企业知识变得可搜索且易理解。 来源:Possibilities and limitations, of unstructured data - Research World 原文:Making sense of unstructured documents: Using Reducto parsing with Elasticsearch - Elasticsearch Labs

优秀的个人博客,低调大师

OpenAI 将采取额外措施,停止非支持国家/地区的 API 使用

有开发者发文表示收到了来自 OpenAI 的“警告信”,称该公司将采取额外措施停止其不支持的地区的 API 使用。 “我们的数据显示,贵组织的 APl 流量来自 OpenAl 目前不支持的地区。从 7 月 9 日起,我们将采取更多措施,阻止来自不在我们支持的国家和地区列表中的地区的 APl 流量。要继续使用 OpenAl 的服务,您需要在受支持的地区访问服务。” OpenAl 在信中贴上了目前支持 API 服务的国家和地区清单的官网链接,可供查询。 目前,OpenAI 的 API 已向近 190 个国家和地区开放。官方警告称,在清单之外的国家/地区访问其服务,可能会出现帐户被阻止或暂停的状况。

优秀的个人博客,低调大师

sqltoy-orm 4.15.3 发版,增强非 sql 模式的查询功能

开源地址: github:https://github.com/chenrenfei/sagacity-sqltoy gitee:https://gitee.com/sagacity/sagacity-sqltoy idea 插件(可直接在idea中检索安装): https://github.com/threefish/sqltoy-idea-plugins 更新内容 1、针对findEntity单表查询提供指定字段的功能,并提供链式模式更加方便的设置多个查询字段 2、增加loadByIds 直接根据id集合批量加载对象 3、配合quickvo更新对findEntity指定字段提供了链式选择操作 PaginationModel<StaffInfoVO> result = sqlToyLazyDao.findEntity(StaffInfoVO.class, new PaginationModel(), // 支持三种方式指定字段: //1、用一个字符串写多个字段 // EntityQuery.create().select("staffId,staffCode, staffName, organId, sexType")、 //2、按数组形式提供字段 // EntityQuery.create().select("staffId", "staffCode", "staffName", "organId","sexType") //3、采用链式模式提供字段 EntityQuery.create().select(StaffInfoVO.select().staffId().staffCode().staffName().organId().sexType()) // 支持动态条件 .where("STATUS=1 #[and STAFF_NAME like :staffName]").orderByDesc("entryDate") .values(new StaffInfoVO().setStaffName("陈")).filters(new ParamsFilter("staffName").rlike()) // 支持缓存翻译 .translates(new Translate("organIdName").setKeyColumn("organId").setColumn("organName")) // 支持分页优化 .pageOptimize(new PageOptimize().aliveSeconds(120))); 快速了解 sqltoy-orm: sqltoy是全新一代的ORM框架,兼顾jpa对象式操作的优势,同时极大增强了查询功能,辅以科学的sql编写模式、巧妙的缓存翻译集成、极致的分页优化以及针对大规模数据下的分库分表、超复杂场景下的mongodb、elastic、clickhouse组合应用! sqltoy给你带来了多种主键策略,除常规的UUID、sequence、identity外,还包含雪花算法和基于redis产生有规则的业务主键等。 sqltoy还提供了针对统计分析的:数据旋转、无限级分组计算、同比环比等来减少开发者写复杂sql。 sqltoy在很多方面提供了极为实用的方法,如:树形表处理、isUnique、findTop、getRandomResult、updateFetch等等 sqltoy不走jooq全对象式、mybatis全sql式这种不是天就是地的极端路子,紧贴项目实战发展起来的框架,让各自技术以合理的方式应用于合理的地方! 简要举例介绍(因篇幅问题部分举例): JPA式的CRUD,但规避了其不足,提供了默认的SqlToyCRUDService(简单的则无需写service方法) 和 SqlToyLazyDao(开发无需自己写Dao,只需要写Service业务逻辑),可以了解类似于update、updateAll、saveOrUpdate等内在逻辑,减少了数据库交互,考虑了高并发和业务对象变更的特征! @Autowired private SqlToyCRUDService sqlToyCRUDService; //基于对象保存 sqlToyCRUDService.save(staffInfo); //基于对象更新(字段值为null的不会参与变更) sqlToyCRUDService.update(staffInfo); //深度变更,全部字段都参与变更 sqlToyCRUDService.updateDeeply(staffInfo); //基于对象更新(制定强制修改的字段) sqlToyCRUDService.update(staffInfo,new String[]{"staffName","onDuty"}); //基于对象更新 sqlToyCRUDService.saveOrUpdate(staffInfo); //加载对象 sqlToyCRUDService.load(new StaffInfoVO("S190715009")); //加锁获取对象 sqlToyCRUDService.load(new StaffInfoVO("S190715009"),LockMode.UPGRADE); //判断对象是否唯一 sqlToyCRUDService.isUnique(staffInfo, "staffCode"); //delete\deleteAll\updateAll\loadAll 等等不一一写完 单表等简单的查询和变更操作,提供了链式操作 //单表对象查询,直接传参模式 List<StaffInfoVO> staffVOs = sqlToyLazyDao.findEntity(StaffInfoVO.class, EntityQuery.create().where("#[staffName like ?] #[ and status=?]").values("陈", 1).lock(LockMode.UPGRADE) .orderBy("staffName").orderByDesc("createTime")); //单表查询,对象传参模式 List<StaffInfoVO> staffVOs = sqlToyLazyDao.findEntity(StaffInfoVO.class, EntityQuery.create().where("#[staffName like :staffName] #[ and status=:status]") .values(new StaffInfoVO().setStatus(1).setEmail("test3@aliyun.com"))); //代码中链式查询并删除 Long deleteCount = sqlToyLazyDao.deleteByQuery(StaffInfoVO.class, EntityQuery.create().where("status=:status").values(new StaffInfoVO().setStatus(1))); //链式变更 Long updateCount = sqlToyLazyDao.updateByQuery(StaffInfoVO.class, EntityUpdate.create().set("staffName", "张三").where("staffName like ? and status=?").values("陈", 1)); 更强大的查询,sqltoy强调复杂查询建议放置于xml中跟代码分离(当然等jdk15文本块来了你写在java也可以) //sqltoy统一的规则就是直接传递sql语句或者对应的sqlId,并不是说sql只能写在xml中(推荐但不绝对) findBySql(final String sqlOrSqlId, final String[] paramsNamed, final Object[] paramsValue, final Class<T> voClass) //嫌弃上面的格式化传参也可以使用这样链式查询 sqlToyLazyDao.findByQuery(new QueryExecutor("sqltoy_order_search").names("orderId", "authedOrganIds") .values(null, authedOrgans).resultType(DeviceOrderInfoVO.class)); sqltoy提供了最简洁的动态sql编写 我们对比一下mybatis的实现(很简单的sql写的如此让人不愿意写!): 缓存翻译,利用缓存减少关联查询,简化sql同时大幅提升效率 极致分页优化 并行查询 // 使用并行查询同时执行2个sql,条件参数是2个查询的合集 String[] paramNames = new String[] { "userId", "defaultRoles", "deployId", "authObjType" }; Object[] paramValues = new Object[] { userId, defaultRoles, DEPLOY_ID,GROUP }; List<QueryResult<TreeModel>> list = super.parallQuery( Arrays.asList(ParallQuery.create().sql("webframe_searchAllModuleMenus").resultType(TreeModel.class), ParallQuery.create().sql("webframe_searchAllUserReports").resultType(TreeModel.class)), paramNames, paramValues); 旋转数据并进行环比计算

优秀的个人博客,低调大师

好程序员大数据教程Hadoop全分布安装(非HA)

机器名称 启动服务 linux11 namenode secondrynamenode datanode linux12 datanode linux13 datanode 第一步:更改主机名,临时修改+永久修改 临时修改:hostname linux11 永久修改: vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=linux11 临时修改:hostname linux12 永久修改: vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=linux11 临时修改:hostname linux13 永久修改: vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=linux13 第二步:配置ip地址 1.三台机器关闭NetworkManager服务 service NetworkManager stop 2.三台机器禁止开机启动NetworkManager服务 chkconfig NetworkManager off 3. vi /etc/sysconfig/network-scripts/ifcfg-eth0 三台机器依次配置成这样 linux11: ONBOOT=yes BOOTPROTO=static IPADDR=192.168.91.11 DNS1=8.8.8.8 GATEWAY=192.168.91.1 NETMASK=255.255.255.0 linux12: ONBOOT=yes BOOTPROTO=static IPADDR=192.168.91.12 DNS1=8.8.8.8 GATEWAY=192.168.91.1 NETMASK=255.255.255.0 linux13: ONBOOT=yes BOOTPROTO=static IPADDR=192.168.91.13 DNS1=8.8.8.8 GATEWAY=192.168.91.1 NETMASK=255.255.255.0 最终结果: 192.168.91.11 linux11 192.168.91.12 linux12 192.168.91.13 linux13 3.三台机器关闭防火墙 service iptables stop 4.三台机器设置禁止开机启动防火墙 chkconfig iptables off 5.三台机器关闭防火墙 service iptables status 显示iptables: Firewall is not running.说明防火墙关闭成功 6.三台机器重启网卡service network restart 第三步配置主机映射 使用命令:vi /etc/hosts 三台机器都改成这样 192.168.91.11 linux11 192.168.91.12 linux12 192.168.91.13 linux13 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 测试: 在linux11上 ping linux12 ping linux13 第四步配置免密码登录 linux11: ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys linux12: ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys linux13: ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys 在linux11上 ssh-copy-id linux12 ssh-copy-id linux13 测试:测试结果为linux11可以免密码登录到所有机器。linux12 linux13可以免密码登录本机 例如:在linux11上输入 ssh linux11 第五步安装jdk及hadoop(由于使用root用户操作,为了防止对liunx操作不熟悉的人,误删其他文件。所以没有选择把软件安装在/usr下,而是选择安装在了自己创建的文件目录下) linux11: 1.在根目录下创建bigdata目录 mkdir /bigdata 2.将hadoop安装包 tar -zxvf /bigdata/hadoop-2.7.1.tar.gz -C /bigdata/ 删除hadoop安装包 rm -rf /bigdata/hadoop-2.7.1.tar.gz 3.jdk安装包解压 tar -zxvf /bigdata/jdk-8u151-linux-x64.gz -C /bigdata/ 删除jdk安装包 rm -rf /bigdata/jdk-8u151-linux-x64.gz 修改jdk目录的名字为jdk1.8 mv /bigdata/jdk1.8.0_151/ /bigdata/jdk1.8 4.配置环境变量 vi /etc/profile 在文件末尾加入如下配置 export JAVA_HOME=/bigdata/jdk1.8 export HADOOP_HOME=/bigdata/hadoop-2.7.1 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin: 第六步:hadoop的配置 1.hadoop-env.sh的配置 使用命令 vi /bigdata/hadoop-2.7.1/etc/hadoop/hadoop-env.sh 第25行export JAVA_HOME=改成下面的样子 export JAVA_HOME=/bigdata/jdk1.8 2.core-site.xml 的配置 使用命令 vi /bigdata/hadoop-2.7.1/etc/hadoop/core-site.xml 配置成这样: 3.hdfs-site.xml的配置 使用命令 vi /bigdata/hadoop-2.7.1/etc/hadoop/hdfs-site.xml 配置成这样: 4.slaves文件配置 使用命令 vi /bigdata/hadoop-2.7.1/etc/hadoop/slaves 配置成这样 linux11 linux12 linux13 第七步:远程拷贝 1.将bigdata文件分发给linux12 linux13 scp -r /bigdata linux12:/ scp -r /bigdata linux13:/ 2.将/etc/profile文件分发给linux12 linux13 scp /etc/profile linux12:/etc scp /etc/profile linux13:/etc 3.三台机器刷新环境变量 source /etc/profile 第八步:格式化namenode 在namenode节点linux11上输入命令 hdfs namenode -format 格式化完成后在linux11上启动集群 start-dfs.sh 第九步:验证集群是否启动成功 1.在浏览器上输入192.168.91.11:50070如果页面能打开显示有3个活跃节点说明成功 2.linux11上输入jps 能看到namenode secondrynamenode datanode三个服务 3.linux12上输入jps 能看到datanode 4.linux12上输入jps 能看到datanode 5.上传个文件至集群hdfs dfs -put /bigdata/jdk1.8 / 6.查看web页面是否存在这个文件

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册