世界快资讯丨Spark-Kafka kafka.common.OffsetOutOfRangeException
问题描述
国庆前启动spark streaming任务去消费了kafka,后来由于其他原因停止了,放假回来后,重启spark任务后,报kafka.common.OffsetOutOfRangeException
,期初我以为是ZK重启造成的就换了个group.id正常了,今天看到一篇文章才知道真实的原因
kafka会定时清理日志
当我们的任务开始的时候,如果之前消费过某个topic,那么这个topic会在zk上设置offset,我们一般会去获取这个offset来继续从上次结束的地方继续消费,但是kafka定时清理日志的功能,比如定时一天一清理,那么如果你的offset是前天消费的offset,那么这个时候你再去消费,自然而然的你的offset肯定已经不在有效范围内,所以就报OffsetOutOfRangeException
了
(资料图)
解决方法
也很简单,就是去判断一下zk中的offset是否小于topic最小的offset,如果小于的话,就把最小的offset设置到zk中
代码
def setOrUpdateOffsets(implicit topics: Set[String], kc: KafkaCluster): Unit =
{ topics.foreach(topic =>
{ println("current topic:" + topic) val groupId = Config.kafkaConf.getOrElse("group.id", "")
var hasConsumed = true val kafkaPartitionsE = kc.getPartitions(Set(topic))
if (kafkaPartitionsE.isLeft) throw new SparkException("get kafka partition failed:")
val kafkaPartitions = kafkaPartitionsE.right.get
val consumerOffsetsE = kc.getConsumerOffsets(groupId, kafkaPartitions)
if (consumerOffsetsE.isLeft) hasConsumed = false if (hasConsumed) {
//如果有消费过,有两种可能,如果streaming程序执行的时候出现kafka.common.OffsetOutOfRangeException,
说明zk上保存的offsets已经过时了,即kafka的定时清理策略已经将包含该offsets的文件删除。
//针对这种情况,只要判断一下zk上的consumerOffsets和leaderEarliestOffsets的大小,
如果consumerOffsets比leaderEarliestOffsets还小的话,说明是过时的offsets,这时把leaderEarliestOffsets更新为consumerOffsets
val leaderEarliestOffsets = kc.getEarliestLeaderOffsets(kafkaPartitions).right.get println(leaderEarliestOffsets)
val consumerOffsets = consumerOffsetsE.right.get
val flag = consumerOffsets.forall { case (tp, n) => n < leaderEarliestOffsets(tp).offset }
if (flag) { println("consumer group:" + groupId + " offsets已经过时,更新为leaderEarliestOffsets") v
al offsets = leaderEarliestOffsets.map { case (tp, offset) => (tp, offset.offset) }
kc.setConsumerOffsets(groupId, offsets) } else { println("consumer group:" + groupId + " offsets正常,无需更新") } } else {
//如果没有被消费过,则从最新的offset开始消费。
val leaderLatestOffsets = kc.getLatestLeaderOffsets(kafkaPartitions).right.get println(leaderLatestOffsets)
println("consumer group:" + groupId + " 还未消费过,更新为leaderLatestOffsets")
val offsets = leaderLatestOffsets.map { case (tp, offset) => (tp, offset.offset) } kc.setConsumerOffsets(groupId, offsets) } }) }
错误:
18/02/19 12:31:39 ERROR Executor: Exception in task 0.0 in stage 3.0 (TID 39)org.apache.kafka.clients.consumer.OffsetOutOfRangeException: Offsets out of range with no configured reset policy for partitions: {prensa4-0=744} at org.apache.kafka.clients.consumer.internals.Fetcher.parseFetchedData(Fetcher.java:588) at org.apache.kafka.clients.consumer.internals.Fetcher.fetchedRecords(Fetcher.java:354) at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1000) at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:938) at org.apache.spark.streaming.kafka010.CachedKafkaConsumer.poll(CachedKafkaConsumer.scala:99) at org.apache.spark.streaming.kafka010.CachedKafkaConsumer.get(CachedKafkaConsumer.scala:70) at org.apache.spark.streaming.kafka010.KafkaRDD$KafkaRDDIterator.next(KafkaRDD.scala:223) at org.apache.spark.streaming.kafka010.KafkaRDD$KafkaRDDIterator.next(KafkaRDD.scala:189) at scala.collection.Iterator$$anon$11.next(Iterator.scala:409) at scala.collection.Iterator$$anon$10.next(Iterator.scala:393) at scala.collection.Iterator$class.foreach(Iterator.scala:893) at scala.collection.AbstractIterator.foreach(Iterator.scala:1336) at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:59) at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:104) at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:48) at scala.collection.TraversableOnce$class.to(TraversableOnce.scala:310) at scala.collection.AbstractIterator.to(Iterator.scala:1336) at scala.collection.TraversableOnce$class.toBuffer(TraversableOnce.scala:302) at scala.collection.AbstractIterator.toBuffer(Iterator.scala:1336) at scala.collection.TraversableOnce$class.toArray(TraversableOnce.scala:289) at scala.collection.AbstractIterator.toArray(Iterator.scala:1336) at org.apache.spark.rdd.RDD$$anonfun$take$1$$anonfun$29.apply(RDD.scala:1354) at org.apache.spark.rdd.RDD$$anonfun$take$1$$anonfun$29.apply(RDD.scala:1354) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2069) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2069) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) at org.apache.spark.scheduler.Task.run(Task.scala:108) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:338) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)18/02/19 12:31:39 ERROR TaskSetManager: Task 0 in stage 3.0 failed 1 times; aborting joborg.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 3.0 failed 1 times, most recent failure: Lost task 0.0 in stage 3.0 (TID 39, localhost, executor driver): org.apache.kafka.clients.consumer.OffsetOutOfRangeException: Offsets out of range with no configured reset policy for partitions: {prensa4-0=744} at org.apache.kafka.clients.consumer.internals.Fetcher.parseFetchedData(Fetcher.java:588) at org.apache.kafka.clients.consumer.internals.Fetcher.fetchedRecords(Fetcher.java:354) at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1000) at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:938) at org.apache.spark.streaming.kafka010.CachedKafkaConsumer.poll(CachedKafkaConsumer.scala:99) at org.apache.spark.streaming.kafka010.CachedKafkaConsumer.get(CachedKafkaConsumer.scala:70) at org.apache.spark.streaming.kafka010.KafkaRDD$KafkaRDDIterator.next(KafkaRDD.scala:223) at org.apache.spark.streaming.kafka010.KafkaRDD$KafkaRDDIterator.next(KafkaRDD.scala:189) at scala.collection.Iterator$$anon$11.next(Iterator.scala:409) at scala.collection.Iterator$$anon$10.next(Iterator.scala:393) at scala.collection.Iterator$class.foreach(Iterator.scala:893) at scala.collection.AbstractIterator.foreach(Iterator.scala:1336) at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:59) at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:104) at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:48) at scala.collection.TraversableOnce$class.to(TraversableOnce.scala:310) at scala.collection.AbstractIterator.to(Iterator.scala:1336) at scala.collection.TraversableOnce$class.toBuffer(TraversableOnce.scala:302) at scala.collection.AbstractIterator.toBuffer(Iterator.scala:1336) at scala.collection.TraversableOnce$class.toArray(TraversableOnce.scala:289) at scala.collection.AbstractIterator.toArray(Iterator.scala:1336) at org.apache.spark.rdd.RDD$$anonfun$take$1$$anonfun$29.apply(RDD.scala:1354) at org.apache.spark.rdd.RDD$$anonfun$take$1$$anonfun$29.apply(RDD.scala:1354) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2069) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2069) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) at org.apache.spark.scheduler.Task.run(Task.scala:108) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:338) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)Driver stacktrace: at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$failJobAndIndependentStages(DAGScheduler.scala:1517) at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1505) at org.apache.spark.scheduler.DAGScheduler$$anonfun$abortStage$1.apply(DAGScheduler.scala:1504) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at org.apache.spark.scheduler.DAGScheduler.abortStage(DAGScheduler.scala:1504) at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:814) at org.apache.spark.scheduler.DAGScheduler$$anonfun$handleTaskSetFailed$1.apply(DAGScheduler.scala:814) at scala.Option.foreach(Option.scala:257) at org.apache.spark.scheduler.DAGScheduler.handleTaskSetFailed(DAGScheduler.scala:814) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:1732) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1687) at org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:1676) at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:48) at org.apache.spark.scheduler.DAGScheduler.runJob(DAGScheduler.scala:630) at org.apache.spark.SparkContext.runJob(SparkContext.scala:2029) at org.apache.spark.SparkContext.runJob(SparkContext.scala:2050) at org.apache.spark.SparkContext.runJob(SparkContext.scala:2069) at org.apache.spark.rdd.RDD$$anonfun$take$1.apply(RDD.scala:1354) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112) at org.apache.spark.rdd.RDD.withScope(RDD.scala:362) at org.apache.spark.rdd.RDD.take(RDD.scala:1327) at org.apache.spark.rdd.RDD$$anonfun$isEmpty$1.apply$mcZ$sp(RDD.scala:1462) at org.apache.spark.rdd.RDD$$anonfun$isEmpty$1.apply(RDD.scala:1462) at org.apache.spark.rdd.RDD$$anonfun$isEmpty$1.apply(RDD.scala:1462) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:151) at org.apache.spark.rdd.RDDOperationScope$.withScope(RDDOperationScope.scala:112) at org.apache.spark.rdd.RDD.withScope(RDD.scala:362) at org.apache.spark.rdd.RDD.isEmpty(RDD.scala:1461) at itcl.adquisicionDatos$$anonfun$main$3.apply(adquisicionDatos-gonvarri.scala:212) at itcl.adquisicionDatos$$anonfun$main$3.apply(adquisicionDatos-gonvarri.scala:200) at org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:628) at org.apache.spark.streaming.dstream.DStream$$anonfun$foreachRDD$1$$anonfun$apply$mcV$sp$3.apply(DStream.scala:628) at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ForEachDStream.scala:51) at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:51) at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1$$anonfun$apply$mcV$sp$1.apply(ForEachDStream.scala:51) at org.apache.spark.streaming.dstream.DStream.createRDDWithLocalProperties(DStream.scala:416) at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply$mcV$sp(ForEachDStream.scala:50) at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:50) at org.apache.spark.streaming.dstream.ForEachDStream$$anonfun$1.apply(ForEachDStream.scala:50) at scala.util.Try$.apply(Try.scala:192) at org.apache.spark.streaming.scheduler.Job.run(Job.scala:39) at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply$mcV$sp(JobScheduler.scala:257) at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:257) at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler$$anonfun$run$1.apply(JobScheduler.scala:257) at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58) at org.apache.spark.streaming.scheduler.JobScheduler$JobHandler.run(JobScheduler.scala:256) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)Caused by: org.apache.kafka.clients.consumer.OffsetOutOfRangeException: Offsets out of range with no configured reset policy for partitions: {prensa4-0=744} at org.apache.kafka.clients.consumer.internals.Fetcher.parseFetchedData(Fetcher.java:588) at org.apache.kafka.clients.consumer.internals.Fetcher.fetchedRecords(Fetcher.java:354) at org.apache.kafka.clients.consumer.KafkaConsumer.pollOnce(KafkaConsumer.java:1000) at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:938) at org.apache.spark.streaming.kafka010.CachedKafkaConsumer.poll(CachedKafkaConsumer.scala:99) at org.apache.spark.streaming.kafka010.CachedKafkaConsumer.get(CachedKafkaConsumer.scala:70) at org.apache.spark.streaming.kafka010.KafkaRDD$KafkaRDDIterator.next(KafkaRDD.scala:223) at org.apache.spark.streaming.kafka010.KafkaRDD$KafkaRDDIterator.next(KafkaRDD.scala:189) at scala.collection.Iterator$$anon$11.next(Iterator.scala:409) at scala.collection.Iterator$$anon$10.next(Iterator.scala:393) at scala.collection.Iterator$class.foreach(Iterator.scala:893) at scala.collection.AbstractIterator.foreach(Iterator.scala:1336) at scala.collection.generic.Growable$class.$plus$plus$eq(Growable.scala:59) at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:104) at scala.collection.mutable.ArrayBuffer.$plus$plus$eq(ArrayBuffer.scala:48) at scala.collection.TraversableOnce$class.to(TraversableOnce.scala:310) at scala.collection.AbstractIterator.to(Iterator.scala:1336) at scala.collection.TraversableOnce$class.toBuffer(TraversableOnce.scala:302) at scala.collection.AbstractIterator.toBuffer(Iterator.scala:1336) at scala.collection.TraversableOnce$class.toArray(TraversableOnce.scala:289) at scala.collection.AbstractIterator.toArray(Iterator.scala:1336) at org.apache.spark.rdd.RDD$$anonfun$take$1$$anonfun$29.apply(RDD.scala:1354) at org.apache.spark.rdd.RDD$$anonfun$take$1$$anonfun$29.apply(RDD.scala:1354) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2069) at org.apache.spark.SparkContext$$anonfun$runJob$5.apply(SparkContext.scala:2069) at org.apache.spark.scheduler.ResultTask.runTask(ResultTask.scala:87) at org.apache.spark.scheduler.Task.run(Task.scala:108) at org.apache.spark.executor.Executor$TaskRunner.run(Executor.scala:338) ... 3 more:
解决方案
We had the same issue. For us the problem was:
master creates tasks like "read from that topic-partition form offset X to offset Y" and passes that tasks to executors.
executor receives tasks and start consuming data form topic-partition. At that time, due to topic configuration (time or size retention) offset X become unavailable. KafkaConsumer that is created for consuming messages doesn't have offset reset policy.
result is exception you see
solution: you need to tune
your kafka topic config speed of your spark job (i.e. decrease batch time, increase number of executors).两种解决方案供参考
https://issues.apache.org/jira/browse/SPARK-19680
下面这个链接解释比较详细:
https://blog.csdn.net/xueba207/article/details/51174818
代码解决方案:
https://blog.csdn.net/zyj_2012/article/details/78665709
相关阅读
-
当前热议!怎样更换计算机主板电池,笔记本电脑主板电池怎么更换?教你更换主板电池的方法...
花火网消息,笔记本主板电池是非常重要的笔记本零部件之一,那么,我们在生活中如何更换笔记本主板电池...
2022-09-29 -
今亮点!MonkeyTest——简单无脑的移动端自动化测试(初级篇)_monkeytest
MonkeyTest-操作步骤:1 下载AndroidsdkX64位,必须和你的电脑操作系统一致。2 安装完成后,增加adb的...
2022-09-29 -
环球新资讯:linux封装函数,libc库和封装函数 | 求索阁
Linux系统调用这部分经常出现两个词:libc库和封装函数,不知道你是否清楚它们的含义?libc1)libc概念li...
2022-09-29 -
诺基亚发布2022年Q3财报 第三季度营业利润6.58 亿欧元
DoNews10月20日消息(丁编程凡)今日,诺基亚公布了2022年Q3季度运营利润,低于市场预期。数据显示,该...
2022-10-20 -
电竞党双·11剁手指南:拯救者Y9000P超强配置 3A大作的游戏本标杆-环球微头条
10月20日晚8点,一年一度的双11购物节正式拉开帷幕。伴随着消费升级趋势来临,人们生活水平不断提高,大...
2022-10-20 -
调查:67%的欧洲科技界女性认为与男性相比报酬过低 一半的人遭遇过性别歧视
据TechCrunch报道,上个月,在国际同工同酬日,国际劳工组织(ILO)组织透露,全球女性的平均工资比男性...
2022-10-20 -
iPhone7 Plus多少钱?iPhone7 Plus价格
iPhone7Plus起价6388元。有银色、金色、玫瑰金、黑色和钢琴黑。iPhone7Plus搭载新一代A10Fusion芯片,采...
2022-10-20 -
webcheck.dll是什么
DLL文件:webcheck或者webcheck dll。DLL名称:WebSiteMonitor。webcheck dll是用于对网站进行监视的C...
2022-10-20 -
马斯克发推特宣布BurntHair香水已售罄 二手转售价更加夸张
10 月 12 日马斯克的隧道初创公司 Boring Company 推出新品 Burnt Hair(烧焦的头发)限量版香水...
2022-10-20 -
iTouch5和iTouch4有什么区别 iTouch5和iTouch4区别
iTouch4和iTouch5iTouch4iTouch5 上一次iTouch4更新还是在2010年的时候时隔两年。iTouch系列总算赢来又...
2022-10-20 -
网友猜测自购国行版苹果14ProMax为印度组装 官方技术顾问回应
有网友在网上晒出自己买到的国行 iPhone 14 Pro Max 是在印度组装的。据该网友透露,其上周在苹果...
2022-10-20 -
十铨首创双冷头强效散热新品亮相 设计焕新不惧大功率SSD
十铨宣布推出 T-FORCE SIREN DUO360 ARGB CPU & SSD 一体式水冷散热器,业界首创双冷头强效散热...
2022-10-20 -
USB80Gbps解决方案特点一览:Type-C可非对称配置 速度更快
USB-IF 宣布发布 USB4 版本 2 0 规范,可实现 80Gbps 传输性能,与此相关的 USB Type-C 和 USB Power Delivery (USB PD)
2022-10-20 -
微软悄然公布WSA路线图:即将引入Android 13系统支持
微软近日对Windows11端的WindowsSubsystemforAndroid(WSA)子系统带来了一些更新。根据微软在Github上...
2022-10-20 -
漫威免费卡牌游戏已可在Steam开玩 游戏节奏快且万分精彩
漫威卡牌游戏《MARVEL SNAP》现已上线 Steam,免费开玩。据官方介绍,漫威 SNAP 是一款超快节奏的策...
2022-10-20 -
皓丽2022线上发布会:5大新品亮相,多位行业大咖与合作伙伴助阵!
10月20日,皓丽举行了2022年度新品发布会,30多家平台同步线上直播,超百万人次在线观看。发布会上,皓...
2022-10-20 -
iPhone14系列进行专业跌落测试 结果表明Plus比ProMax更坚固
一家设备保险公司对苹果 iPhone 14 Plus 和 iPhone 14 Pro Max 进行的跌落测试清楚地表明,哪...
2022-10-20 -
KTC公开M27T20S显示器新品 配置较原版减去RGB灯与支架
KTC 今日公布新款 M27T20S 显示器,在原版 2K165Hz MiniLED 规格的 M27T20 的基础上砍掉了 RGB 灯、升降支架,90W USB-C 变为
2022-10-20 -
加量不加价!苹果将未发货iPad Pro免费升级到M2款-天天快讯
在新款发布前购买2021款iPadPro且尚未发货的网友表示,苹果已经提醒用户2021款iPadPro已经自动升级为新款iPadPro。
2022-10-20 -
ROG正式SwiftPG27AQN显示器详细规格 上市计划有望即日实现
在今年 CES 上,ROG 发布了新款 Swift PG27AQN 显示器,达到了 2K 360Hz 的超高规格。现在,这...
2022-10-20 -
《蝙蝠侠》新游被指要求过高:1080p推荐RTX 2070显卡及8核i7
动作游戏《蝙蝠侠》最新作《哥谭骑士》即将在10月21日发售,主机版因为锁30帧的事被玩家吐槽,PC版玩家...
2022-10-20 -
三星G8显示器今晚开售:2K+175Hz高刷 首发9999元-世界滚动
此前在海外发布的三星OdysseyOLEDG8带鱼屏显示器现已上架京东,今晚8点正式开启预售,原价13999元,预售...
2022-10-20 -
macOS13Ventura正式版即将上线 官方宣传称其将更加高效
苹果官网更新信息显示,macOS 13 Ventura 正式版将于 10 月 25 日推出,与 iPadOS 16 正式版...
2022-10-20
精彩推荐
阅读排行
相关词
- xoom
- nativeapp
- viber
- 金证济苍
- googele
- bae systems
- ammunition
- 唐岩
- romney
- u盘
- 布加迪发布Carbone智能手表:限量2500只 售价超1.8万-当前资讯
- 淘宝购物车扩容至300 新增分组、优惠筛选等功能
- 番茄小说免费版真的可以赚钱吗
- 怎么取消XP系统的开机密码 windows无法删除密码
- 王者荣耀升级防沉迷措施:限制未成年游戏时间、氪金上限
- 李国庆成立感觉良好公司 经营范围含互联网直播服务
- 光影魔术手多图边框的快捷键是什么
- vivo X9s什么时候上市_vivo X9s上市时间
- 几款索尼投影仪价格介绍
- 空气开关规格型号大全 方便您的居家选择
- 马斯克卖香水、小鹏卖麻将,大厂“不务正业”有多疯狂-今日要闻
- 美的加湿器怎么用 美的加湿器使用方法
- 如何使用3G无线上网卡来上网 笔记本3G无线上网卡上网指南
- 可视对讲机的工作原理是什么 可视对讲机原理
- oem和odm是什么意思 oem与odm区别是什么
- 索尼vr眼镜怎么样 索尼vr眼镜报价和评测
- 比亚迪新专利曝光 可用方向盘操控车载游戏
- APP是什么意思_APP是什么
- 任务栏输入法图标不见了怎么办
- win7怎么装回xp系统 win7系统改装xp的方法-快播
- 荣耀申请灵动胶囊/精灵商标:领先苹果iPhone 14 Pro四年
- 怎么查宽带上网时间 具体方法如下
- 甲骨文公司官宣:将在OCI中部署上万个英伟达顶级计算GPU
- dnf深渊怎么开 关于dnf深渊怎么开的问题
- 华硕主板前面板耳机没有声音的解决方法-环球今热点
- KOOBEE A106怎么样
- Meta最强交易官离开公司 曾帮助脸书收购Ins
- WindowsTerminal现已成为微软最新系统默认体验终端工具
- win8运行在哪里 如何打开win8系统的运行命令-全球快消息
- 网页视频看不了怎么办_网页视频看不了的解决方法-每日报道
- win7玩cf老是与主机连接不稳定的解决方法-报资讯
- 无线AP是什么 无线AP怎么用
- 康福中国 Camfrog 6.0 中文版安装教程(英文版转中文版设置方法)
- LED背光板原理是什么 LED背光板原理详细介绍
- windows双系统怎么设置启动顺序 win双系统默认开机启动项设置方法-环球即时
- 安装电地暖价格是多少 安装电地暖价格预算
- 广汽透露将在明年投产自主品牌PHEV产品 并分析相关车型布局
- win7系统安装英雄联盟补丁包的两种方法-热消息
- qq腾讯网迷你版怎么设置不弹岀来
- 联想win8重装系统步骤 联想win8系统重装教程-世界速看
- 世纪之星机箱怎么样 世纪之星机箱介绍
- ibackupbot怎么用 ibackupbot使用教程(附ibackupbot中文版下载地址)
- 原版dell oem xp pro sp3光盘镜像下载地址-环球资讯
- win10系统电脑没有手机驱动的解决方法-时快讯
- 163邮箱登录入口 手机端163邮箱登录入口
- 蔚来总裁秦力洪回复网友建议 并称将考虑开卖欧版汽车一事
- QQ空间日志图片如何加水印
- 了解什么是电源控制器 电源控制器功能
- IPhone13pro电池容量多大-IPhone13Pro电池参数续航介绍
- 哪种植物会寄生在梭梭根部?蚂蚁庄园今日答案11.23
- 华为nova5pro和nova5i的区别
- 如何在手机QQ中下载表情包 具体操作方法
- 怎么自动识别查询快递单号查询-自动识别查询快递单号查询方法
- 电脑打电话给手机步骤详解
- win7系统下怎么调cf烟雾头-环球热议
- 电视直播软件哪个好 网络电视直播软件排行2014详情介绍
- MSN帐号格式以及MSN用户名格式的详细介绍
- 电脑进入桌面后黑屏如何修复_电脑经常进入桌面之后黑屏的处理方法-全球新动态
- xbox360手柄模拟器怎么样 xbox360手柄模拟器介绍
- ie浏览器打不开_ie浏览器打不开网页_IE浏览器打不开网页的解决方法
- 把rmvb格式转换成dvd的详细图文教程
- 数码闲聊站曝光OPPO新折叠屏手机:电池容量有望超过ZFlip4
- Win7锁定计算机快捷键是什么 Win7使用锁定计算机快捷键的方法-全球动态
- xr是什么意思-xr改的意思介绍
- 如何让win7自动拨号上网|让win7自动拨号上网的教程-全球速看
- 电脑性能怎么检测 电脑性能检测的方法
- Win7系统打开IE浏览器后页面自动关闭的四种解决方法-重点聚焦
- Win10系统如何打开内涵图种子-世界微速讯
- 鸿海董事长刘扬伟:新款电车零配件将优先采用MIH联盟成员产品
- ie浏览器网页字体怎么变大|如何将网页字体变大-全球速讯
- windows xp3 原版下载_windows xp3 原版下载地址-环球热资讯
- 怎么用硬盘装xp系统 硬盘安装xp系统步骤图解-全球聚焦
- 如何禁用和开启电脑光驱 电脑禁用和开启光驱的方法-世界新要闻
- 分析师称苹果将在后年发布OLED版iPadPro 屏幕亮度获提升
- deepmoss 2022 Autumn Winter 甲板之上
- “抱冷门”赢世界杯定制礼品!容声WILL健康冰箱羊毛“鲜”薅为敬
- “狲思邈”离世,中国“最穷”动物园出圈
- 1.8万就能拥有布加迪!全球第一款全碳纤维智能手表发布-微资讯
- 精悍小巧,功能不少! 华硕电竞路由新品RT-AX57来了
- P站宣布将区分AI画图和真人作品 提供单独的排行榜-环球速读
- 迷宫探险动作游戏《迷宫传说》繁体中文版今天正式上市!-当前快播
- “极境之域”加载中,请准备进入
- 荣耀畅玩40 Plus新机发布:首发1199元 6000mAh大电池
- PS4版《女神异闻录5:皇家版》价格永久下调100元 10月31日生效-世界球精选
- 值得买科技获2022年度第一批“北京市企业技术中心”认定
- 有了这个智能枕头 睡觉再也不打鼾了!-环球精选
- 淘宝购物车扩容至300 新增分组、优惠筛选等功能
- 摸鱼5分钟:去鹤岗全款买房幸福感飙升 90后父母给儿子取名叫“张总”-播报
- 秋冬大衣千万别在款式上作妖了!
- 联想专业电竞鼠标来了:拯救者M7将于10月底发布-环球时讯
- 最酷的姐姐就是穿着球鞋把婚结了
- 腾讯阿里抢在双11前一连三通
- 京东PLUS会员年卡76元-全球滚动
- 今晚八点正式开启预售 京东11·11促销时间表曝光
- 【手慢无】摆着都美 华硕创意游戏电脑主机只需6199元-新视野
- iPhone 14 Plus减产规模在70%-90% 刷新苹果历史
- 《寂静岭2重制版》PS5版无加载画面 支持触觉反馈等-快资讯
- 联想小新Air14 2023公开部分规格:新笔电将搭载下沉式键盘
- 骁龙处理器排名天梯图最新 骁龙处理器排行榜2022-每日聚焦
- 北京冬奥上火爆全球:谷爱凌获最佳女运动员表现奖
- 缺锂怎么办?马斯克式解决方案:特斯拉自己干
- HKC新MiniLED显示器上架:2K 240Hz 首发价2999元-全球报道
- 科乐美推出《寂静岭》周边:护士姐姐依旧吸睛-全球头条
- 超越人类的交互感受,深度体验小鹏G9智能语音-全球播报
- 朗科新推绝影NV5000-t固态硬盘 温控技术更高 售价暂未公布
- 4999元起,机械革命极光Z游戏本发布,最高可选i7-12700H-观察
- 【手慢无】无蓝光液晶屏 小米液晶小黑板仅售89元-当前动态
- Redmi X Pro 正式发布-天天快报
- ios16.1正式版推送时间计划 ios16.1正式版什么时候更新-热头条
- 【手慢无】锐龙R7-5800H处理器+2.8K OLED屏 华硕无畏14电脑入手仅需3999元-天天快播
- 微信朋友圈提到了我是什么意思 提醒谁看别人能看到吗-当前视点
- 【手慢无】小巧精悍的惠普迷你主机秒杀价2997元-世界速看料
- DXO披露Xperia10IV影像测试分数 并称其具备户外拍摄细节
- 【手慢无】联想ThinkPad neo 14英寸高性能标压笔记本,活动直降1000元-每日看点
- 特斯拉真正自动驾驶要来了?马斯克将在2023年申请监管批准
- Nreal携手LGD推出开「大」联名礼盒 LGD夺冠0元到手
- 【手慢无】护眼学习平板联想小新Pad只要899元。-天天新动态
- 联想概念新品亮相LenovoTechWorld 并提出CyberSpaces方案
- 【手慢无】小尺寸游戏平板,联想拯救者y700活动优惠价只要2269元-环球热消息
- 双·11大促即将开启 三款主流价位段3060游戏本闭眼入-天天热资讯
- 双十一前淘宝购物车扩容至300:新增分组、排序等功能
- 开发商343i为肢体残缺儿童提供《光环》主题义肢
- 微软专利揭示能调节表面粗糙度的先进显示屏
- 报道称三星正研发新款智能戒指 相关专利早已在去年提出申请
- 摩托罗拉最新演示卷轴屏概念手机 为纵向扩展还有配套动态壁纸
- 科学家在3D打印食品中直接加入二维码 且完全不影响其口感
- 云南小熊猫翘班跑进学生宿舍 动物园:将会调查其具体溜出途径
- NASA公布天体景象创生之柱新图像 其旧照曾被评为哈勃十佳之一
- 中国天眼发现迄今最大原子气体结构:或将向宇宙演化提出挑战
- 研究发现黑洞饭后会“打嗝”:吞噬小恒星多年后却又将其喷出
- 女生求职碰壁遇HR帮改简历:学会换位思考或许就能锦上添花
- 大妈跳舞过于陶醉把自己转到湖里 掉河后众人合力将大妈拉上岸
- 次世代模拟人生游戏及其开发代号正式公开 新品将可跨平台游玩
- 苹果官网最新上架编织充电线产品 接口未包含Lightning版本
- Solidigm新发布PCIe4.0SSD 最高容量为2TB 为NAND技术制造
- iPad专用妙控键盘双面夹来了 具备全尺寸按键 还有更宽触控板
- 2015款AppleTV HD将被官方停售 其操作系统为iOS完全适配
- 安卓平板所用Chrome正发布一系列更新 标签页变化更加多样
- 贝尔金最新百元iPhone支架开售:专为连续互通相机使用而设计
- 一加AcePro原神限定版发布会确定将在下周一上线 宣传语放出
- 2022款iPadPro将可使用视频编辑软件达芬奇 使用软件更专业
- 模拟人生4正式成为免费游戏 并可在PS4/XboxOne等平台开玩
- 郭明錤预测称:苹果AppleTV下代新品或将进一步下调起售价
- 苹果全新推出AppleTV 4K产品:流式传输可以千兆以太网进行
- 赛博朋克2077衍生动画制片人:现在还未有制作续集的计划
- 三星990PRO PCIe4.0SSD有望即日上市 随机读写已提高五成
- 光电编码器的工作原理介绍 光电编码器的优缺点都有什么?
- 光电编码器测速方法有哪些?光电编码器和磁电编码器的区别都有什么?
- 苹果发布iPad10后再火速上架新配件 可转换至原有Pencil接口
- 光电编码器如何判断方向?光电编码器的工作原理是什么?