学习大数据DAY56 业务理解和第一次接入

news2024/11/25 5:49:06

作业1

1 了解行业名词 ERP CRM OA MES WMS RPA SAAS 了解每个系统的功能和应用
ERP 系统,(Enterprise Resource Planning,企业资源计划系统):ERP 系统
是一种用于管理企业各类资源的软件系统,包括生产管理、采购管理、库存管理、
财务管理等功能模块,帮助企业实现资源的优化配置和管理。
CRM 系统,(Customer Relationship Management,客户关系管理系统):CRM
系统是一种用于管理客户关系的软件系统,包括客户信息管理、销售管理、客户
服务管理等功能模块,帮助企业提高客户满意度和市场竞争力。
OA 系统,(Office Automation System,办公自动化系统):OA 系统是一种用
于协调、管理和优化办公流程的软件系统,包括电子邮件、日程安排、文档管理、
工作流程管理等功能模块,帮助企业提高工作效率和管理水平。
MES 系统(Manufacturing Execution System,制造执行系统):MES 系统是一
种用于管理制造过程的软件系统,包括生产计划管理、生产调度管理、工艺管理、
质量管理等功能模块,帮助企业提高生产效率和质量水平。
WMS 系统(Warehouse Management System,仓库管理系统):WMS 系统是一种用
于管理仓库的软件系统,包括入库管理、出库管理、库存管理、配送管理等功能
模块,帮助企业提高仓库管理效率和准确性。
SaaS(Software as a service),软件即服务,即通过网络提供软件服务,SaaS
平台供应商将应用软件统一部署在自己的服务器上,客户可以根据工作实际需
求,通过互联网向厂商定购所需的应用软件服务,按定购的服务多少和时间长短
向厂商支付费用,并通过互联网获得 Saas 平台供应商提供的服务。
2 模型设计 雪花模型 星型模型 ER 图 逻辑模型图...
星座模型
雪花模型
ER 图
逻辑模型图
3 检查自己的 Hadoop 集群,正常标准 444 进程。 myhadoop status

作业2

