目录:
5 HIVE开发
5.1 Hive JDBC开发
5.2 Hive UDF
6 Hive的体系结构
6.2 Thrift服务器
6.3 Driver
6.4 元数据库Metastore
6.5 数据库连接模式
6.5.1 单用户模式
6.5.2 多用户模式
6.5.3 远程服务模式
7 Hive技术原理解析
7.1 Hive工作原理
7.2.1 Hive编译器的组成
7.2.2 Query Compiler
7.2.3新版本Hive也支持Tez或Spark作为执行引擎
8 Hive优化

5 HIVE开发

5.1 Hive JDBC开发

若想进行Hive JDBC的开发,需要开启HiveServer2服务,这里要参考第二章节的”连接方式”中的HiveServer2/beeline章节。

其中一个Hive JDBC的案例如下:

启动完HiveServer2服务,就提供JDBC服务了,类似:

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.DriverManager;public class HiveJdbcClient {private static String driverName = "org.apache.hive.jdbc.HiveDriver";/*** @param args* @throws SQLException*/public static void main(String[] args) throws SQLException {try {Class.forName(driverName);} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();System.exit(1);}//replace "hive" here with the name of the user the queries should run asConnection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "hive", "");Statement stmt = con.createStatement();String tableName = "testHiveDriverTable";stmt.execute("drop table if exists " + tableName);stmt.execute("create table " + tableName + " (key int, value string)");// show tablesString sql = "show tables '" + tableName + "'";System.out.println("Running: " + sql);ResultSet res = stmt.executeQuery(sql);if (res.next()) {System.out.println(res.getString(1));}// describe tablesql = "describe " + tableName;System.out.println("Running: " + sql);res = stmt.executeQuery(sql);while (res.next()) {System.out.println(res.getString(1) + "\t" + res.getString(2));}// load data into table// NOTE: filepath has to be local to the hive server// NOTE: /tmp/a.txt is a ctrl-A separated file with two fields per lineString filepath = "/tmp/a.txt";sql = "load data local inpath '" + filepath + "' into table " + tableName;System.out.println("Running: " + sql);stmt.execute(sql);// select * querysql = "select * from " + tableName;System.out.println("Running: " + sql);res = stmt.executeQuery(sql);while (res.next()) {System.out.println(String.valueOf(res.getInt(1)) + "\t" + res.getString(2));}// regular hive querysql = "select count(1) from " + tableName;System.out.println("Running: " + sql);res = stmt.executeQuery(sql);while (res.next()) {System.out.println(res.getString(1));}}
}

5.2 Hive UDF

简单UDF示例
前期准备,要把hive的lib包导入到工程中,其中UDF依赖的是hive-exec-2.3.4.jar(针对hive2.3.4版本)。也就是说要把$HIVE_HOME\lib中的内容引入到工程中。若用到hadoop中的一些api,也把hadoop的相关的jar包也引入进去。
1、先开发一个java类,继承UDF,并重载evaluate方法。

package hiveudf;import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;public class ToLowerCase extends UDF {public Text evaluate(final Text s) {if(s == null) {returnnull;}returnnew Text(s.toString().toLowerCase());}
}

2、打成jar包上传到服务器
3、将jar包添加到hive的classpath
4、hive> add jar /home/udf/hivedata/udf.jar;
5、hive>创建临时函数与开发好的java class关联

hive> create temporary function toLowercase as 'hiveudf.ToLowerCase';
OK
Time taken: 0.039 seconds
hive>

6、即可在HiveQL中使用自定义的函数toLowercase

hive> select toLowercase("ZHANGSAN") from dual;
OK
zhangsan
Time taken: 0.122 seconds, Fetched: 1 row(s)
hive>

再如判断身份证的一个UDF函数:

