从0入门自主空中机器人-4-【PX4与Gazebo入门】
前言: 从上一篇的文章 从0入门自主空中机器人-3-【环境与常用软件安装】 | MGodmonkeyの世界 中我们的机载电脑已经安装了系统和常用的软件,这一篇文章中我们入门一下无人机常用的开源飞控PX4,以及ROS中无人机的仿真
1. PX4的安装
1.1 PX4固件代码的下载与编译
注:推荐使用已经配置好的PX4固件包,PX4版本==1.12:https://pan.quark.cn/s/9964d20e6c40 提取码:g3ij
通过github下载PX4代码(下载慢时可以找一些github的镜像网站)
git clone https://github.com/PX4/PX4-Autopilot.git --recursive
- 安装必要的依赖
sudo apt-get install protobuf-compiler libeigen3-dev libopencv-dev -ybash ./PX4-Autopilot/Tools/setup/ubuntu.sh
如果安装PX4的环境比较纯净,比如说刚装的Ubuntu系统,运行bash脚本过程中会报好几次错!因为他需要安装的依赖包比较多。解决方法其实也很简单,即 【确定导致报错的依赖包名,网上检索安装这个依赖包的方法】。我们只需要将导致报错的依赖包都安装好了,运行.sh文件时就能会跳过他们。
在安装过程中确认并通过所有的提示,即出现以下提示,完成后重新启动计算机。
Relogin or reboot computer before attempting to build NuttX targets
如果在下载或编译过程中遇到任何问题都可以参考下面的博客:
- Ubuntu20.04或18.04下PX4(pixhawk)源码编译环境配置教程,及构建代码各种错误解决办法_ubuntu20安装px4_Iamsonice的博客-CSDN博客
- PX4固件下载及环境搭建小记(Ubuntu 18.04) - 知乎 (zhihu.com)
- jmavsim仿真环境编译
cd PX4-Autopilot
make px4_fmu-v3_default
make px4_sitl jmavsim #jmavsim仿真环境
编译结束会自动启动仿真,出现一下画面则说明编译正常

- gazebo仿真编译
make px4_sitl gazebo
出现gazebo界面代表成功