1 Hive 有哪些文件格式,为什么不用 textfile 格式
TextFile: 这是 Hadoop 的默认文件格式,它将数据以行的形式存储。每行由换
行符(\n)分隔。
SequenceFile: 这是 Hadoop 自带的一种二进制文件格式,它可以存储键值对,
序列化后存储。它支持压缩,而且有同步标记,容易分块,便于并行处理。
RCFile(Record Columnar File): 这是一种列存储格式,它将数据首先按列存
储,然后在每一列中再按行存储。这种格式适用于读操作多于写操作的场景,可
以有效提高查询性能。
ORC(Optimized Row Columnar): 这是 Hive 中支持的另一种列存储格式,相比
于 RCFile,ORC 文件格式具有更高的压缩比和查询效率。它支持 Zlib、Snappy
和 LZ4 压缩方式,并且提供了更高级别的向量化读取、投影和过滤优化。
Parquet:这是另一种列存储格式,它旨在提供跨平台的文件格式,可以很好地
与 Hadoop 生态系统中的其他组件(如 Impala、Presto 等)协同工作。Parquet
支持嵌套数据结构,并且可以与多种语言的客户端库一起使用。
不使用 TextFile 格式的原因主要有以下几点:
性能问题: TextFile 格式数据没有压缩,导致占用更多的存储空间,这会增加
存储成本和网络传输的负担。
读写效率低: TextFile 格式的数据不支持列存储,这对于列式存储优化的 Hive
查询引擎来说,效率较低,因为它不能有效地跳过不需要的列,从而增加了查询
时的 I/O 开销。
数据组织效率: 由于是按行存储,对于执行大量列筛选和聚合操作的查询,性能
不够优化。列存储格式如 ORC 和 Parquet 可以更有效地利用列索引、压缩和编码
技术,从而加快数据处理速度。
压缩支持: Hive 中的其他文件格式如 ORC 和 Parquet 提供了对数据压缩的支持,
可以有效减少存储空间并提高处理速度,而 TextFile 格式不支持压缩。
2 完成环境的部署
Python 安装:
hadoop100,hadoop101,hadoop102 都要安装
阿里云下载 python 安装包
wget
https://mirrors.aliyun.com/python-release/source/Python-3.9.10.tgz
在 hadoop100 下载完成后,通过 scp 传输到另外两个虚拟机
scp /root/Python-3.9.10.tgz root@192.168.200.101:/root scp /root/Python-3.9.10.tgz root@192.168.200.102:/root
我的 hadoop100 的 python 在上个阶段就装好了,直接在 hadoop101 和 hadoop102
再安装一次:
tar -zxvf Python-3.9.10.tgz
cd Python-3.9.10
安装依赖包:
yum install -y gcc patch libffi-devel python-devel zlib-devel
bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel
tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
配置环境
./configure --prefix=/usr/include/openssl
make && make install
建立安装快捷指令
ln -s /usr/include/openssl/bin/python3 /usr/bin/python3
ln -s /usr/include/openssl/bin/pip3 /usr/bin/pip3
python3 -m pip install --upgrade pip
pip3 config set global.index-url
https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
pymysql pyspark requests bs4 hdfs pandas numpy openpyxl
pip3 install urllib3==1.26.15
安装完成验证:
部署 Hive:
同步 Hive:
xsync /opt/module/apache-hive-3.1.2-bin
同步环境变量:
xsync /etc/profile.d/my_env.sh
部署调度平台:
cd /opt
mkdir xxljob
将‘Z:\班级\09_医药项目\xxl-job-student-20221220’中的所有文件上传到
xxljob 中
同步到其它虚拟机:
xsync xxljob
确保 mysql 账号密码均为 root
mysql 中执行 xxljob 建表文件
source /opt/xxljob/tables_xxl_job.sql;
编写启停脚本:
mkdir /root/bin
vim /root/bin/xxl
内容:
#!/bin/bash
act=$1
start()
{
echo "starting xxl-job"
ssh root@hadoop100 "cd /opt/xxljob; nohup java -jar
xxl-job-admin-2.3.0.jar > xxl-job.log 2>&1 &"
ssh root@hadoop100 "cd /opt/xxljob; nohup java -jar
xxl-job-executor-sample-springboot-2.3.0.jar >
xxl-job-executor.log 2>&1 &"
ssh root@hadoop101 "cd /opt/xxljob; nohup java -jar
xxl-job-executor-sample-springboot-2.3.0.jar >
xxl-job-executor.log 2>&1 &"
ssh root@hadoop102 "cd /opt/xxljob; nohup java -jar
xxl-job-executor-sample-springboot-2.3.0.jar >
xxl-job-executor.log 2>&1 &"
}
stop(){
echo "stopping xxl-job"
ssh root@hadoop100 "ps -aux | grep xxl-job-admin | grep-v grep | awk '{print \$2}' | xargs kill -9"
ssh
root@hadoop100
"ps
-aux
|
grep
xxl-job-executor-sample | grep -v grep | awk '{print \$2}' |
xargs kill -9"
ssh
root@hadoop101
"ps
-aux
|
grep
xxl-job-executor-sample | grep -v grep | awk '{print \$2}' |
xargs kill -9"
ssh
root@hadoop102
"ps
-aux
|
grep
xxl-job-executor-sample | grep -v grep | awk '{print \$2}' |
xargs kill -9"
}
status(){
echo "=============== hadoop102 ==============="
ssh
root@hadoop102
"ps
-aux
|
grep
xxl-job-executor-sample | grep -v grep"
echo "=============== hadoop101 ==============="
ssh
root@hadoop101
"ps
-aux
|
grep
xxl-job-executor-sample | grep -v grep"
echo "=============== hadoop100 ==============="
ssh root@hadoop100 "ps -aux | grep xxl-job | grep -v
grep"
}
case $act in
start)
start
status
;;
stop)
stop
status
;;
restart)
stop
start
;;
status)
status
;;
esac
增加执行权限:
chmod +x /root/bin/xxl
验证:
xxl start
netstat -nltp | grep 8080
安装 DataX:
wget
https://datax-opensource.oss-cn-hangzhou.aliyuncs.com/202308/datax.tar.gz
tar -zxvf datax.tar.gz
同步到其它节点:
xsync /opt/datax
3 完成第一个接入任务
客户提供的连接信息
需求:使用 DataX 每天凌晨 1 点定时抽取 c_org_busi 门店信息表
编写配置文件
打开 VScode:
mkdir -p /zhiyun/shihaihong
cd /zhiyun/shihaihong
mkdir data jobs shell sql python 读取
mysql https://github.com/alibaba/DataX/blob/master/mysqlreader/doc
/mysqlreader.md
写入
hive https://github.com/alibaba/DataX/blob/master/hdfswriter/doc/hdf
swriter.md
job 目录中的 c_org_busi.json 文件下:
{
"job": {
"setting": {
"speed": {
"channel": 3
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "zhiyun",
"password": "zhiyun",
"column": [
"*"
],
"connection": [
{
"table": [
"c_org_busi"
],
"jdbcUrl": ["jdbc:mysql://zhiyun.pub:233
06/erp"
]
}
]
}
},
"writer": {
"name": "streamwriter",
"parameter": {
"print":true
}
}
}
]
}
}
运行抽取:
python /opt/datax/bin/datax.py /zhiyun/shihaihong/jobs/c_org_busi.json
写入到 Hive
json 文件改为:
{
"job": {"setting": {
"speed": {
"channel": 3
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "zhiyun",
"password": "zhiyun",
"column": [
"*"
],
"connection": [
{
"table": [
"c_org_busi"
],
"jdbcUrl": [
"jdbc:mysql://zhiyun.pub:233
06/erp"
]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://hadoop100:8020",
"fileType": "orc",
"path":
"/zhiyun/shihaihong/ods/c_org_busi",
"fileName": "c_org_busi.data",
"column": [
{"name":"id","type": "int"},
{"name":"busno","type": "string"},{"name":"orgname","type": "string"},
{"name":"orgsubno","type":
"string"},
{"name":"orgtype","type": "string"},
{"name":"salegroup","type":
"string"},
{"name":"org_tran_code","type":
"string"},
{"name":"accno","type": "string"},
{"name":"sendtype","type":
"string"},
{"name":"sendday","type": "string"},
{"name":"maxday","type": "string"},
{"name":"minday","type": "string"},
{"name":"notes","type": "string"},
{"name":"stamp","type": "string"},
{"name":"status","type": "string"},
{"name":"customid","type":
"string"},
{"name":"whl_vendorno","type":
"string"},
{"name":"whlgroup","type":
"string"},
{"name":"rate","type": "string"},
{"name":"creditamt","type":
"string"},
{"name":"creditday","type":
"string"},
{"name":"peoples","type": "string"},
{"name":"area","type": "string"},
{"name":"abc","type": "string"},
{"name":"address","type": "string"},
{"name":"tel","type": "string"},
{"name":"principal","type":
"string"},
{"name":"identity_card","type":
"string"},
{"name":"mobil","type": "string"},
{"name":"corporation","type":
"string"},
{"name":"saler","type": "string"},
{"name":"createtime","type":
"string"},{"name":"bank","type": "string"},
{"name":"bankno","type": "string"},
{"name":"bak1","type": "string"},
{"name":"bak2","type": "string"},
{"name":"a_bak1","type": "string"},
{"name":"aa_bak1","type": "string"},
{"name":"b_bak1","type": "string"},
{"name":"bb_bak1","type": "string"},
{"name":"y_bak1","type": "string"},
{"name":"t_bak1","type": "string"},
{"name":"ym_bak1","type": "string"},
{"name":"tm_bak1","type": "string"},
{"name":"supervise_code","type":
"string"},
{"name":"monthrent","type":
"string"},
{"name":"wms_warehid","type":
"string"},
{"name":"settlement_cycle","type":
"string"},
{"name":"apply_cycle","type":
"string"},
{"name":"applydate","type":
"string"},
{"name":"accounttype","type":
"string"},
{"name":"applydate_last","type":
"string"},
{"name":"paymode","type": "string"},
{"name":"yaolian_flag","type":
"string"},
{"name":"org_longitude","type":
"string"},
{"name":"org_latitude","type":
"string"},
{"name":"org_province","type":
"string"},
{"name":"org_city","type":
"string"},
{"name":"org_area","type":
"string"},
{"name":"business_time","type":
"string"},{"name":"yaolian_group","type":
"string"},
{"name":"pacard_storeid","type":
"string"},
{"name":"opening_time","type":
"string"},
{"name":"ret_ent_id","type":
"string"},
{"name":"ent_id","type": "string"}
],
"writeMode": "truncate",
"fieldDelimiter": "\t"
}
}
}
]
}
}
打开 myhadoop 集群和 hive:
创建 hdfs 文件:
hadoop fs -mkdir -p /zhiyun/shihaihong/ods/c_org_busi
运行抽取:
python
/opt/datax/bin/datax.py
/zhiyun/shihaihong/jobs/c_org_busi.json
Hive 建表
-- 创建数据库
create database if not exists ods_shihaihong location
"/zhiyun/shihaihong/ods";
-- 创建对应的数据表
-- ODS 表都应该是外部表 防止建错表然后删表的情况create external table if not exists ods_shihaihong.c_org_busi(
id int,
busno string,
orgname string,
orgsubno string,
orgtype string,
salegroup string,
org_tran_code string,
accno string,
sendtype string,
sendday string,
maxday string,
minday string,
notes string,
stamp string,
status string,
customid string,
whl_vendorno string,
whlgroup string,
rate string,
creditamt string,
creditday string,
peoples string,
area string,
abc string,
address string,
tel string,
principal string,
identity_card string,
mobil string,
corporation string,
saler string,
createtime string,
bank string,
bankno string,
bak1 string,
bak2 string,
a_bak1 string,
aa_bak1 string,
b_bak1 string,
bb_bak1 string,
y_bak1 string,
t_bak1 string,ym_bak1 string,
tm_bak1 string,
supervise_code string,
monthrent string,
wms_warehid string,
settlement_cycle string,
apply_cycle string,
applydate string,
accounttype string,
applydate_last string,
paymode string,
yaolian_flag string,
org_longitude string,
org_latitude string,
org_province string,
org_city string,
org_area string,
business_time string,
yaolian_group string,
pacard_storeid string,
opening_time string,
ret_ent_id string,
ent_id string
) row format delimited fields terminated by "\t"
lines terminated by "\n"
stored as orc
location "/zhiyun/shihaihong/ods/c_org_busi";