package com.xxx.xxx.udf;import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;import org.apache.hadoop.hive.ql.exec.UDF;/*** 身份证校验UDF* * @author xxx* @date 2019年5月29日* *       1.身份证号码构成:6位地址编码+8位生日+3位顺序码+1位校验码 *       2.验证15位,18位证件号码是否有效; *       3.15位号码将直接转为18位;【这一步不做转化】*       4.校验身份证号码除了校验位是否为数值,校验省份、出生日期*          省份编码[11, 12, 13, 14, 15, 21, 22, 23, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43,44, 45, 46, 50, 51, 52, 53, 54, 61, 62, 63, 64, 65, 71, 81, 82, 91]*       5.校验位不正确的会被正确的替代.【最后1位是根据前面17位生成的,如果不正确,会生成正确的检验码进行修正.】*       6.出生日期逻辑有效性,即是否1864年前出生,是否当前日期后出生已校验。*       7.1984年4月6日国务院发布《中华人民共和国居民身份证试行条例》,并且开始颁发第一代居民身份证,按寿命120岁验证,年龄区间是1864年至今。 *       8.15位证件号码转换未考虑1900年前出生的人【这一步不做转化】*       9.去除null,去除空串,去除非15位和18位*       10.判断前17位是否含非数字字符.*       11.判断非法日期,如生日所在日期(2019年2月29日)不存在.* *  add jar hdfs://tqHadoopCluster/xxx/udf/idCardUdf.jar;*  create temporary function cheakIdCardNumber as 'com.xxx.xxx.udf.IdNumber';*  这这就可以使用cheakIdCardNumber(String idCardNumber)进行校验身份证了*/
public class IdNumber extends UDF {private final static int NEW_CARD_NUMBER_LENGTH = 18;private final static int OLD_CARD_NUMBER_LENGTH = 15;/** 开始年份 */private final static int YEAR_BEGIN = 1864;/** 18位身份证中最后一位校验码 */private final static char[] VERIFY_CODE = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};/** 18位身份证中,各个数字的生成校验码时的权值 */private final static int[] VERIFY_CODE_WEIGHT = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};/** 省份编码集合 */private final static int[] PROVINCE_CODE = {11, 12, 13, 14, 15, 21, 22, 23, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43,44, 45, 46, 50, 51, 52, 53, 54, 61, 62, 63, 64, 65, 71, 81, 82, 91};private final static Pattern PATTERN = Pattern.compile("[0-9]*");private final static ThreadLocal<SimpleDateFormat> THREADLOCAL = new ThreadLocal<SimpleDateFormat>() {@Overrideprotected SimpleDateFormat initialValue() {// 直接返回nullreturn null;}};/*public static void main(String[] args) {IdNumber idNumber = new IdNumber();//String evaluate = idNumber.evaluate("125197791116622");// 125197  791116622// 12519719791116622X// 330304198705234817String evaluate = idNumber.evaluate("330304201902284815");System.out.println(evaluate);}*/public String evaluate(String cardNumber) {// 1.去除NULLif (cardNumber == null) {return null;} Date dNow = new Date();SimpleDateFormat ft = new SimpleDateFormat("yyyy");int yearEnd = Integer.parseInt(ft.format(dNow));cardNumber = cardNumber.trim();// 2.去除空字符串if (cardNumber.length() == 0) {return null;}// 3.去除长度不正确的,非15或18位if (NEW_CARD_NUMBER_LENGTH != cardNumber.length() & OLD_CARD_NUMBER_LENGTH != cardNumber.length()) {return null;}// 4.如果是18位if (NEW_CARD_NUMBER_LENGTH == cardNumber.length()) {// 4.1.前17位不为数值,返回nullif (isNumeric(cardNumber.substring(0, 17)) == false) {return null;}// 校验位修正,判断最后一位是否正确if (IdNumber.calculateVerifyCode(cardNumber) != cardNumber.charAt(17)) {//如果最后一位校验码不会,则修正校验码.cardNumber = contertToNewCardNumber(cardNumber, NEW_CARD_NUMBER_LENGTH);}// 身份证前2位是省份编码, 如果编码不在已知集合中, 返回null.if (isProvince(cardNumber.substring(0, 2)) == false) {return null;} // 非法日期转换前后不一致, 如当前年份不存在2月29日, 返回nullif (isDate(cardNumber.substring(6, 14)) == false) {return null;}// 1984年4月6日国务院发布《中华人民共和国居民身份证试行条例》,并且开始颁发第一代居民身份证,按寿命120岁验证,年龄区间是1864年至今。 小于1984的为非法.int birthdayYear = Integer.parseInt(cardNumber.substring(6, 10));if (birthdayYear < YEAR_BEGIN) {return null;}// 如果出生年月大于当前日期, 返回nullif (birthdayYear > yearEnd) {return null;}}// 5.如果是15位:15位身份证号码不转换为18位.if (OLD_CARD_NUMBER_LENGTH == cardNumber.length()) {// 前15位中含非数字字符, 返回nullif (isNumeric(cardNumber) == false) {return null;}// 省份编码不在在已知集合中, 返回nullif (isProvince(cardNumber.substring(0, 2)) == false) {return null;}// 非法日期转换前后不一致, 返回nullif (isDate("19" + cardNumber.substring(6, 12)) == false) {return null;}//将15位身份证转化为18位,考虑1900年前出生的人。//cardNumber = contertToNewCardNumber(cardNumber, OLD_CARD_NUMBER_LENGTH);}return cardNumber;}/*** 校验码(第十八位数):* * 十七位数字本体码加权求和公式 S = Sum(Ai * Wi), i = 0...16 ,先对前17位数字的权求和; * Ai:表示第i位置上的身份证号码数字值 * Wi:表示第i位置上的加权因子 * Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2; * 计算模 Y = mod(S, 11) 通过模得到对应的校验码*  Y: 0 1 2 3 4 5 6 7 8 9 10 *  校验码: 1 0 X 9 8 7 6 5 4 3 2* * @param cardNumber* @return*/private static char calculateVerifyCode(CharSequence cardNumber) {int sum = 0;for (int i = 0; i < NEW_CARD_NUMBER_LENGTH - 1; i++) {char ch = cardNumber.charAt(i);sum += ((int)(ch - '0')) * VERIFY_CODE_WEIGHT[i];}//VERIFY_CODE = {'1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'};return VERIFY_CODE[sum % 11];}/*** A-把15位身份证号码转换到18位身份证号码 15位身份证号码与18位身份证号码的区别为: * 1. 15位身份证号码中,"出生年份"字段是2位,转换时需要补入"19",表示20世纪* 2. 15位身份证无最后一位校验码。18位身份证中,校验码根据根据前17位生成 B-18位身份证号码校验位修复* * @param cardNumber* @return*/private static String contertToNewCardNumber(String idCardNumber, int cardNumberLength) {StringBuilder buf = new StringBuilder(NEW_CARD_NUMBER_LENGTH);if (cardNumberLength == NEW_CARD_NUMBER_LENGTH) {buf.append(idCardNumber.substring(0, 17));buf.append(IdNumber.calculateVerifyCode(buf));} else if (cardNumberLength == OLD_CARD_NUMBER_LENGTH) {buf.append(idCardNumber.substring(0, 6));buf.append("19");buf.append(idCardNumber.substring(6));buf.append(IdNumber.calculateVerifyCode(buf));}return buf.toString();}/*** 功能:判断字符串是否为数字* * @param str* @return*/private static boolean isNumeric(String str) {Matcher isNum = PATTERN.matcher(str);if (isNum.matches()) {return true;} else {return false;}}/*** 功能:判断前两位是在省份编码集合内* @param province* @return*/private static boolean isProvince(String province) {int prov = Integer.parseInt(province);for (int i = 0; i < PROVINCE_CODE.length; i++) {if (PROVINCE_CODE[i] == prov) {return true;}}return false;}public static SimpleDateFormat getDateFormat() {SimpleDateFormat df = (SimpleDateFormat)THREADLOCAL.get();if (df == null) {df = new SimpleDateFormat("yyyyMMdd");df.setLenient(false);THREADLOCAL.set(df);}return df;}/*** 功能:判断出生日期字段是否为日期* * @param str* @return*/private static boolean isDate(String birthDate) {try {SimpleDateFormat sdf = getDateFormat();//如果不合法,会抛异常, Unparseable date: "20190229"Date cacheBirthDate = sdf.parse(birthDate);if (sdf.format(cacheBirthDate).equals(birthDate) == false) {// 非法日期转换前后不一致return false;}} catch (Exception e) {//e.printStackTrace();return false;}return true;}
}

6 Hive的体系结构

下面是Hive的架构图:
在这里插入图片描述
图 1 Hive体系结构

6.1用户接口

(1)、CLI:CLI启动的时候,会同时启动一个Hive副本。
(2)、JDBC客户端:封装了Thrift,java应用程序,可以通过指定的主机和端口连接到在另外一个进程中运行的hive服务器。
(3)、ODBC客户端:ODBC驱动允许支持ODBC协议的应用程序连接到Hive
(4)、WUI接口:通过浏览器访问Hive

6.2Thrift服务器

基于socket通讯,支持跨语言。Hive Thrift服务简化了在多编程语言中运行hive的命令。绑定支持C++,Java,PHP,Python和Ruby语言。

6.3 Driver

核心组件,整个Hive的核心,该组件包括Complier、Optimizer和Executor; 解释器、编译器、优化器完成HQL查询语句从词法分析、语法分析、编译、优化以及查询计划的生成。生成的查询计划存储在HDFS中,并在随后有MapReduce调用执行。

6.4 元数据库Metastore

Hive的数据由两部分组成:数据文件和元数据。元数据用于存放Hive库的基础信息,它存储在关系数据库中,例如mysql、Oracle、derby。元数据包括:数据库信息、表达的名字,表的列和分区及其属性,表的属性,表的数据所在目录等。
Hadoop
Hive的数据文件存储在HDFS中,大部分的查询由MapReduce完成。(对于包含*的查询,比如select * from tbl不会生成MapReduce作业)

6.5数据库连接模式

6.5.1 单用户模式

此模式连接到一个In-memory的数据库Derby,Derby数据是Hive自带的数据库,默认只能有一个连接,用户连接到Hive后,会在当前目录生成一个metastore文件来存放元数据信息,不同的用户连接到Hive看到的信息不一致。

6.5.2多用户模式

通过网络连接到一个关系型数据库中,如MySQL,是最进程使用到的模式。这样多个用户操作的元数据信息统一放到关系型数据库,这样不同用户可以操作相同的对象。

6.5.3 远程服务模式

用于非Java客户端访问元数据,在服务器启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据。

7 Hive技术原理解析

7.1 Hive工作原理

如下图所示:
在这里插入图片描述

流程大致步骤为:

  1. 用户提交查询等任务给Driver。
  2. 编译器获得该用户的任务Plan。
  3. 编译器Compiler根据用户任务去MetaStore中获取需要的Hive的元数据信息。
  4. 编译器Compiler得到元数据信息,对任务进行编译,先将HiveQL转换为抽象语法树,然后将抽象语法树转换成查询块,将查询块转化为逻辑的查询计划,重写逻辑查询计划,将逻辑计划转化为物理的计划(MapReduce), 最后选择最佳的策略。
  5. 将最终的计划提交给Driver。
  6. Driver将计划Plan转交给ExecutionEngine去执行,获取元数据信息,提交给JobTracker或者SourceManager执行该任务,任务会直接读取HDFS中文件进行相应的操作。
  7. 获取执行的结果。
  8. 取得并返回执行结果。

创建表时:
1、解析用户提交的Hive语句对其进行解析分解为表、字段、分区等Hive对象。根据解析到的信息构建对应的表、字段、分区等对象,从SEQUENCE_TABLE中获取构建对象的最新的ID,与构建对象信息(名称、类型等等)一同通过DAO方法写入元数据库的表中,成功后将SEQUENCE_TABLE中对应的最新ID+5.实际上常见的RDBMS都是通过这种方法进行组织的,其系统表中和Hive元素一样显示了这些ID信息。通过这些元数据可以很容易的读取到数据。

工作原理的另外一种说法是:
接收到一个sql,后面做的事情包括:
1.词法分析/语法分析
使用antlr将SQL语句解析成抽象语法树-AST
2.语义分析
从Megastore获取模式信息,验证SQL语句中队表名,列名,以及数据类型的检查和隐式转换,以及Hive提供的函数和用户自定义的函数(UDF/UAF)
3.逻辑计划生产
生成逻辑计划-算子树
4.逻辑计划优化
对算子树进行优化,包括列剪枝,分区剪枝,谓词下推等
5.物理计划生成
将逻辑计划生产包含由MapReduce任务组成的DAG的物理计划
6.物理计划执行
将DAG发送到Hadoop集群进行执行
7.将查询结果返回

流程如下图:
在这里插入图片描述

7.2 Hive编译过程

转化过程:
基本流程为:将HiveQL转化为”抽象语法树”—>”查询块”—>”逻辑查询计划””物理查询计划”最终选择最佳决策的过程。

优化器的主要功能:

  1. 将多Multiple join 合并为一个Muti-way join
  2. 对join、group-by和自定义的MapReduce操作重新进行划分。
  3. 消减不必要的列。
  4. 在表的扫描操作中推行使用断言。
  5. 对于已分区的表,消减不必要的分区。
  6. 在抽样查询中,消减不必要的桶。
  7. 优化器还增加了局部聚合操作用于处理大分组聚合和增加再分区操作用于处理不对称的分组聚合。

7.2.1 Hive编译器的组成

在这里插入图片描述
对于此的说明,网络上的另外一种说明:
在这里插入图片描述
在这里插入图片描述

7.2.2 Query Compiler

在这里插入图片描述
网络上描述上述过程的另外一张图(同样是Query Compiler过程的另外一种画法):
在这里插入图片描述

为了说明上述执行流程,需要辅助一个简单的Hive查询例子:

案例1-1:Hive执行以下语句:

INSERT OVERWRITE TABLE access_log_temp2
SELECT a.user, a.prono, a.maker, a.price FROM access_log_hbase a JOIN product_hbase p 
ON (a.prono = p.prono)

具体执行流程:
(1)Parser生成AST
在这里插入图片描述
HQL生成的语法解析树(AST):
HIVE主要是利用UNDERLER处理得到上面的抽象语法树(这棵抽象语法树主要是根据underller的分词规则来确定根结点和左右孩子的,Hive的这部分处理是利用underller进行的)。
(2)Semantic Analyzer生成Query Block(QB)
在这里插入图片描述

Tip:
第二步会将抽象语法树按照QB的方式转换为由QB组成的树。通常情况下,每一个From子句会生成一个QB(Query Block)。通过查看具体有多少个QB就可查看Hive sql语句最终优化成多少个MapReduce的作业。

QB是由两个子数据结构组成即MetaData(元数据信息)和ParseInfo。语义分析的主要过程是向QB中填充元数据,另一个过程则是摘取AST的子节点,存储在ParseInfo中。Semantic Analyzer过程主要是经过以上两个过程,然后把QB关联起来形成一个由QB构成的图.

Logical Plan generator会将上一步生成的Query Block按照前文讲的几种的Operator,转换为Operator Tree。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于Hive查询语句会将最后的查询结果写入到表access_log_temp2中,所以QB的MetaData中的Name To Destination…会转化为Operator Tree中的FileSinkOperator(文件下沉)。
最后会生成如下的OP Tree:

Logical Plan Generator (Result)
在这里插入图片描述

这里就得到了一个有向无环图(DAG),当在传统数据库中会对上图进行优化然后执行;而在Hadoop集群中这张图是不行的,因为在集群中执行需要对这张图进行优化、切片,分布式化转化为MapReduce作业然后执行。

7.2.3新版本Hive也支持Tez或Spark作为执行引擎:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

物理计划可以通过hive的Explain命令输出:
例如:

0: jdbc:hive2://master:10000/dbmfz> explain select count(*) from record_dimension;
+------------------------------------------------------------------------------------------------------+--+
|                                               Explain                                                |
+------------------------------------------------------------------------------------------------------+--+
| STAGE DEPENDENCIES:                                                                                  |
|   Stage-1 is a root stage                                                                            |
|   Stage-0 depends on stages: Stage-1                                                                 |
|                                                                                                      |
| STAGE PLANS:                                                                                         |
|   Stage: Stage-1                                                                                     |
|     Map Reduce                                                                                       |
|       Map Operator Tree:                                                                             |
|           TableScan                                                                                  |
|             alias: record_dimension                                                                  |
|             Statistics: Num rows: 1 Data size: 543 Basic stats: COMPLETE Column stats: COMPLETE      |
|             Select Operator                                                                          |
|               Statistics: Num rows: 1 Data size: 543 Basic stats: COMPLETE Column stats: COMPLETE    |
|               Group By Operator                                                                      |
|                 aggregations: count()                                                                |
|                 mode: hash                                                                           |
|                 outputColumnNames: _col0                                                             |
|                 Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE    |
|                 Reduce Output Operator                                                               |
|                   sort order:                                                                        |
|                   Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE  |
|                   value expressions: _col0 (type: bigint)                                            |
|       Reduce Operator Tree:                                                                          |
|         Group By Operator                                                                            |
|           aggregations: count(VALUE._col0)                                                           |
|           mode: mergepartial                                                                         |
|           outputColumnNames: _col0                                                                   |
|           Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE          |
|           File Output Operator                                                                       |
|             compressed: false                                                                        |
|             Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: COMPLETE        |
|             table:                                                                                   |
|                 input format: org.apache.hadoop.mapred.SequenceFileInputFormat                       |
|                 output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat             |
|                 serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe                            |
|                                                                                                      |
|   Stage: Stage-0                                                                                     |
|     Fetch Operator                                                                                   |
|       limit: -1                                                                                      |
|       Processor Tree:                                                                                |
|         ListSink                                                                                     |
|                                                                                                      |
+------------------------------------------------------------------------------------------------------+--+
rows selected (0.844 seconds)

8 Hive优化

1、join连接时的优化:当三个或多个以上的表进行join操作时,如果每个on使用相同的字段连接时只会产生一个mapreduce。
2、join连接时的优化:当多个表进行查询时,从左到右表的大小顺序应该是从小到大。原因:hive在对每行记录操作时会把其他表先缓存起来,直到扫描最后的表进行计算
3、在where字句中增加分区过滤器。
4、当可以使用left semi join 语法时不要使用inner join,前者效率更高。原因:对于左表中指定的一条记录,一旦在右表中找到立即停止扫描。
5、如果所有表中有一张表足够小,则可置于内存中,这样在和其他表进行连接的时候就能完成匹配,省略掉reduce过程。设置属性即可实现,set hive.auto.covert.join=true; 用户可以配置希望被优化的小表的大小 set hive.mapjoin.smalltable.size=2500000; 如果需要使用这两个配置可置入$HOME/.hiverc文件中。
6、同一种数据的多种处理:从一个数据源产生的多个数据聚合,无需每次聚合都需要重新扫描一次。
例如:insert overwrite table student select * from employee; insert overwrite table person select * from employee;
可以优化成:from employee insert overwrite table student select * insert overwrite table person select *
7、limit调优:limit语句通常是执行整个语句后返回部分结果。set hive.limit.optimize.enable=true;
8、开启并发执行。某个job任务中可能包含众多的阶段,其中某些阶段没有依赖关系可以并发执行,开启并发执行后job任务可以更快的完成。设置属性:set hive.exec.parallel=true;
9、hive提供的严格模式,禁止3种情况下的查询模式。
a:当表为分区表时,where字句后没有分区字段和限制时,不允许执行。
b:当使用order by语句时,必须使用limit字段,因为order by 只会产生一个reduce任务。
c:限制笛卡尔积的查询。
10、合理的设置map和reduce数量。
11、jvm重用。可在hadoop的mapred-site.xml中设置jvm被重用的次数。

打个赏呗,您的支持是我坚持写好博文的动力
在这里插入图片描述

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 2020最新版Python学习路线图