2. Gazebo仿真
仿真一般用于验证算法,比较吃性能,机载电脑上运行仿真帧率会比较低,因此仿真推荐在性能比较好的电脑上运行,推荐使用WSL2或者虚拟机
- 向
~/.bashrc
中添加launch启动路径
## 文件夹的路径或有出入,以自己的为准进行修改
source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/sitl_gazebo
添加成功后执行source ~/.bashrc
来生效脚本
- 测试
可以通过下面这几条命令来测试
# 运行结果和 make px4_sitl gazebo一样
roslaunch px4 mavros_posix_sitl.launch
# 或者下面这个launch,结果场景更丰富
roslaunch px4 fast_test.launch
3. QGC地面站
- 安装QGC地面站,可以在下面的网址下载
https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html
- 安装依赖
sudo usermod -a -G dialout $USER
sudo apt-get remove modemmanager -y
sudo apt install gstreamer1.0-plugins-bad gstreamer1.0-libav gstreamer1.0-gl -y
sudo apt install libfuse2 -y
sudo apt install libxcb-xinerama0 libxkbcommon-x11-0 libxcb-cursor0 -y
注销并再次登录以启用对用户权限的更改
- 选择 Appimage格式下载:下载地址
- 添加权限并启动
chmod +x ./QGroundControl.AppImage
./QGroundControl.AppImage
4. MOVROS的基本使用
使用MOVROS来实现PX4飞控无人机的自主启动、悬停和定点飞行
- 创建工作空间以及功能包
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
catkin_create_pkg offboard geometry_msgs mavros_msgs std_msgs rospy roscpp
- 创建文件
offboard/src/offb_node.cpp
并添加下面的代码
/*** @file offb_node.cpp* @brief Offboard control example node, written with MAVROS version 0.19.x, PX4 Pro Flight* Stack and tested in Gazebo Classic SITL*/#include <ros/ros.h>
#include <geometry_msgs/PoseStamped.h>
#include <mavros_msgs/CommandBool.h>
#include <mavros_msgs/SetMode.h>
#include <mavros_msgs/State.h>mavros_msgs::State current_state;
void state_cb(const mavros_msgs::State::ConstPtr& msg){current_state = *msg;
}int main(int argc, char **argv)
{ros::init(argc, argv, "offb_node");ros::NodeHandle nh;ros::Subscriber state_sub = nh.subscribe<mavros_msgs::State>("mavros/state", 10, state_cb);ros::Publisher local_pos_pub = nh.advertise<geometry_msgs::PoseStamped>("mavros/setpoint_position/local", 10);ros::ServiceClient arming_client = nh.serviceClient<mavros_msgs::CommandBool>("mavros/cmd/arming");ros::ServiceClient set_mode_client = nh.serviceClient<mavros_msgs::SetMode>("mavros/set_mode");//the setpoint publishing rate MUST be faster than 2Hzros::Rate rate(20.0);// wait for FCU connectionwhile(ros::ok() && !current_state.connected){ros::spinOnce();rate.sleep();}geometry_msgs::PoseStamped pose;pose.pose.position.x = 0;pose.pose.position.y = 0;pose.pose.position.z = 2;//send a few setpoints before startingfor(int i = 100; ros::ok() && i > 0; --i){local_pos_pub.publish(pose);ros::spinOnce();rate.sleep();}mavros_msgs::SetMode offb_set_mode;offb_set_mode.request.custom_mode = "OFFBOARD";mavros_msgs::CommandBool arm_cmd;arm_cmd.request.value = true;ros::Time last_request = ros::Time::now();while(ros::ok()){if( current_state.mode != "OFFBOARD" &&(ros::Time::now() - last_request > ros::Duration(5.0))){if( set_mode_client.call(offb_set_mode) &&offb_set_mode.response.mode_sent){ROS_INFO("Offboard enabled");}last_request = ros::Time::now();} else {if( !current_state.armed &&(ros::Time::now() - last_request > ros::Duration(5.0))){if( arming_client.call(arm_cmd) &&arm_cmd.response.success){ROS_INFO("Vehicle armed");}last_request = ros::Time::now();}}local_pos_pub.publish(pose);ros::spinOnce();rate.sleep();}return 0;
}
代码解释或者python版本见:MAVROS Offboard 控制示例 (C++) | PX4 自动驾驶用户指南
- 修改CMakeLists.txt,添加如下两行
add_executable(offboard src/offb_node.cpp)
target_link_libraries(offboard ${catkin_LIBRARIES})
- 编译
cd ~/catkin_ws
catkin_make
source devel/setup.sh
- 启动无人机仿真并运行节点
在一个终端中运行下面指令
roslaunch px4 fast_test.launch # 启动仿真
在另一个终端中启动节点
rosrun offboard offboard
更多mavros的使用以及内置的消息、服务等使用详见官方文档:mavros - ROS Wiki
注:gazebo仿真时可能遇到的问题
- 无人无法控制时的BUG
gazebo仿真终端显示如下并不断重复
CMD: Unexpected command 176, result 0 INFO [commander] Failsafe mode deactivated INFO [commander] Failsafe mode activated
且offboard节点端口不断出现如下
[ INFO] [1705027176.310554463, 727.708000000]: Offboard enabled
解决办法:
在前面的三个终端运行的时候,打开QGC地面站,在参数中搜索
COM_RCL_EXCEPT
将
COM_RCL_EXCEPT
参数改为4
并保存![]()
参考博客:
【PX4-AutoPilot教程-Offboard】MAVROS功能包控制无人机进入offboard模式飞行官方例程(C++实现)_mavros px4 实例-CSDN博客
- 启动single_vehicle_spawn_ssdf.launch时报错
RLException: while processing /home/laohanba/PX4-Autopilot/launch/single_vehicle_spawn_ssdf.launch: Invalid <param> tag: Cannot load command parameter [model_description]: no such command [['xmlstarlet', 'ed', '-d', '//plugin[@name="mavlink_interface"]/mavlink_tcp_port', '-s', '//plugin[@name="mavlink_interface"]', '-t', 'elem', '-n', 'mavlink_tcp_port', '-v', '4560', '/home/laohanba/PX4-**从0入门自主空中机器人-4-【PX4与Gazebo入门】**
sudo apt install xmlstarlet
参考:
- Ubuntu LTS/Debian Linux 的开发环境 | PX4 自动驾驶用户指南
- PX4固件+mavros+QGC地面站安装 (qq.com)
- PX4从放弃到精通(二):ubuntu18.04配置px4编译环境及mavros环境_超维空间科技的博客-CSDN博客
- PX4开发指南-2.2.2.Linux - 创客智造/爱折腾智能机器人 (ncnynl.com)
相关文章:
从0入门自主空中机器人-4-【PX4与Gazebo入门】
前言: 从上一篇的文章 从0入门自主空中机器人-3-【环境与常用软件安装】 | MGodmonkeyの世界 中我们的机载电脑已经安装了系统和常用的软件,这一篇文章中我们入门一下无人机常用的开源飞控PX4,以及ROS中无人机的仿真 1. PX4的安装 1.1 PX4固件代码的下载…...
百度热力图数据日期如何选择
目录 1、看日历2、看天气 根据研究内容定,一般如果研究城市活力的话,通常会写“非重大节假日,非重大活动,非极端天气等”。南方晴天不多,有小雨或者中雨都可认为没有影响,要不然在南方很难找到完全一周没有…...
深入理解 ElasticSearch 索引与检索原理
在当今数字化浪潮中,数据呈爆炸式增长,如何高效地从海量信息里找到所需内容成为关键。ElasticSearch 凭借其卓越的索引和检索能力脱颖而出,成为众多企业与开发者的得力工具。接下来,让我们深入剖析它的索引和检索工作原理。 一、…...
汽车CAN通信逻辑与LabVIEW开发
CAN通信的核心概念 CAN(Controller Area Network)是一种多主通信协议,广泛应用于汽车电子系统中,用于控制单元之间的高效通信。 消息优先级:每个CAN帧包含唯一的标识符(ID),ID的…...
OWASP~SQL注入
文章只做学习知识,禁止违法。 一、简介 SQL注入是一种Web应用代码中的漏洞。在工作中渗透测试工作时,使用工具扫描、手工注入和绕过WAF注入等找注入点,其中一层不变的构造特殊请求,使其与数据库SQL语句进行闭合。测试完成闭合时会…...
大数据-261 实时数仓 - 业务数据库表结构 交易订单、订单产品、产品分类、商家店铺、地域组织表
点一下关注吧!!!非常感谢!!持续更新!!! Java篇开始了! MyBatis 更新完毕目前开始更新 Spring,一起深入浅出! 目前已经更新到了: H…...
大厂开发规范-如何规范的提交Git
多人协作开发提交代码通常是遵循约定式提交规范,如果严格安照约定式提交规范, 手动进行代码提交的话,那么是一件非常痛苦的事情,但是 Git 提交规范的处理又势在必行,那么怎么办呢? 经过了很多人的冥思苦想…...
深度学习中batch_size
Batch size调整和epoch/iteration的关系 训练数据集总共有1000个样本。若batch_size10,那么训练完全体样本集需要100次迭代,1次epoch。 训练样本10000条,batchsize设置为20,将所有的训练样本在同一个模型中训练5遍,则…...
SpringBoot的pom.xml文件中,scope标签有几种配置?
1.compile(默认) 含义:表示该依赖在项目的所有阶段(编译、测试、运行)都需要。 当你依赖一个库,并且这个库是你项目的核心部分,比如 Spring Boot 的spring - boot - starter - web,…...
科技快讯 | 水滴筹成为民政部指定个人求助网络服务平台;小米超级小爱首次向正式版用户开放;腾讯发布全球首个重症医疗大模型
本地 AI 开发利器,初探微软 Win11 AI Dev Gallery 功能 12月27日,科技媒体Windows Latest报道,微软推出AI Dev Gallery功能,助力开发者集成端侧AI。该功能支持Windows 10/11,提供25个示例模型,涵盖多领域。…...
在 Windows 上,如果忘记了 MySQL 密码 重置密码
在 Windows 上,如果忘记了 MySQL 密码,可以通过以下方法重置密码: 方法 1:以跳过权限验证模式启动 MySQL 并重置密码 停止 MySQL 服务: 打开 命令提示符 或 PowerShell,输入以下命令停止 MySQL 服务&#…...
Linux下载RabbitMQ,并解决Github拒绝访问443的问题
RabbitMQ Linux下载资源时,GitHub网站 443 拒绝访问 例如无法直接使用下面命令 rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc在Linux中无法访问Github(外网)资源的都可以采用以下类似的方式 首…...
攻防世界web新手第五题supersqli
这是题目,题目看起来像是sql注入的题,先试一下最常规的,输入1,回显正常 输入1‘,显示错误 尝试加上注释符号#或者–或者%23(注释掉后面语句,使1后面的单引号与前面的单引号成功匹配就不会报错…...
什么是ondelete cascade以及使用sqlite演示ondelete cascade使用案例
什么是ondelete cascade ON DELETE CASCADE是数据库中的一种约束,用于自动删除相关的记录。具体来说,当一个表中的记录(父表)被删除时,与其相关的其他表(子表)中的记录也会被自动删除&…...
Wordperss漏洞 DeDeCMS漏洞
Wordperss漏洞 环境搭建 #执⾏命令 cd /vulhub/wordpress/pwnscriptum docker-compose up -d #靶场地址 http://8.155.7.173:8080/wp-admin/ 注册账号 登录 漏洞一:后台修改模板拿WebShell 步骤一:思路是修改其WP的模板写入⼀句话木马后门并访问其文件…...
人才公寓系统|Java|SSM|JSP|
【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…...
SQLite本地数据库的简介和适用场景——集成SpringBoot的图文说明
前言:现在项目普遍使用的数据库都是MySQL,而有些项目实际上使用SQLite既足矣。在一些特定的项目中,要比MySQL更适用。 这一篇文章简单的介绍一下SQLite,对比MySQL的优缺点、以及适用的项目类型和集成SpringBoot。 1. SQLite 简介 …...
sqlserver镜像设置
本案例是双机热备,只设置主体服务器(主)和镜像服务器(从),不设置见证服务器 设置镜像前先检查是否启用了 主从服务器数据库的 TCP/IP协议 和 RemoteDAC (1)打开SQL Server配置管理器…...
Chapter 03 复合数据类型-1
1.列表 Python内置的一种有序、可变的序列数据类型; 列表的定义: [ ]括起来的逗号分隔的多个元素组成的序列 列表对象的创建: (1)直接赋值 >>> list1 []#创建一个空列表赋值给list1 >>> list…...
goview——vue3+vite——数据大屏配置系统
低代码数据大屏配置系统: 数据来源是可以动态api配置的: 配置上面的api接口后,在数据过滤中进行数据格式的转化。 以上内容,来源于https://gitee.com/dromara/go-view/tree/master-fetch/ 后端代码如下,需要更改…...
Linux Shell : Process Substitution
注:本文为 “Process Substitution” 相关文章合辑。 英文引文机翻,未校。 Process Substitution. 进程替换允许使用文件名引用进程的输入或输出。它采取以下形式 <(list)or >(list)进程 list 异步运行,其输入或输出显示为文件名。…...
html转PDF
项目场景: 提示:这里简述项目相关背景: 在项目中会有一些需要页面转成PDF的情况,这里需要配合一些插件可以完成 使用html2canvas将使用canvas将页面转为base64图片流,并插入jspdf插件中,保存并下载pdf。…...
React 之 Redux =》 理解+应用
文章目录 Redux基础介绍一、概述二、元素组成1. Action(动作)2. Reducer(纯函数)3. Store(仓库) 三、原理结构四、场景应用1. 大型复杂的单页应用(SPA)2. 多用户协作的应用3. 数据持…...
生成excel文件(有备注和表头的情况)
要使用 Java 导出 Excel 文件,并且通过 ExcelProperty 注解进行列的映射,可以利用 EasyExcel 库。EasyExcel 是阿里巴巴开源的一款高性能 Excel 读写工具,它支持通过注解将类与 Excel 的列进行映射,简化了 Excel 操作的复杂性。 …...
Docker 安装全攻略:从入门到上手
Docker 安装全攻略:从入门到上手 在当今的软件开发与部署领域,Docker 已经成为了一项不可或缺的关键技术。它能够将应用程序及其依赖项打包成轻量级、可移植的容器,极大地简化了开发、测试和部署的流程。本文将详细讲解在不同操作系统下 Doc…...
@Scheduled注解的使用-SpringBoot-Springtask
Scheduled 注解是 Spring 框架中用于定时任务调度的核心注解之一。通过 Scheduled 注解,开发者可以非常方便地在 Spring 应用程序中定义和配置各种定时任务,包括固定速率执行、固定延迟执行、cron 表达式执行等。本文将详细讲解 Scheduled 注解的各个方面…...
Elasticsearch:使用 Ollama 和 Go 开发 RAG 应用程序
作者:来自 Elastic Gustavo Llermaly 使用 Ollama 通过 Go 创建 RAG 应用程序来利用本地模型。 关于各种开放模型,有很多话要说。其中一些被称为 Mixtral 系列,各种规模都有,而一种可能不太为人所知的是 openbiollm,这…...
Linux 下 Mamba 环境安装踩坑问题汇总(重置版)
导航 安装教程导航 Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(初版)Linux 下Mamba 及 Vim 安装问题参看本人博客:Mamba 环境安装踩坑问题汇总及解决方法(重置版)Windows …...
(免费送源码)计算机毕业设计原创定制:Java+springboot+MySQL springboot 线上线下一体化的宠物交易
摘 要 网络发布信息有其突出的优点,即信息量大,资源丰富,更新速度快等,很符合人们希望以捷、便利的方式获得最多最有效信息的要求。本系统就是一个线上线下一体化的宠物交易,为商家提供一个信息发布的平台࿰…...
【Rust自学】7.4. use关键字 Pt.2 :重导入与换国内镜像源教程
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 7.4.1. 使用pub use重新导入名称 使用use将路径导入作用域内后。该名称在词作用域内是私有的。 以上一篇文章的代码为例: m…...
自动生成关于软件程序开发的100个文件并可提供下载入口
创建一个包含100个关于软件程序开发的文件并提供下载入口是一个庞大的任务,因为这需要编写大量的代码、文档和示例。不过,我可以提供一个大致的框架和指导,帮助你生成这些文件,并说明如何设置下载入口。 文件生成思路 编程语言文…...
Linux下基本指令
一、什么是指令 指令本质是可执行程序,在执行指令前,先在系统中查找对应的指令。在Linux系统中指令存在于/usr/bin/路径下 二、ls 指令 1、语法 ls [选项][目录或文件] 2、功能 对于目录,该命令列出该目录下的所有子目录与文件。 对于文…...
2024-12-25-sklearn学习(20)无监督学习-双聚类 料峭春风吹酒醒,微冷,山头斜照却相迎。
文章目录 sklearn学习(20) 无监督学习-双聚类1 Spectral Co-Clustering1.1 数学公式 2 Spectral Biclustering2.1 数学表示 3 Biclustering 评价 sklearn学习(20) 无监督学习-双聚类 文章参考网站: https://sklearn.apachecn.org/ 和 https://scikit-learn.org/sta…...
编程考古-传奇的开始Delphi(下)含所有版本.iso
概览 Delphi 的最新版本,即 Delphi 12,勾勒出了自公司创立以来的一条进化之路。该平台不断通过提升开发者生产力、扩展其支持的平台范围以及引入前沿技术来实现自我完善。作为 Embarcadero 提供的主要快速应用开发(RAD)环境&…...
集合stream
1.Collection集合 1.1数组和集合的区别【理解】 相同点 都是容器,可以存储多个数据 不同点 数组的长度是不可变的,集合的长度是可变的 数组可以存基本数据类型和引用数据类型 集合只能存引用数据类型,如果要存基本数据类型,需要存对应的包装类 1.2集合类体系结构【理解】…...
Xshell 和 Xftp 更新提示问题的解决方法及分析
Xshell 和 Xftp 更新提示问题的解决方法及分析 在个人使用 Xshell 和 Xftp 的过程中,通过官网注册使用一段时间后,往往会遇到这样的问题:软件提示“要继续使用此程序,你必须应用最新的更新或使用新版本”。对于那些觉得更新比较麻…...
Docker安装MongoDB
Docker安装MongoDB 1、拉取镜像2、创建容器3、启动容器4、进入容器内部5、进入admin数据库6、添加管理员,其拥有管理用户和角色的权限7、进行认证8、通过admin添加普通用户 1、拉取镜像 docker pull mongo:4.0.32、创建容器 docker create --name mongodb-server …...
解锁自动化新高度,zTasker v2.0全方位提升效率
zTasker 是一款集强大功能与高效操作于一体的自动化任务管理软件,以其简单直观的设计和一键完成操作的特性深受用户喜爱。软件体积小巧,运行速度极快,支持超过 100 种不同的任务类型,并提供 30 多种定时或条件触发方式,…...
Windows Server 安装 MySQL 8.0 详细指南
文章目录 Windows Server 安装 MySQL 8.0 详细指南准备工作安装步骤1. 解压安装包2. 初始化数据目录3. 安装 MySQL 服务4. 启动 MySQL 服务 MySQL 配置文件 (my.ini)5. 设置 root 密码6. 配置远程访问 安全建议常见问题排查性能优化提示结语 👉洛秋资源小站 Windows…...
uniapp小程序使用webview 嵌套 vue 项目
uniapp小程序使用webview 嵌套 vue 项目 小程序中发送 <web-view :src"urlSrc" message"handleMessage"></web-view>export default {data() {return {urlSrc: "",};},onLoad(options) {// 我需要的参数比较多 所以比较臃肿// 获取…...
高效搭建Nacos:实现微服务的服务注册与配置中心
一、关于Nacos 1.1 简介 Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。Nacos 提供了简单易用…...
JavaScript 实现动态产品展示网页
JavaScript 实现动态产品展示网页 1. HTML 页面结构2. CSS 样式设计3. JavaScript 实现功能功能总结 本文设计了一个基于 JavaScript 的动态产品展示网页案例,核心功能包括: 动态产品分类过滤:通过点击分类按钮,仅显示属于该分类…...
小程序配置文件 —— 13 全局配置 - window配置
全局配置 - window配置 这里讲解根目录 app.json 中的 window 字段,window 字段用于设置小程序的状态栏、导航条、标题、窗口背景色; 状态栏:顶部位置,有网络信号、时间信息、电池信息等;导航条:有一个当…...
【小程序】wxss与rpx单位以及全局样式和局部样式
目录 WXSS 1. 什么是 WXSS 2. WXSS 和 CSS 的关系 rpx 1. 什么是 rpx 尺寸单位 2. rpx 的实现原理 3. rpx 与 px 之间的单位换算* 样式导入 1. 什么是样式导入 2. import 的语法格式 全局样式和局部样式 1. 全局样式 2. 局部样式 WXSS 1. 什么是 WXSS WXSS (We…...
矩阵的因子分解1-奇异值分解
文章目录 矩阵的因子分解1-奇异值分解求法归纳例1. 对矩阵 A ( 0 1 − 1 0 0 2 1 0 ) A \begin{pmatrix} 0 & 1 \\ -1 & 0 \\ 0 & 2 \\ 1 & 0 \end{pmatrix} A 0−1011020 进行奇异值分解1. 计算 A H A A^H A AHA 的特征值和特征向量2. 将奇异值按…...
Hive其十,优化和数据倾斜
目录 Hive优化 1、开启本地模式 2、explain分析SQL语句 3、修改Fetch操作 4、开启hive的严格模式【提高了安全性】 5、JVM重用 6、分区、分桶以及压缩 7、合理设置map和reduce的数量 合理设置map数量: 设置合理的reducer的个数 8、设置并行执行 9、CBO优…...
云原生后端开发(一)
云原生后端开发 云原生(Cloud-Native)是指一种构建和运行应用程序的方式,它充分利用了云计算的特点,比如弹性伸缩、自动化部署、容器化等。在云原生的架构下,后端应用通常具备高度可扩展、可维护、易于自动化管理的特…...
Python常用模块详解:从操作系统接口到日志记录
Python常用模块详解:从操作系统接口到日志记录 1. os模块:操作系统接口主要功能示例 2. io模块:流操作主要功能示例 3. time模块:时间操作主要功能示例 4. argparse模块:命令行参数解析主要功能示例 5. logging模块&am…...
修改成清华镜像源解决Anaconda报The channel is not accessible源通道不可用问题
修改成清华镜像源解决Anaconda报The channel is not accessible源通道不可用问题 最近在通过pycharm开发python程序,引用anaconda环境建立虚拟环境时报错,报UnavailableInvalidChannel: The channel is not accessible or is invalid.应该是镜像源访问通…...
Python之Web开发
一、基本概念 Web开发是指创建和维护网站或Web应用的过程。一个典型的Web应用包括前端(客户端)和后端(服务器端)。前端负责用户界面的设计和交互,而后端则处理业务逻辑、数据存储和与数据库的通信。Python作为一门功能…...