验证数据

调度脚本
自动运行,自动更新
c_org_busi.sh:
#!/bin/bash
# 作用: 完成从编写配置文件到验证数据的整个过程
# 需要在任何节点都可以执行
echo "开始抽取 c_org_busi 门店信息表"
echo "生成配置文件"mkdir -p /zhiyun/shihaihong/jobs
echo '
{
"job": {
"setting": {
"speed": {
"channel": 3
},
"errorLimit": {
"record": 0,
"percentage": 0.02
}
},
"content": [
{
"reader": {
"name": "mysqlreader",
"parameter": {
"username": "zhiyun",
"password": "zhiyun",
"column": [
"*"
],
"connection": [
{
"table": [
"c_org_busi"
],
"jdbcUrl": [
"jdbc:mysql://zhiyun.pub:233
06/erp"
]
}
]
}
},
"writer": {
"name": "hdfswriter",
"parameter": {
"defaultFS": "hdfs://hadoop100:8020",
"fileType": "orc","path":
"/zhiyun/shihaihong/ods/c_org_busi",
"fileName": "c_org_busi.data",
"column": [
...
],
"writeMode": "truncate",
"fieldDelimiter": "\t"
}
}
}
]
}
}' > /zhiyun/shihaihong/jobs/c_org_busi.json
echo "生成 HDFS 路径"
hadoop fs -mkdir -p /zhiyun/shihaihong/ods/c_org_busi
echo "抽取数据"
python /opt/datax/bin/datax.py
/zhiyun/shihaihong/jobs/c_org_busi.json
echo "hive 建表"
hive -e '
-- 创建数据库
create database if not exists ods_shihaihong location
"/zhiyun/shihaihong/ods";
-- 创建对应的数据表
-- ODS 表都应该是外部表 防止建错表然后删表的情况
create external table if not exists ods_shihaihong.c_org_busi(
id int,
busno string,
orgname string,
orgsubno string,
orgtype string,
salegroup string,
org_tran_code string,
accno string,
sendtype string,
sendday string,
maxday string,
minday string,
notes string,stamp string,
status string,
customid string,
whl_vendorno string,
whlgroup string,
rate string,
creditamt string,
creditday string,
peoples string,
area string,
abc string,
address string,
tel string,
principal string,
identity_card string,
mobil string,
corporation string,
saler string,
createtime string,
bank string,
bankno string,
bak1 string,
bak2 string,
a_bak1 string,
aa_bak1 string,
b_bak1 string,
bb_bak1 string,
y_bak1 string,
t_bak1 string,
ym_bak1 string,
tm_bak1 string,
supervise_code string,
monthrent string,
wms_warehid string,
settlement_cycle string,
apply_cycle string,
applydate string,
accounttype string,
applydate_last string,
paymode string,
yaolian_flag string,
org_longitude string,
org_latitude string,org_province string,
org_city string,
org_area string,
business_time string,
yaolian_group string,
pacard_storeid string,
opening_time string,
ret_ent_id string,
ent_id string
) row format delimited fields terminated by "\t"
lines terminated by "\n"
stored as orc
location "/zhiyun/shihaihong/ods/c_org_busi";
'
echo "验证数据"
hive -e '
select count(1) from ods_shihaihong.c_org_busi;
select * from ods_shihaihong.c_org_busi limit 2;
'
echo "抽取完成!"
赋权:
chmod u=rwx c_org_busi.sh
./c_org_busi.sh
设置定时:
执行一次,查看执行日志:
执行一次
4 作业标准
4.1 所有截图必须全屏截图
4.2 把调度平台的日志复制到作业中

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2129197.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2024年软件测试经典大厂面试题(全3套)【包含答案】