    Python学习路线图网上有很多版本,前川网的这套Python学习路线图是2020最新版的,是根据企业招聘的要求不断更新的学习路线图,对之前的Pyhton学习路线图做了一些调整和改变,想要用Python爬虫或者深度学习人工智能的看这套Python学习路线图就行了。这套Python学习路线图一共分…...

    2024/4/26 11:22:06
  2. Data Link Layer——数据链路层

    数据链路层链路(物理链路)是一个结点到相邻结点的一段物理线路,数据链路(逻辑链路)是在链路的基础上增加了一些必要硬件(如网络适配器)和软件(如协议的实现)数据链路层协议解决三个基本问题,分别是封装成帧、透明传输、差错检测封装成帧:使用SOH字符和EOT字符进行帧…...

    2024/4/27 12:02:49
  3. 【Tensor】(张量)的创建

    every blog every motto: Just live your life cause we don’t live twice. 0. 前言 本节主要讲解有关tensor(张量)的创建 1. 正文1.1 numpy、list -> tensor tf.convert_to_tensor(np.ones([2,3]))tf.convert_to_tensor([1,2])tf.convert_to_tensor([1,2.])tf.convert_t…...

    2024/4/24 2:15:28
  4. 自动窗宽窗位

    自动窗宽窗位可以找到合理的灰度值区间段,在这个区间段最大程度的保留所关注的内容或者整张图像的主要内容。窗宽是灰度值区间的宽度,窗位一般是灰度值区间的中点位置,窗宽窗位的设置是为了最大程度的展现观察者所需要的内容。 窗宽窗位是为了展现图像上的内容,在图像的灰度…...

