gitweixin
  • 首页
  • 小程序代码
    • 资讯读书
    • 工具类
    • O2O
    • 地图定位
    • 社交
    • 行业软件
    • 电商类
    • 互联网类
    • 企业类
    • UI控件
  • 大数据开发
    • Hadoop
    • Spark
    • Hbase
    • Elasticsearch
    • Kafka
    • Flink
    • 数据仓库
    • 数据挖掘
    • flume
    • Kafka
    • Hive
    • shardingsphere
    • solr
  • 开发博客
    • Android
    • php
    • python
    • 运维
    • 技术架构
    • 数据库
  • 程序员网赚
  • bug清单
  • 量化投资
  • 在线查询工具
    • 去行号
    • 在线时间戳转换工具
    • 免费图片批量修改尺寸在线工具
    • SVG转JPG在线工具

分类归档大数据开发

精品微信小程序开发门户,代码全部亲测可用

  • 首页   /  
  • 分类归档: "大数据开发"
  • ( 页面35 )
Elasticsearch 8月 31,2020

ES常见性能问题与解决方案

常见性能问题与解决方案

当前性能问题很多是硬件资源限制,或者是配置使用不合理,再或者是集群部署不合理,常见问题如下:

  1. 全文检索场景下查询速度慢问题。 分析:对全索引,全字段进行全文检索,发现查询速度很慢。通过集群状态分析发现,index数和shard数偏多,规划不合理,同时索引分片数设置不合理。通过查询慢日志发现,提取阶段需要合并大量的结果,导致整个查询时间慢。 解决方案:关闭swap交换内存,重新规划索引的shard个数,定时的进行索引段合并减少集群segment个数。
  2. 写入数据达到一定量时,指定ID导致读IO很高问题。 分析:在EsNode节点上执行iotop命令,发现大量Elasticsearch线程的磁盘读速率高。通过线程堆栈信息发现,在索引bulk命令的写入流程中,由于写入请求指定文档ID,需要先做一次全量查询,确认该index是否存在指定的文档ID,这个查询过程占用大量的磁盘读IO。 解决方案:业务测进行调整,写入数据时不指定文档ID,而是将其作为一个index字段。

针对性能问题首先排查系统部署是否合理,然后查看硬件资源是否达到瓶颈,结合客户的查询特点,有针对性的利用第3节的调优参数进行调整。

查看日志信息,排查系统后台是否有报错,根据错误信息针对具体问题分析性能不达标的根本原因。

日志分类介绍:

当前Elasticsearch各个实例的日志保存在“${BigdataLogHome}/elasticsearch/${Rolename}”和“${BigdataLogHome}/audit/elasticsearch/${Rolename}”目录下。

  • 安装日志如下:
日志文件名 分析描述
es-postinstall.log Elasticsearch安装日志
es-start.log Elasticsearch启动日志
es-stop.log Elasticsearch停止日志
  • 运行日志如下:
日志文件名 分析描述
elasticsearch_cluster.log Elasticsearch集群日志,实例运行日志
es-process-check.log Elasticsearch健康检查日志
es-sevice-check.log Elasticsearch服务检查日志
elasticsearch_cluster_index_indexing_slowlog.log Elasticsearch索引慢日志
elasticsearch_cluster_index_search_slowlog.log Elasticsearch查询慢日志
es-gc.log Elasticsearch实例的GC日志
elasticsearch_cluster-audit.log 记录对索引级别的操作,比如迁移shard,删除索引等
  • 开启慢日志: 默认的情况下,Elasticsearch的查询慢日志和索引慢日志是没有启用的。需要通过设置日志的级别(warn, info, debug, trace)和阀值来开启慢日志。 首先设置日志级别,如下所示将日志级别设置为debug:curl -XPUT –tlsv1.2 –negotiate -k -v -u : ‘https://ip:httpport/_cluster/settings?pretty’ -H ‘Content-Type: application/json’ -d’ { “transient”: { “logger.index.indexing.slowlog”:”DEBUG”, “logger.index.search.slowlog”:”DEBUG” } }’ 设置完日志级别后需要分别设置查询慢日志和索引慢日志的对应日志级别下的阀值,可以在elasticsearch.yml文件里定义这些阀值。没有阀值设置的索引会自动继承在静态配置文件里配置的参数。同时也提供动态API的方式来设置。
    1. 查询慢日志 shard级别的查询慢日志会将慢查询(查询和获取阶段)记录到elasticsearch_cluster_index_search_slowlog.log日志中。 设置查询慢日志各种级别下的阀值,同时也支持多索引(索引名按逗号分隔)和全索引(用*通配符)操作。curl -XPUT –tlsv1.2 –negotiate -k -v -u : ‘https://ip:httport/myindex-001/_settings?pretty’ -H ‘Content-Type: application/json’ -d’ { “index.search.slowlog.threshold.query.warn”: “10s”, “index.search.slowlog.threshold.query.info”: “5s”, “index.search.slowlog.threshold.query.debug”: “2s”, “index.search.slowlog.threshold.query.trace”: “500ms”, “index.search.slowlog.threshold.fetch.warn”: “1s”, “index.search.slowlog.threshold.fetch.info”: “800ms”, “index.search.slowlog.threshold.fetch.debug”: “500ms”, “index.search.slowlog.threshold.fetch.trace”: “200ms”, }’ 说明: index.search.slowlog.threshold.query.*:对应日志级别下的阀值,查询阶段慢于该阀值即打印日志。 index.search.slowlog.threshold.fetch.*:对应日志级别下的阀值,提取阶段慢于该阀值即打印日志。
    2. 索引慢日志 设置索引慢日志各种级别下的阀值,同时也支持多索引(索引名按逗号分隔)和全索引(用*通配符)操作。curl -XPUT –tlsv1.2 –negotiate -k -v -u : ‘https://ip:httpport/myindex-001/_settings?pretty’ -H ‘Content-Type: application/json’ -d’ { “index.indexing.slowlog.threshold.index.warn”: “10s”, “index.indexing.slowlog.threshold.index.info”: “5s”, “index.indexing.slowlog.threshold.index.debug”: “2s”, “index.indexing.slowlog.threshold.index.trace”: “500ms”, “index.indexing.slowlog.source”: “1000” }’ 说明: index.indexing.slowlog.threshold.index.*:对应日志级别下的阀值,索引时间慢于该阀值即打印日志。 index.indexing.slowlog.source:Elasticsearch默认将在慢索引日志中记录_source的前1000个字符,将其设置为false或0将完全跳过记录源,设置为true将记录整个源。
作者 east
运维 8月 23,2020

lnmp一键安装包重新安装mysql

安装mysql好长时间,一直没去管,后来一直频繁重启,各种网上找方案去解决,最后问题太异常,一顿操作猛如虎之后把mysql彻底搞垮,无奈只能进行重装。

#whereis mysql

#mysql: /usr/bin/mysql /usr/lib/mysql /usr/include/mysql /usr/local/mysql

找到五个目录

rm -rf /usr/bin/mysql 五个目录依次删除

然后就可以安装,新的MYSQL了,INIT 启动下的就不用删了,如果还要安装的话,

目前提供了较多的MySQL、MariaDB版本和不安装数据库的选项,需要注意的是MySQL 5.6,5.7及MariaDB 10必须在1G以上内存的更高配置上才能选择!如仅需安装数据库在lnmp安装包目录下执行:

./install.sh db

加上这个DB 就只安装数据库了,别的NGINX就不安 装了

杀死以前安装的mysql进程,然后重启就可以啦

lnmp restart

查看进程

ps -ef|grep mysql

强制杀死进程4328

kill -s 9 4328

作者 east
Elasticsearch 7月 26,2020

Elasticsearch日期Text类型查询的坑

项目需求用时间范围进行查询,并按时间进行逆序查询。