前言 金三银四即将过去,后面迎来的便是金九银十,一直想着说分享一些软件测试的面试题,这段时间做了一些收集和整理,下面共有三篇经典面试题,大家可以试着做一下,答案附在后面,希望能帮助到大家。…

STM32——玩转超声波传感器

目录 1.什么是超声波? 超声波的基本特点: 2.超声波传感器介绍:HC-SR04 HC-SR04 主要特点: HC-SR04 接线如下: HC-SR04 工作原理: 如何编写超声波测距代码? 编写逻辑: 编写思…

【2024】前端学习笔记4-图像标记

在 HTML 中&#xff0c;<img>标签用于在网页中插入图像。 基本语法&#xff1a; <img src"图像文件地址" alt"替代文本">src&#xff1a;指定图片的路径&#xff0c;可以是相对路径、绝对路径。alt&#xff1a;为图像提供代替文本&#xff0…

9.12日常记录

1.extern关键字 1&#xff09;诞生动机:在一个C语言项目中&#xff0c;需要再多个文件中使用同一全局变量或是函数&#xff0c;那么就需要在这些文件中再声明一遍 2&#xff09;用于声明在其他地方定义的一个变量或是函数&#xff0c;在当前位置只是声明&#xff0c;告诉编译器…

【办公类】幼儿健康数据模版批量更改日期(保健老师填写)

