【Hadoop入门】Hadoop生态之Sqoop简介
1 什么是Sqoop?

在企业的数据架构中,关系型数据库与Hadoop生态系统之间的数据流动是常见且关键的需求。Apache Sqoop(SQL-to-Hadoop)正是为解决这一问题而生的高效工具,它专门用于在结构化数据存储(如RDBMS)和Hadoop生态系统(如HDFS、Hive、HBase)之间 双向传输大规模数据集。Sqoop的核心功能:
- 数据导入:将关系型数据库中的数据导入到Hadoop生态系统中,如HDFS、Hive或HBase
- 数据导出:将Hadoop生态系统中的数据导出到关系型数据库中
- 支持全量与增量导入:既可以一次性导入全部数据,也可以只导入新增或更新的数据,满足不同的业务需求
- 并行处理:利用MapReduce的并行处理能力,提高数据传输的速度和效率
- 数据格式转换:在导入导出过程中,支持多种数据格式的转换,如TextFile、Avro、Parquet等
2 Sqoop的核心价值
Sqoop(SQL-to-Hadoop)的核心价值主要体现在以下几个方面,这些价值点紧密围绕大数据处理与迁移的需求,为企业在数据整合、分析及应用方面提供了强有力的支持:
高效数据迁移:
- 跨平台支持:在关系型数据库(MySQL、Oracle等)与Hadoop生态(HDFS、Hive、HBase)间高效传输数据,支持全量和增量同步
- 高性能:基于并行处理与优化算法,显著提升海量数据迁移效率
简化数据集成:
- 自动化工具:通过命令行快速完成数据迁移,减少复杂脚本开发需求
- 降低人工成本:最小化手动操作,提高数据准确性与可靠性
多格式多存储兼容:
- 灵活格式:支持TextFile、Avro、Parquet等格式,适配不同分析场景
- 广泛存储支持:兼容HDFS、Hive、HBase及云存储
数据安全保障:
- 传输加密:保障敏感数据迁移过程中的安全性
- 权限管控:细粒度访问控制,限制未授权操作
生态集成与扩展性:
- 无缝对接Hadoop:与Hive、MapReduce等组件协同,构建完整数据处理链路
- 高可扩展:适应企业数据规模增长需求
成本优化:
- 开源免费:无许可费用,降低企业技术投入
- 资源高效利用:通过优化迁移流程,最大化集群资源利用率
3 工作原理剖析
Sqoop通过生成MapReduce作业来实现数据的导入和导出。具体过程如下:
导入过程:
- Sqoop连接到关系型数据库,获取元数据(如表结构、字段类型等)
- 根据指定的条件(如查询条件、分区列等),生成MapReduce作业
- MapReduce作业从数据库中读取数据,经过处理后写入到HDFS或其他Hadoop组件中
导出过程:
- Sqoop从Hadoop生态系统中读取数据
- 根据目标数据库的结构,生成相应的插入或更新语句
- 将数据写入到关系型数据库中
4.1 数据导入
sqoop import \--connect jdbc:mysql://localhost:3306/mysql_db \ # 源数据库JDBC连接URL--username root \ # 数据库用户名--password 123456 \ # 数据库密码--table mysqltable \ # 要导入的源表名--target-dir /data/ \ # HDFS目标目录(存储导入数据)--fields-terminated-by '\t' # 字段分隔符(默认逗号,此处指定为制表符)
- 关键参数说明
参数 | 说明 |
--connect | 指定源数据库的JDBC连接字符串 |
--table | 要导入的关系型数据库表名 |
--target-dir | HDFS上存储导入数据的目录(需不存在,否则报错) |
--fields-terminated-by | 生成文件的分隔符(如\t,,等) |
--lines-terminated-by | 行分隔符(默认\n) |
--null-string | 替换NULL字符串的占位符(如\\N) |
4.2 数据导出
sqoop export \--connect jdbc:mysql://localhost:3306/data_warehouse \ # 目标数据库JDBC连接--username user \ # 目标数据库用户名--password pwd \ # 目标数据库密码--table tablename \ # 目标表名(需提前创建)--export-dir /results/ \ # HDFS源数据目录--input-fields-terminated-by ',' # 输入文件字段分隔符
- 关键参数说明
参数 | 说明 |
--export-dir | HDFS中待导出数据的路径 |
--input-fields-terminated-by | 输入文件的分隔符(需与导入时一致) |
--update-key | 指定更新主键(如id,实现增量更新) |
--update-mode | 更新模式(allowinsert或updateonly) |
4.3 高级功能
- 增量导入(Incremental Import):仅同步新增或修改的数据,避免全量导入
sqoop import \--connect jdbc:mysql://localhost:3306/mydb \--table orders \--check-column order_id \ # 增量检查列(通常为时间戳或自增ID)--last-value "210001" \ # 上次导入的最大值--incremental append \ # 增量模式(append或lastmodified)--target-dir /data
- Hive集成:直接导入数据到Hive表,自动创建表结构
sqoop import \--connect jdbc:mysql://localhost:3306/mydb \--table products \--hive-import \ # 启用Hive导入--hive-table ads_hive_h # 指定Hive数据库和表名
- 压缩支持:减少存储空间和I/O开销
--compress \ # 启用压缩(默认Gzip)
--compression-codec org.apache.hadoop.io.compress.SnappyCodec # 指定Snappy压缩
- 自定义查询:通过SQL语句灵活筛选源数据
sqoop import \--connect jdbc:mysql://localhost:3306/retail_db \--query "SELECT * FROM tablename" \--target-dir /data
5 Sqoop与传统ETL工具对比
对比维度 | Sqoop | 传统ETL工具 (如Informatica/Talend/DataStage) |
设计定位 | 专为Hadoop与关系数据库批量传输优化 | 企业级数据集成平台,支持复杂业务流程 |
架构特点 | 轻量级命令行工具,基于MapReduce/YARN | 可视化开发环境,集中式调度服务器 |
数据处理能力 | 结构化数据批处理 | 支持结构化/半结构化/非结构化数据,批处理+流处理 |
性能表现 | 大数据量并行传输优势明显(TB级) | 中小数据量事务处理更优,依赖硬件配置 |
扩展性 | 天然适配Hadoop生态横向扩展 | 垂直扩展为主,集群部署成本高 |
开发效率 | 简单场景配置快捷 | 复杂逻辑可视化开发效率高 |
调度管理 | 需外接调度系统(如Airflow) | 内置完善的任务调度和监控 |
数据转换能力 | 仅支持简单字段映射 | 提供丰富的数据清洗转换组件 |
实时能力 | 批处理为主(需结合Kafka等实现准实时) | 部分工具支持CDC实时同步 |
学习成本 | 命令行操作,技术门槛较低 | 需要掌握专用IDE和概念体系 |
成本投入 | 开源免费 | 商业授权费用高昂(部分提供社区版) |
典型适用场景 | Hadoop生态数据灌入/导出 | 企业级数据仓库建设,跨系统复杂集成 |
6 典型应用场景
数据仓库与数据湖构建:
场景需求:将关系型数据库历史数据迁移至Hadoop集群,建立分析型数据存储
Sqoop方案:支持全量/增量数据高效导入HDFS/Hive/HBase,为分析平台提供数据基础
大数据分析支持:
场景需求:为实时/离线分析提供数据源
Sqoop方案:定期同步业务数据到Hadoop生态,与Spark/Flink等计算引擎无缝集成
典型应用:机器学习特征工程,用户行为分析,实时报表生成
数据灾备方案:
场景需求:构建安全可靠的数据备份体系
Sqoop方案:利用Hadoop分布式存储特性实现数据库全量/增量备份
核心价值:3-2-1备份策略支持,PB级数据存储可靠性,快速恢复能力
系统迁移与整合:
场景需求:多源异构数据统一管理
Sqoop方案:跨数据库类型迁移(如Oracle→MySQL→HDFS)
实施优势:schema自动转换,数据一致性保证,最小化停机时间
准实时数据同步:
场景需求:业务系统与数据分析系统数据对齐
Sqoop方案:结合CDC工具实现分钟级延迟的数据管道
技术组合:Kafka+Sqoop+Spark Streaming架构,变更数据捕获(CDC)
多格式数据管理:
场景需求:适应不同分析场景的存储需求
Sqoop方案:
存储格式:支持Text/JSON/Parquet/Avro等
存储系统:兼容HDFS/Hive/HBase/云存储
业务价值:列式存储优化查询,压缩节省空间,schema演进支持
7 最佳实践建议
- 分区策略优化:选择高基数列作为拆分列
- 批量大小调整:平衡内存使用与性能
- 格式选择:生产环境推荐使用列式存储(如Parquet)
- 增量导入:对变化数据使用--incremental参数
- 错误处理:合理设置--num-mappers和错误容忍度
8 性能优化技巧
- 并行度控制:根据数据库负载能力调整mapper数量
- 直接模式:对MySQL使用--direct选项
- 缓存调优:适当增加fetch size减少网络往返
- 连接池配置:避免频繁创建数据库连接
- 压缩传输:减少I/O和网络开销
9 总结
Apache Sqoop作为Hadoop生态系统中数据桥梁的关键组件,在企业数据架构中仍然扮演着不可替代的角色。它简单而专注的设计理念,使其在特定场景下(特别是大规模批量数据传输)仍然保持着性能和可靠性的优势。
相关文章:
【Hadoop入门】Hadoop生态之Sqoop简介
1 什么是Sqoop? 在企业的数据架构中,关系型数据库与Hadoop生态系统之间的数据流动是常见且关键的需求。Apache Sqoop(SQL-to-Hadoop)正是为解决这一问题而生的高效工具,它专门用于在结构化数据存储(如RDBMS…...
小程序中实现音频播放(原生 + uniapp)
原生: miniprogram/components/mp-audio/index.wxml <view class"imt-audio"><view class"top"><view class"audio-control-wrapper"><image src"{{poster}}" mode"aspectFill" class"…...
SpringBoot接口覆盖上一次调用的实现方案
调用springboot接口时,如何实现覆盖上一次调用 Spring Boot 接口覆盖上一次调用的实现方案 以下是多种实现覆盖上一次接口调用的方案,适用于不同场景。 方案一:同步锁控制(单机环境) 适用场景:单实例…...
小白电路设计-设计7-固定式倍压器直流稳压电源电路设计
介绍 作为电子信息工程的我,电路学习是一定要学习的,可惜目前作为EMC测试工程师,无法兼顾太多,索性不如直接将所学的知识进行运用,并且也可以作为契机,进行我本人的个人提升。祝大家与我一起进行提升。1.本…...
Vue报错...properly without JavaScript enabled. Please enable it to continue
问题: Vue报错Were sorry but apptest1 doesnt work properly without JavaScript enabled. Please enable it to continue 解决: 修改 vue.config.js module.exports {publicPath: ./, // 使用相对路径devServer: {headers: {Access-Control-Allow…...
MySQL的半同步模式
MySQL的主从架构采用的是异步模式 master更新完成后直接发送二进制日志到slave,但是slaves是否真正保存了数据master端不会检测,master端直接保存二进制日志到磁盘,当master端到slave端的网络出现问题时或者master端直接挂掉,二进…...
Redis安装(Windows环境)
文章目录 Resid简介:下载Redis启动Redis服务设置Windows服务常用的Redis服务命令 Resid简介: Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存、分布式、可选持久性的键值对(Key-Value)存储数据库,并提供多种语言的 API。 Redis通常…...
CExercise_09_2动态拼接字符串_1字符串拼接
题目: 标准库函数strcat会将一个字符串追加到另一个字符串的末尾。 现在我们编写一个函数把两个字符串拼接起来,返回拼接的结果,但要求不改变其中任何一个字符串。其函数声明如下: char* my_strcat(const char* prefix, const cha…...
【保姆级图解】插入排序 算法详解:直接插入排序、希尔排序
总体引入 在计算机科学的算法领域中,排序是一项基础且重要的操作。它旨在将一组无序的数据元素重新排列为有序序列,以满足特定的顺序要求,如升序或降序。常见的排序算法可分为不同类别,像插入排序,包含直接插入排序和…...
Python爬虫第10节-lxml解析库用 XPath 解析网页
目录 引言 一、XPath简介 二、XPath常用规则 三、实例讲解 四、节点的选取 4.1 所有节点的选取 4.2 子节点的选取 4.3 父节点选取 五、属性匹配获取及文本获取 5.1 属性匹配 5.2 文本获取 5.3 属性获取 5.4 属性多值匹配 5.5 多属性匹配 六、按序选择 七、节点…...
Prometheus有哪几种服务发现?
Prometheus 支持多种服务发现 (Service Discovery) 机制,用于自动发现需要监控的目标。这些服务发现机制主要分为以下几类: 1. 静态配置 (Static Configuration) Static Configuration: 手动定义静态目标列表。适用于小规模的、固定的目标环境…...
突破焊丝虚影干扰,端子焊点缺陷检测如何实现自动化?
端子焊点作为 3C 产品中连接电路的关键环节,其质量优劣对产品性能有着决定性影响。然而,传统人工检测端子焊点不仅效率低下,难以满足大规模生产需求,而且误判率高,无法精准把控产品质量,成为企业提质增效智…...
2025.04.10-拼多多春招笔试第二题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 02. 糖果店的优惠兑换计划 问题描述 K小姐开了一家糖果店,推出了一种特殊的兑换活动。商店有 n n n<...
linux系统下如何提交git和调试
我们默认的ubuntu20.04镜像是没有Git提交的工具,我们需要配置安装包。 安装和更新git的命令 sudo apt update //用于更新软件包索引sudo apt install git //用于安装git版本控制工具 git --version //检查git版本,确认是否安装成功 随便进入linux系统下的一…...
40页的IPD流程指标字典【全文精读】
该文档聚焦 IPD 流程指标,为企业在产品研发管理领域提供全面量化评估标准,主要适用于企业中与产品研发、管理、财务及市场相关的各类人员。 财务类指标:涵盖市场份额、新产品销售比重等,用于评估产品市场竞争力、投资效率…...
如何在Cherry Studio中配置MCP工具服务?国内MCP服务有哪些?
在当今数字化时代,AI助手已成为提升工作效率和创造力的重要工具。Cherry Studio作为一个全能的AI客户端,支持多平台(包括Windows、macOS和Linux),并提供了丰富的功能,如大模型对话、AI绘图和AI翻译等。为了…...
动态词槽管理系统深度设计
动态词槽管理系统深度设计 基于Dual-Encoder的实时增量式语义槽管理方案 一、Dual-Encoder架构优化 1.1 架构创新设计 增强型双塔模型结构: #mermaid-svg-DRhtmuANYnJBJzpu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill…...
网络安全中信息收集需要收集哪些信息了?汇总
目录 1. 域名信息 2. IP地址与网络信息 3. 备案与注册信息 4. Web应用与中间件信息 5. 操作系统与服务器信息 6. 敏感文件与配置文件 7. 社交工程信息 8. 证书与加密信息 9. API与接口信息 10. 外部威胁情报 11. 历史数据与缓存 常用工具与技术: 在网络…...
代码模板-线段树(区间修改,区间查询和和最值)
题目链接:1270. 数列区间最大值 - AcWing题库 代码: // #pragma GCC optimize(1) // #pragma GCC optimize(2) // #pragma GCC optimize(3,"Ofast","inline")#include<bits/stdc.h> using namespace std; typedef long long…...
LLM介绍
一、核心概念与能力边界 LLM(Large Language Model:大语言模型)是基于海量文本训练的深度学习模型,其核心能力源于Transformer架构与自监督学习机制。关键特征包括: 参数规模:千亿级参数(如GP…...
[数据结构]排序
目录 1、排序的概念 2、常见排序算法 3、直接插入排序 4、希尔排序 5、直接选择排序 6、堆排序 7、冒泡排序 1、排序的概念 排序:所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作 …...
Next.js + Droplet:高并发视频内容平台部署与优化扩展实战
在构建在线服务时,无论你是开发者还是企业技术负责人,扩展性和稳定性始终是绕不开的核心挑战。尤其在涉及高并发访问、大量数据传输和持续内容分发的场景中,系统架构的设计直接决定了用户体验与业务成效。 本文将以视频点播(Video…...
django寻味美食分享与交流网站-计算机毕业设计源码74984
摘 要 美食分享与交流网站是当前社交网络领域的一个热门话题。本研究旨在探讨用户在美食分享网站上的行为和互动模式,以及他们分享和获取美食信息的动机和方式。通过对美食分享网站上用户发文内容和互动数据的分析,揭示了用户在美食分享中的需求和行为规…...
把读写函数里的printf 打印到文件里
使用 fprintf 函数 将输出目标从标准输出(stdout)更改为一个文件指针 1、首先,在头文件或全局变量中定义一个 FILE 类型的指针,用于指向输出文件。 2、在程序启动时,打开文件并将文件指针赋值给上面定义的全局指针。…...
在idea中看spring源码
一、搭建环境 1.1 下载源码到本地 在github中找到spring-framework项目,或者这个地址(https://github.com/spring-projects/spring-framework) 然后把项目下载到本地目录,如图 1.2 然后用idea打开这个项目 1.3 然后等构建&…...
用最简单的方式讲述离散傅里叶级数(DFS)以及离散傅立叶变换(DFT)
文章目录 前言 一、傅里叶变换的多种形式 二、浅谈离散傅里叶级数(DFS) 三、浅谈离散傅里叶变换(DFT) 总结 前言 本文对四种不同的傅里叶变换做了总结与梳理,并针对其中存在联系的形式做了推导。接着又讲述了离散傅里叶…...
python基础语法14-多线程与多进程
Python 多线程与多进程详解 在 Python 中,多线程和多进程是常用的并发编程技术,它们可以帮助程序在处理大量任务时提高效率。Python 提供了多个模块来支持多线程和多进程的开发,包括 threading、multiprocessing 和 asyncio。本文将详细介绍…...
深入解析策略模式在C#中的应用与实现
策略模式(Strategy Pattern)是一种行为型设计模式,它通过将一系列算法封装成不同的策略类,使得算法的选择和使用可以在运行时动态改变,且算法的变化对使用者透明。这种模式可以显著减少程序中的条件判断(如…...
ios按键精灵脚本开发游戏辅助工具的代码逻辑
iOS 按键精灵使用 MQ 语言开发游戏脚本,其代码逻辑围绕游戏内的各种操作展开。我将从常见的游戏操作,如点击、移动等方面, 点击操作逻辑 在游戏中,点击操作是最基础的交互方式之一。比如要实现点击游戏界面上某个固定位置的 “…...
Pycharm(十三)容器类型的公共运算符和公共方法
一、容器类型的公共运算符 这些运算符是可以作用到 容器类型 中的。 常见的如下: :拼接,适用于字符串、列表、元组; *:复制,适用于字符串、列表、元组; in:是否包含,适用于字符串、列表、元…...
Backtrader从0到1——第一个回测策略
Backtrader从0到1——第一个回测策略 0. 前言1. lines && index2. 生成大脑3. 设置起始资金和佣金4. 添加数据(重点)5. 第一个策略——双均线5.1 策略类5.2 策略参数5.3 添加指标5.4 买卖与订单order5.5 完整策略代码 0. 前言 本人翻阅了大量资料…...
GPT - 因果掩码(Causal Mask)
本节代码定义了一个函数 causal_mask,用于生成因果掩码(Causal Mask)。因果掩码通常用于自注意力机制中,以确保模型在解码时只能看到当前及之前的位置,而不能看到未来的信息。这种掩码在自然语言处理任务(如…...
lombok的坑
我使用lombok的Data注解带来的坑。 代码如下: 公共类: package com.tyler.oshi.common;import lombok.Data; import lombok.NoArgsConstructor;/*** author: TylerZhong* description:*/Data NoArgsConstructor public class R {private int code;priv…...
基于Python的网络爬虫技术研究
基于Python的网络爬虫技术研究 以下从多个方面为你介绍基于 Python 的网络爬虫技术: 概述 网络爬虫是一种自动获取网页内容的程序,在 Python 中可以借助诸多强大的库和工具实现。网络爬虫能应用于数据采集、搜索引擎、舆情监测等众多领域。 核心库 …...
微信小程序跳6
//金额格式化 rmoney: function(money) { return parseFloat(money).toFixed(2).toString().split().reverse().join().replace(/(\d{3})/g, $1,) .replace( /\,$/, ).split().reverse().join(); }, daysUntil: function(milliseconds) { const endDate new Date(milliseconds…...
项目1笔记
Data Data 是一个常用的 Lombok 注解,主要用于 Java 类中,可以自动生成以下内容: Getter(所有字段) Setter(所有非 final 字段) toString() 方法 equals() 和 hashCode() 方法 无参构造函…...
分享:批量识别图片文字并重命名,根据图片文字内容对图片批量重命名,Python和Tesseract OCR的完成方案
一、项目背景 在日常工作中,处理大量图片文件时,常常需要从图片中提取文字信息,并根据提取的文字对图片进行重命名。传统的手动操作方式效率低下且容易出错。通过OCR(光学字符识别)技术,可以自动从图片中提取文字信息,并基于提取的文字对图片进行批量重命名。 Tesserac…...
【安全】加密算法原理与实战
为了理解SSL/TLS原理,大家需要掌握一些加密算法的基础知识。当然,这不是为了让大家成为密码学专家,所以只需对基础的加密算法有一些了解即可。基础的加密算法主要有哈希(Hash,或称为散列)、对称加密(Symm…...
STM32STM8芯片擦除与读保护
连接STM单片机与断开单片机连接, 点击擦除就可以了。 文件选HEX在选择Verify进行下载。...
Qwen2.5技术报告阅读
论文概述 ⸻ 🧠 1. 模型概述 Qwen2.5 是阿里巴巴推出的一系列大语言模型(LLMs),在 预训练数据量 和 后训练方法 上都比前一代 Qwen2 有了显著提升。 ⸻ 📈 2. 模型特点 • 预训练数据量提升:从 7 万亿…...
HDCP(二)
HDCP加密算法实现详解 HDCP(高带宽数字内容保护)的加密算法实现涉及对称加密、密钥派生、动态同步机制等核心环节,其设计兼顾实时性与安全性。以下从算法类型、流程实现、硬件集成等角度展开分析: 1. 加密算法类型与版本差异 •…...
POSIX线程(pthread)库:线程的终止与管理
在POSIX线程(pthread)库中,线程的终止和管理涉及多个关键函数。以下是关于线程终止的pthread系列函数的详细介绍: 1. pthread_exit:线程主动退出 ✨ 功能: 允许线程主动终止自身,并返回一个退出…...
Elasticsearch 系列专题 - 第三篇:搜索与查询
搜索是 Elasticsearch 的核心功能之一。本篇将介绍如何构建高效的查询、优化搜索结果,以及调整相关性评分,帮助你充分发挥 Elasticsearch 的搜索能力。 1. 基础查询 1.1 Match Query 与 Term Query 的区别 Match Query:用于全文搜索,会对查询词进行分词。 GET /my_index/_…...
【AI提示词】Emoji风格排版艺术与设计哲学
提示说明 Emoji风格排版艺术与设计哲学。 提示词 请使用 Emoji 风格编辑以下段落,该风格以引人入胜的标题、每个段落中包含表情符号和在末尾添加相关标签为特点。请确保保持原文的意思。使用案例(春日穿搭) 🌸 2025春季穿搭灵…...
C语言 ——— 认识C语言
认识 main 函数 main 函数是程序的入口,程序执行时会从 main 函数的第一行开始执行,且一个工程中 main 函数有且只有一个 标准的 main 函数格式: int main() {return 0; } int 是类型,这里指的是 main 函数的返回类型 return…...
44、Spring Boot 详细讲义(一)
Spring Boot 详细讲义 目录 Spring Boot 简介Spring Boot 快速入门Spring Boot 核心功能Spring Boot 技术栈与集成Spring Boot 高级主题Spring Boot 项目实战Spring Boot 最佳实践总结 一、Spring Boot 简介 1. Spring Boot 概念和核心特点 1.1、什么是 Spring Boot&#…...
STM32硬件IIC+DMA驱动OLED显示——释放CPU资源,提升实时性
目录 前言 一、软件IIC与硬件IIC 1、软件IIC 2、硬件IIC 二、STM32CubeMX配置KEIL配置 三、OLED驱动示例 1、0.96寸OLED 2、OLED驱动程序 3、运用示例 4、效果展示 总结 前言 0.96寸OLED屏是一个很常见的显示模块,其驱动方式在用采IIC通讯时,常用软件IIC…...
Android 中绕过hwbinder 实现跨模块对audio 的HAL调用
需求 Audio 模块中专门为 TV 产品添加了一些代码,需要在 hdmi 的 HAL 代码中进行调用以完成某些功能。 解决方法 首先将 hdmi HAL 要调用的 audio 接口函数所在的 .so 链接到最基本的 lib.primay.amlogic.so 中(其它平台上这个 .so 文件的名字也可能是…...
基于单片机技术的手持式酒精检测电路设计
基于STC89C52单片机的酒精检测仪设计 目录 基于STC89C52单片机的酒精检测仪设计一、简介二、酒精测试仪总体方案设计2.1 酒精检测仪设计要求分析2.2 设计框图 三、硬件设计3.1 酒精检测电路3.2 模数转换电路3.3 STC89c52单片机电路3.4 LED显示电路3.5 声光报警电路3.6 按键和复…...
【车道线检测(0)】卷首语
车道线检测领域,早期的LaneNet、CondLaneNet等模型。现在在精度、实时性、复杂场景适应性等方面有了更多进展。 Head(输出头)的设计角度分类 在车道线检测任务中,Head(输出头)的设计角度直接影响模型的…...