刚开始为了方便用了text类型,发现存在2个问题,比如from 2020-07-26 00:00:00 ,to 2020-07-26 10:57:00,发现查不了2020-07-26那天的数据。扩大时间范围查询,有数据范围的,当天数据也不是按时间逆序,
2020-07-26 00:00:02 可能比 2020-07-26 10:57:00还排在前面。原因是
es对于text类型的,按中间空格进行分词,即使对日期设置format
yyyy-MM-dd HH:mm:ss 也没作用。

解决方法有2种:1、使用date类型。2、使用时间戳方式。

作者 east
运维 6月 26,2020

Linux查看日志常用命令

实时查看日志命令

tail -f jar.log

查看最后多少行日志:程序中断了,需要看日志,但日志可能太大了,所以查看末尾的日志通常可以找出问题,例如查看最后100行的日志

tail -n 100 jar.log

清空日志文件:

echo “” >jar.log

更多知识参考

https://ke.qq.com/course/5978198?saleToken=2725343&from=pclink

作者 east
Java, spring 6月 26,2020

Mysql 查询今天、昨天、前天的sql语句

查询今天的
SELECT * FROM t_table WHERE TO_DAYS(CREATE_TIME) = TO_DAYS(NOW())

查询昨天的
SELECT * FROM t_table WHERE TO_DAYS(NOW()) - TO_DAYS(CREATE_TIME) = 1


查询前天天的
SELECT * FROM t_table WHERE TO_DAYS(NOW()) - TO_DAYS(CREATE_TIME) = 1
作者 east
bug清单, spring 6月 26,2020

springboot内嵌tomcat文件上传路径不存在bug解决

在开发上传功能时,发现在开发环境正常,在线上环境出现问题,经过定位发现tomcat临时目录导致的问题。

springboot内嵌tomcat,上传文件时会存放到tomcat临时文件目录(停止时删除/重启时新建),如:/tmp/tomcat.1046709481715876128.17301/work/Tomcat/localhost/cms

可知文件保存在/tmp目录下,/tmp目录在centos下会定时清理,大约10天未使用将会删除目录,(当tomcat未重启,但centos删除相应目录,tomcat获取相应目录却获取不到会报错)

解决方案:

配置multipartFile上传路径

1.application.properties 文件中添加

spring.http.multipart.location=${tmp.file.path} 注意:tmp.file.path 如果不存在,spring会认为是相对路径,对应根路径是tomcat临时文件目录
2

2.配置相应bean