背景需求 今天下发通知 三个园区的保健老师需要填写 1.2023学年&#xff08;202406&#xff09;的六一体检数据 2.2024学年&#xff08;202409&#xff09;的新生入园体检数据 我先把上一轮填写过的数据模版下载下来&#xff08;套用模版&#xff09; 把EXCEL下载到原始文件…

驾驭不断发展的人工智能世界

从很多方面来看&#xff0c;历史似乎正在重演。许多企业正争相采用生成式人工智能 (Gen AI)&#xff0c;就像它们争相采用云计算一样&#xff0c;原因也是一样的&#xff1a;效率、成本节约和竞争优势。 然而&#xff0c;与云一样&#xff0c;GenAI 仍是一项发展中的技术&…

机器学习(西瓜书)第 9 章 聚类

9.1 聚类任务和距离计算 在”无监督学习“中&#xff0c;训练样本的标记信息是未知的&#xff0c;目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律&#xff0c;为进一步的数据分析提供基础.此类学习任务中研究最多、应用最广的是“聚类”(clustering). 聚类试图…

咖啡果实病虫害检测系统源码分享

咖啡果实病虫害检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Comput…

【最新综述】基于深度学习的超声自动无损检测(上)

Deep learning in automated ultrasonic NDE – Developments, axioms and opportunities 传统上&#xff0c;超声无损检测数据分析一直由训练有素的操作员在基本自动化工具的支持下手动解释数据。最近&#xff0c;开始出现许多针对个别无损检测任务&#xff08;数据预处理、缺…