    2024/4/27 12:03:54
  5. Uubuntu16.04安装华硕ASUS Xtion驱动并简单使用

    版本:Ubuntu16.04 kinetic1.安装相关Xtion驱动sudo apt-get install ros-kinetic-rgbd-launch ros-kinetic-openni2-camera ros-kinetic-openni2-launch2.安装可视化交互插件qrtsudo apt-get install ros-kinetic-rqt ros-kinetic-rqt-common-plugins ros-kinetic-rqt-robot-pl…...

    2024/4/18 19:15:07
  6. MVC中Ajax实现异步无刷新请求---校验表单字段

    关于Ajax的介绍和分析,请看我之前写的文章在Jquery和JavaScript分栏中。 案例;在表单页面中,输入用户姓名,进行异步校验 采用Ajax异步处理,向服务器端发送请求,然后服务器端响应返回数据给客户端。 根据服务器端返回结果,在前台进行处理。 数据表UserInfos:1.准备实体类: usin…...

    2024/4/19 15:09:05
  7. 基于SpringBoot+MyBatis框架的答辩管理系统

    基于SpringBoot+MyBatis框架的答辩管理系统背景系统环境系统功能系统截图 背景 为解决答辩管理工作效率低下的问题,开发一款基于Web的研究生答辩智能化管理系统。以服务师生为导向,结合学院专业情况的答辩管理规则。简化答辩管理流程,使答辩管理员无须人为的分配考场,并且一定程…...