/**
* 文件上传临时路径
*/
@Bean
MultipartConfigElement multipartConfigElement() {
  MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("/data/ops/app/cms/cache");
return factor
246810121416
作者 east
Java 6月 25,2020

shardingsphere 4.0的2种配置格式

首先配置pom.xml


        <!-- shardingsphere最新版本 -->
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
            <version>4.0.0-RC1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.shardingsphere</groupId>
            <artifactId>sharding-jdbc-spring-namespace</artifactId>
            <version>4.0.0-RC1</version>
        </dependency>

yml格式只分表,不分库的写法

Spring:
  shardingsphere:
    datasource:
      names: master
      master:
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.cj.jdbc.Driver
        url: jdbc:mysql://197.1.26.138:53306/test?serverTimezone=Asia/Shanghai&useSSL=false&allowMultiQueries=true
        username: root
        password: root
#数据分表规则
#指定所需分的表
    sharding:
      tables:
        test_user:
          actual-data-nodes: master.test_user$->{0..2}
          table-strategy:
            inline:
              sharding-column: night_id
              algorithm-expression: test_user$->{night_id % 3}
    props:
      sql:
        show: false

properties分库分表的写法


#指定mybatis信息
mybatis.config-location=classpath:mybatis-config.xml

#数据库
spring.shardingsphere.datasource.names=master0,slave0

spring.shardingsphere.datasource.master0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.master0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.master0.url=jdbc:mysql://localhost:3306/master?characterEncoding=utf-8
spring.shardingsphere.datasource.master0.username=root
spring.shardingsphere.datasource.master0.password=123456

spring.shardingsphere.datasource.slave0.type=com.alibaba.druid.pool.DruidDataSource
spring.shardingsphere.datasource.slave0.driver-class-name=com.mysql.jdbc.Driver
spring.shardingsphere.datasource.slave0.url=jdbc:mysql://localhost:3306/slave?characterEncoding=utf-8
spring.shardingsphere.datasource.slave0.username=root
spring.shardingsphere.datasource.slave0.password=root

#数据分表规则
#指定所需分的表
spring.shardingsphere.sharding.tables.tab_user.actual-data-nodes=master0.tab_user$->{0..1}
#指定主键
spring.shardingsphere.sharding.tables.tab_user.table-strategy.inline.sharding-column=id
#分表规则为主键除以2取模
spring.shardingsphere.sharding.tables.tab_user.table-strategy.inline.algorithm-expression=tab_user$->{id % 2}

# 读写分离
spring.shardingsphere.masterslave.load-balance-algorithm-type=round_robin
spring.shardingsphere.masterslave.name=ms
#这里配置读写分离的时候一定要记得添加主库的数据源名称 这里为master0
spring.shardingsphere.sharding.master-slave-rules.master0.master-data-source-name=master0
spring.shardingsphere.sharding.master-slave-rules.master0.slave-data-source-names=slave0

#打印sql
spring.shardingsphere.props.sql.show=true
作者 east
Spark, 大数据开发 6月 25,2020

大数据利用基站或GPS推断是家和工作地

如果有某个手机用户的GPS轨迹或基站,是可以利用大数据来推断他的家和工作地。

思路应该从时空2个维度进行考虑:

1、从时间上考虑:对于一般人来说,一天最早的出发地通常是家,晚上最后的目的地通常是家。而上班的地方,普通是6-10点出发的,在17点到22点后回来的,工作地通常是停留时间很长。(可以把轨迹按天归类,并按每天时间排序,从而计算最早、最晚、白天停留时间最长的地点)





2、从空间上考虑:家和工作点应该是2个不同的聚类中心。 可以利用轨迹绘制集群中每个集群中GPS或基站数据点的时间分布。 应该可以推断出从早上9点到晚上18点,用户停留在集群1区域,而在午夜到早上8点,用户倾向于留在集群2。从而大概率推断出集群1是家,集群2是工作地(可以用 DBSCAN算法来识别此数据集中的聚类。 DBSCAN是一种聚类算法,对于聚类具有许多异常值的空间数据特别有用 )

作者 east
spring 6月 10,2020

Springboot读取excel工具类

public List<DeviceInfo> readXls() throws IOException {
InputStream is = new FileInputStream(EXCEL_PATH);
XSSFWorkbook hssfWorkbook = new XSSFWorkbook(is);
DeviceInfo student = null;
List<DeviceInfo> list = new ArrayList<DeviceInfo>();
// 循环工作表Sheet
for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
XSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// 循环行Row
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
XSSFRow hssfRow = hssfSheet.getRow(rowNum);
if(CheckRowNull(hssfRow)){
continue;
}
if (hssfRow != null) {
student = new DeviceInfo();
XSSFCell no = hssfRow.getCell(0);
no.setCellType(no.CELL_TYPE_STRING);
XSSFCell name = hssfRow.getCell(3);
XSSFCell longitude = hssfRow.getCell(1);
XSSFCell latitude = hssfRow.getCell(2);
student.setDeviceId(getValue(no));
student.setDeviceName(getValue(name));
student.setLongitude(new BigDecimal(getValue(longitude)));
student.setLatitude(new BigDecimal(getValue(latitude)));
list.add(student);
}
}
}
return list;
}

@SuppressWarnings("static-access")
private String getValue(XSSFCell hssfCell) {
if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) {
// 返回布尔类型的值
return String.valueOf(hssfCell.getBooleanCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) {
// 返回数值类型的值
return String.valueOf(hssfCell.getNumericCellValue());
} else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_FORMULA) {
return String.valueOf(hssfCell.getCellFormula());
} else {
// 返回字符串类型的值
return String.valueOf(hssfCell.getStringCellValue());
}
}