即插即用篇 | YOLOv10 引入矩形自校准模块RCM | ECCV 2024

本改进已同步到YOLO-Magic框架! 语义分割是许多应用的重要任务,但要在有限的计算成本下实现先进性能仍然非常具有挑战性。在本文中,我们提出了CGRSeg,一个基于上下文引导的空间特征重建的高效且具有竞争力的分割框架。我们精心设计了一个矩形自校准模块,用于空间特征重建和…

HarmonyOS开发实战( Beta5.0)橡皮擦案例实践详解

鸿蒙HarmonyOS开发往期必看&#xff1a; HarmonyOS NEXT应用开发性能实践总结 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门到精通&#xff09; 介绍 本示例通过ohos.graphics.drawing库和blendMode颜色混合实…

Obsidian git sync error / Obsidian git 同步失敗

Issue: commit due to empty commit message Solution 添加commit資訊&#xff0c;確保不留空白 我的設置&#xff1a;auto-backup: {{hostname}}/{{date}}/

ESXI8.0 vsphere vcenter 多网卡多网段配置

一般来说服务器至少两块网卡&#xff0c;安装esxi后一种方案是利用闲置网卡建立多上传链路&#xff0c;聚合&#xff0c;另一种是配置多网段进行虚拟机隔离&#xff0c;网上也没找到讲的很清楚的&#xff0c;经过多种尝试终于学会&#xff0c;记录分享一下 首先物理交换机的随…

谷歌开发者账号被封会影响AdMob吗?收款卡更换修改有什么限制?

众所周知&#xff0c;AdMob作为谷歌旗下的广告平台&#xff0c;是众多开发者的主要变现渠道之一。那在开发者账号被封的情况下&#xff0c;AdMob账号是否会也受到波及&#xff1f; 虽说通常谷歌开发者账号被封并不直接等同于AdMob账号被封&#xff0c;但还是会互相影响的。即使…

C 和 C++ struct 的区别?

目录 1. 默认访问权限 2. 面向对象特性 3. 继承和多态 4. 访问控制 5. 使用习惯 6. 默认继承权限 1. 默认访问权限 C 语言&#xff1a;在 C 中&#xff0c;struct 中的所有成员默认是 public&#xff08;可直接访问&#xff09;。C 语言&#xff1a;在 C 中&#xff0c;…

BFS广度优先搜索解决迷宫问题

前言 BFS广度优先搜索解决迷宫问题 迷宫问题 原题目&#xff1a;迷宫由n行m列的单元格组成(n,m都小于等于50)&#xff0c;每个单元格要吗是空地要吗是障碍物。现在请你找到一条从起点到终点的最短路径长度。 分析 首先我们将起点入队&#xff0c; 然后队首节点可拓展的点入…

总线性能指标及标准

一、总线性能指标 1.总线周期 一次总线操作所需的时间&#xff08;包括申请阶段、寻址阶段、传输阶段和结束阶段&#xff09;&#xff0c;通常 由若干个总线时钟周期构成。 2.总线时钟周期 即机器的时钟周期。计算机有一个统一的时钟&#xff0c;以控制整个计算机的各个部件…

Android 系统下:普通应用无缝安装,Launcher 应用安装遭遇罕见障碍解析

目录 一、场景 1.1 错误分析 1.2 解决方法尝试 1.2.1 检查应用的安装位置 1.2.2 使用ADB安装 1.2.3 检查APK的签名 1.2.4 检查可用的内部存储空间 1.2.5 将应用程序安装到设备的内部存储空间 1.2.6 重置设备&#xff08;谨慎使用&#xff09; 1.2.7 获取Root权限&…

【Qt】选择器

选择器概况 QSS选择器支持以下几种&#xff1a; 选择器示例说明 全局选择器 * 选择所有的 widget. 类型选择器 (type selector) QPushButton 选择所有的 QPushButton 和 其⼦类 的控件. 类选择器 (class selector) .QPushButton 选择所有的 QPushButton 的控件. 不会选…

C++——STL(list类)

1.list的介绍 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。 2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xff0c;在节点中通过指针指向其前一个元素和后一个元素…