    2024/4/27 13:55:30
  8. 【动态规划】 LeetCode #221 最大正方形

    题目链接: LeetCode #221 最大正方形 题目描述: #221. 最大正方形 在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。 示例: 输入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0 输出: 4 通过次数52,943 | 提交次数124,937 分析: 遇到动态规划问题…...

    2024/4/16 22:51:16
  9. Java多线程倒计时同步输出

    Java多线程倒计时同步输出 如下代码,简洁实现count个线程,同步打印倒计时: public class ThreadSync {public static void main(String[] args) {// 开启5个线程,同步输出倒计时30s,threadMethod(5, 30);}// count 线程数量,seconds倒计时秒数public static void threadM…...

    2024/4/27 14:49:20
  10. UE4源码编译,报错GenerateProjectFiles error的几个办法

    第一种检查,红框内没勾的 勾上第二种没勾的勾上其他的情况 ue的AnswerHub有些别人提到的相关问题,连接如下 https://answers.unrealengine.com/questions/724854/view.html...

    2024/4/16 22:51:04
  11. vue项目刷新当前页面

    vue项目刷新当前页面 场景: 有时候我们在vue项目页面做了一些操作,需要刷新一下页面。解决的办法及遇到的问题:this.$router.go(0)。这种方法虽然代码很少,只有一行,但是体验很差。页面会一瞬间的白屏,体验不是很好 用vue-router重新路由到当前页面,页面是不进行刷新的。…...

    2024/4/27 14:21:02
  12. OpenCV4学习笔记(72)——ArUco模块之aruco标记的创建与检测

    今天要整理记录的是OpenCV中ArUco模块的基础内容,包含aruco标记的创建与检测。要注意的是ArUco模块是包含在OpenCV的contrib拓展库中的,需要自行下载OpenCV基础库和contrib拓展库进行联合编译才可以使用,这里就不整理编译的过程了,不得不说编译的时候还是有好多坑的。。。如…...

    2024/4/24 6:27:17
  13. IMU学习笔记

    噪声 噪声输出的功率谱密度,一般以g/√Hz的方式给出,带宽越高噪声越大,带宽大致等于输出数据速速率的一半,因此输出速率设定越高,噪声越大。 总噪声由噪声密度和带宽(BW)决定:总噪声=噪声密度SQRT(1.6BW)。对于不同应用要选择合适的带宽以降低总噪声。通常人的各种运动…...

    2024/4/27 16:11:56
  14. tree 命令

    CSDN 今天倒闭了吗? CSDN 今天倒闭了吗? CSDN 今天倒闭了吗? title: Linux 学习记录:tree 显示树形目录结构 date: 2020-05-13 21:54:13 categories: - Linux tags: - tree - 目录结构 这篇文章总结下 Linux 和 Windows 中 tree 命令的常用使用方法。 1. 背景 有时候在进行…...

    2024/4/24 6:27:20
  15. Android附近:如何集成Android和Android的东西

    本文将探讨如何使用Android Nearby,展示如何集成Android和Android Things。我们可以使用几种策略来集成Android和Android Things。Android Nearby技术就是其中之一。Android提供了一组API,可以简化两个不同设备之间的数据交换。一个有趣的方面是Android Nearby也支持iOS操作系…...

    2024/4/24 6:27:17
  16. 数字电子技术实验(3)

    1.(单选题)MSI的全拼和含义是什么? A. management system indicator B. medium scale integration。 C. maintenance supply item (ization) D. metal silicon。 您的答案: B 2.(单选题)本实验需要的芯片引脚要复习指导书附录几的内容? A. 附录一。 B. 附录三。 C. 附录…...

    2024/4/24 6:27:09
  17. 腾讯精选练习:89. 格雷编码(找规律做位运算)

    89. 格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案,你也只需要返回其中一种。 格雷编码序列必须以 0 开头。 示例 1: 输入: 2 输出: [0,1,3,2] 解释:…...

    2024/4/24 6:27:12
  18. Python之collections容器数据类型

    在介绍collections之前,大都知道python中已经有一些数据类型,诸如list,tuple,dict这类型,而collections可以理解对上述类型的一个扩展。下面介绍一下collections中常用到的几种数据类型1.namedtuple()python中的tuple是可迭代的,可哈希的,但是不可修改name_list = (&quo…...

    2024/4/24 6:27:14
  19. 小程序跨页面传值的方法

    Wxml:data-shipingid ,前面的data-是固定的写法,后面的名字是自己取在bindtap点击事件那里定义参数,里面是要传过去的那个值<block wx:for="{{shiping}}" wx:key="index" > <view class="shiping" bindtap="shiping" data…...

    2024/4/24 6:27:06
  20. 爬虫二

    三、re模块import re # 结果一定是列表# 方法一 r_list=re.findall(正则表达式,html,re.S)# re.S 使其可以匹配\n # eg print(re.findall(abc,abcdefeabc,re.S)) # [abc, abc]# 方法二 # 创建正则编译对象pattern = re.compile(正则表达式,re.S) r_list = pattern.findall(html…...

    2024/4/24 6:27:05

最新文章

  1. VUE3----Swiper滑动切换图片

    Swiper滑动切换图片 可以切换焦点图&#xff0c;兼容小程序 <template><view class"cc-swiper-container" v-if"imageList.length > 0"><swiper class"swiper":class"swiperClassName" :circular"circular&q…...

    2024/4/27 17:30:41
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. LeetCode-46. 全排列【数组 回溯】

    LeetCode-46. 全排列【数组 回溯】 题目描述&#xff1a;解题思路一&#xff1a;回溯。回溯三部曲解题思路二&#xff1a;0解题思路三&#xff1a;0 题目描述&#xff1a; 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案…...

    2024/4/26 19:51:44
  4. 数字化时代多系统安全运维解决方案

    添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&…...

    2024/4/26 1:46:00
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/27 4:00:35
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/25 18:39:22
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/26 21:56:58
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/27 9:01:45
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/26 16:00:35
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/26 22:01:59
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/27 11:43:08
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/27 8:32:30
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57