//判断行为空
private boolean CheckRowNull(XSSFRow hssfRow){
Iterator<Cell> cellItr =hssfRow.iterator();
while(cellItr.hasNext()){
Cell c =cellItr.next();
if(c != null && c.getCellType() !=XSSFCell.CELL_TYPE_BLANK){
return false;
}
}
return true;
}

作者 east
大数据开发 6月 10,2020

ShardingSphere不支持的SQL操作(having等复杂统计及子查询)

在大数据时代,面对海量数据存储和处理,除了nosql方案外,很多时候还是需要关系型数据库。mysql单表在千万级别时性能就明显下降,这时靠加索引等也难根本性解决,这时需要分库分表。shardingshpere是一款轻巧绿色的分库分表利器。不是它也是有局限性,下面是它不支持的sql操作。


路由至多数据节点

不支持CASE WHEN、HAVING、UNION (ALL),有限支持子查询。

除了分页子查询的支持之外(详情请参考分页),也支持同等模式的子查询。无论嵌套多少层,ShardingSphere都可以解析至第一个包含数据表的子查询,一旦在下层嵌套中再次找到包含数据表的子查询将直接抛出解析异常。

例如,以下子查询可以支持:

SELECT COUNT(*) FROM (SELECT * FROM t_order o)

以下子查询不支持:

SELECT COUNT(*) FROM (SELECT * FROM t_order o WHERE o.id IN (SELECT id FROM t_order WHERE status = ?))

简单来说,通过子查询进行非功能需求,在大部分情况下是可以支持的。比如分页、统计总数等;而通过子查询实现业务查询当前并不能支持。

由于归并的限制,子查询中包含聚合函数目前无法支持。

不支持包含schema的SQL。因为ShardingSphere的理念是像使用一个数据源一样使用多数据源,因此对SQL的访问都是在同一个逻辑schema之上。

对分片键进行操作

运算表达式和函数中的分片键会导致全路由。

假设create_time为分片键,则无法精确路由形如SQL:

SELECT * FROM t_order WHERE to_date(create_time, 'yyyy-mm-dd') = '2019-01-01';

由于ShardingSphere只能通过SQL字面提取用于分片的值,因此当分片键处于运算表达式或函数中时,ShardingSphere无法提前获取分片键位于数据库中的值,从而无法计算出真正的分片值。

当出现此类分片键处于运算表达式或函数中的SQL时,ShardingSphere将采用全路由的形式获取结果。

示例

支持的SQL

SQL必要条件
SELECT * FROM tbl_name
SELECT * FROM tbl_name WHERE (col1 = ? or col2 = ?) and col3 = ?
SELECT * FROM tbl_name WHERE col1 = ? ORDER BY col2 DESC LIMIT ?
SELECT COUNT(*), SUM(col1), MIN(col1), MAX(col1), AVG(col1) FROM tbl_name WHERE col1 = ?
SELECT COUNT(col1) FROM tbl_name WHERE col2 = ? GROUP BY col1 ORDER BY col3 DESC LIMIT ?, ?
INSERT INTO tbl_name (col1, col2,…) VALUES (?, ?, ….)
INSERT INTO tbl_name VALUES (?, ?,….)
INSERT INTO tbl_name (col1, col2, …) VALUES (?, ?, ….), (?, ?, ….)
UPDATE tbl_name SET col1 = ? WHERE col2 = ?
DELETE FROM tbl_name WHERE col1 = ?
CREATE TABLE tbl_name (col1 int, …)
ALTER TABLE tbl_name ADD col1 varchar(10)
DROP TABLE tbl_name
TRUNCATE TABLE tbl_name
CREATE INDEX idx_name ON tbl_name
DROP INDEX idx_name ON tbl_name
DROP INDEX idx_name
SELECT DISTINCT * FROM tbl_name WHERE col1 = ?
SELECT COUNT(DISTINCT col1) FROM tbl_name

不支持的SQL

SQL不支持原因
INSERT INTO tbl_name (col1, col2, …) VALUES(1+2, ?, …)VALUES语句不支持运算表达式
INSERT INTO tbl_name (col1, col2, …) SELECT col1, col2, … FROM tbl_name WHERE col3 = ?INSERT .. SELECT
SELECT COUNT(col1) as count_alias FROM tbl_name GROUP BY col1 HAVING count_alias > ?HAVING
SELECT * FROM tbl_name1 UNION SELECT * FROM tbl_name2UNION
SELECT * FROM tbl_name1 UNION ALL SELECT * FROM tbl_name2UNION ALL
SELECT * FROM ds.tbl_name1包含schema
SELECT SUM(DISTINCT col1), SUM(col1) FROM tbl_name详见DISTINCT支持情况详细说明
SELECT * FROM tbl_name WHERE to_date(create_time, ‘yyyy-mm-dd’) = ?会导致全路由

DISTINCT支持情况详细说明

支持的SQL

SQL
SELECT DISTINCT * FROM tbl_name WHERE col1 = ?
SELECT DISTINCT col1 FROM tbl_name
SELECT DISTINCT col1, col2, col3 FROM tbl_name
SELECT DISTINCT col1 FROM tbl_name ORDER BY col1
SELECT DISTINCT col1 FROM tbl_name ORDER BY col2
SELECT DISTINCT(col1) FROM tbl_name
SELECT AVG(DISTINCT col1) FROM tbl_name
SELECT SUM(DISTINCT col1) FROM tbl_name
SELECT COUNT(DISTINCT col1) FROM tbl_name
SELECT COUNT(DISTINCT col1) FROM tbl_name GROUP BY col1
SELECT COUNT(DISTINCT col1 + col2) FROM tbl_name
SELECT COUNT(DISTINCT col1), SUM(DISTINCT col1) FROM tbl_name
SELECT COUNT(DISTINCT col1), col1 FROM tbl_name GROUP BY col1
SELECT col1, COUNT(DISTINCT col1) FROM tbl_name GROUP BY col1

不支持的SQL

SQL不支持原因
SELECT SUM(DISTINCT col1), SUM(col1) FROM tbl_name同时使用普通聚合函数和DISTINCT聚合函数


作者 east
Java 6月 10,2020

千万级别数据实时复杂统计效率优化

有个业务需求:千万级别数据,要根据位置、白天出现时间、晚上不出现时间,出现次数大于某个范围的复杂组合统计。

mysql在千万级别的数据时,查询效率就有明细的下降。而时间数据从上千万级上升到上亿级,查询效率很慢,等待很久。

除了加索引等常规优化,想到用
shardingsphere 来分库分表,调研之后,发现
shardingsphere 不支持having等统计查询,对子查询支持也不是非常友好。后来发现这些数据,大部分数据其实是很难用到到,因为业务要统计大于多少次的,并按次数倒序,于是把那些出现次数少的进行删除,数据一下降到百万级别的,查询效率明细提升。

优化不光是考虑技术上的,一些技术难做到的,还要结合业务进行优化。

作者 east
bug清单, Hbase 6月 10,2020

华为FusionInsight HD集群Can’t get Kerberos realm

华为FusionInsight HD采用安全登录认证的方式,但是一直报Can’t get kerberos realm的错误,反复检查hbase的安全认证没问题,但线上运行就会时不时出现这个问题。

经过反复对比排查,发现是另个地方redis,也用到安全认证,但把配置文件写错导致失败。而想不到的是,redis安全认证失败,也导致了hbase这里安全认证失败。

作者 east

上一 1 … 34 35 36 … 41 下一个

关注公众号“大模型全栈程序员”回复“小程序”获取1000个小程序打包源码。回复”chatgpt”获取免注册可用chatgpt。回复“大数据”获取多本大数据电子书

标签

AIGC AI创作 bert chatgpt github GPT-3 gpt3 GTP-3 hive mysql O2O tensorflow UI控件 不含后台 交流 共享经济 出行 图像 地图定位 外卖 多媒体 娱乐 小程序 布局 带后台完整项目 开源项目 搜索 支付 效率 教育 日历 机器学习 深度学习 物流 用户系统 电商 画图 画布(canvas) 社交 签到 联网 读书 资讯 阅读 预订

官方QQ群

小程序开发群:74052405

大数据开发群: 952493060

近期文章

  • 详解Python当中的pip常用命令
  • AUTOSAR如何在多个供应商交付的配置中避免ARXML不兼容?
  • C++thread pool(线程池)设计应关注哪些扩展性问题?
  • 各类MCAL(Microcontroller Abstraction Layer)如何与AUTOSAR工具链解耦?
  • 如何设计AUTOSAR中的“域控制器”以支持未来扩展?
  • C++ 中避免悬挂引用的企业策略有哪些?
  • 嵌入式电机:如何在低速和高负载状态下保持FOC(Field-Oriented Control)算法的电流控制稳定?
  • C++如何在插件式架构中使用反射实现模块隔离?
  • C++如何追踪内存泄漏(valgrind/ASan等)并定位到业务代码?
  • C++大型系统中如何组织头文件和依赖树?

文章归档

  • 2025年6月
  • 2025年5月
  • 2025年4月
  • 2025年3月
  • 2025年2月
  • 2025年1月
  • 2024年12月
  • 2024年11月
  • 2024年10月
  • 2024年9月
  • 2024年8月
  • 2024年7月
  • 2024年6月
  • 2024年5月
  • 2024年4月
  • 2024年3月
  • 2023年11月
  • 2023年10月
  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年1月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年7月
  • 2018年6月

分类目录

  • Android (73)
  • bug清单 (79)
  • C++ (34)
  • Fuchsia (15)
  • php (4)
  • python (43)
  • sklearn (1)
  • 云计算 (20)
  • 人工智能 (61)
    • chatgpt (21)
      • 提示词 (6)
    • Keras (1)
    • Tensorflow (3)
    • 大模型 (1)
    • 智能体 (4)
    • 深度学习 (14)
  • 储能 (44)
  • 前端 (4)
  • 大数据开发 (489)
    • CDH (6)
    • datax (4)
    • doris (31)
    • Elasticsearch (15)
    • Flink (78)
    • flume (7)
    • Hadoop (19)
    • Hbase (23)
    • Hive (40)
    • Impala (2)
    • Java (71)
    • Kafka (10)
    • neo4j (5)
    • shardingsphere (6)
    • solr (5)
    • Spark (99)
    • spring (11)
    • 数据仓库 (9)
    • 数据挖掘 (7)
    • 海豚调度器 (10)
    • 运维 (34)
      • Docker (3)
  • 小游戏代码 (1)
  • 小程序代码 (139)
    • O2O (16)
    • UI控件 (5)
    • 互联网类 (23)
    • 企业类 (6)
    • 地图定位 (9)
    • 多媒体 (6)
    • 工具类 (25)
    • 电商类 (22)
    • 社交 (7)
    • 行业软件 (7)
    • 资讯读书 (11)
  • 嵌入式 (70)
    • autosar (63)
    • RTOS (1)
    • 总线 (1)
  • 开发博客 (16)
    • Harmony (9)
  • 技术架构 (6)
  • 数据库 (32)
    • mongodb (1)
    • mysql (13)
    • pgsql (2)
    • redis (1)
    • tdengine (4)
  • 未分类 (6)
  • 程序员网赚 (20)
    • 广告联盟 (3)
    • 私域流量 (5)
    • 自媒体 (5)
  • 量化投资 (4)
  • 面试 (14)

功能

  • 登录
  • 文章RSS
  • 评论RSS
  • WordPress.org

All Rights Reserved by Gitweixin.本站收集网友上传代码, 如有侵犯版权,请发邮件联系yiyuyos@gmail.com删除.