Hadoop3集群实战:从零开始的搭建之旅
目录=
一、概念
1.1 Hadoop是什么
1.2 历史
1.3 三大发行版本(了解)
1.4 优势
1.5 组成💗
1.6 HDFS架构
1.7 YARN架构
1.8 MapReduce概述
1.9 HDFS\YARN\MapReduce关系
二、环境准备
2.1 准备模版虚拟机
2.2 安装必要软件
2.3 安装xshell
2.4 创建用户并赋予root权限
2.5 克隆虚拟机
2.6 时间同步
2.7 ssh免密登录
2.8 xsync脚本分发
2.9 安装JDK和Mysql
安装jdk(三个节点)
安装mysql(主节点)目前不需要
三、完全分布式集群搭建
3.1 安装hadoop(三台)
3.2 集群部署
3.2.1 部署规划
3.2.2 配置文件(三台)
3.2.3 启动集群
参考:
一、概念
1.1 Hadoop是什么
- apache的分布式系统基础架构
- Hadoop实际上是一个生态圈,里面有多个组件,主要解决海量数据存储和分析计算问题
1.2 历史
- Hadoop是Apache Lucene创始人 Doug Cutting 创建的。最早起源于Nutch,它是Lucene的子项目。Nutch的设计目标是构建一个大型的全网搜索引擎,包括网页抓取、索引、查询等功能,但随着抓取网页数量的增加,遇到了严重的可扩展性问题:如何解决数十亿网页的存储和索引问题。
- 2003年Google发表了一篇论文为该问题提供了可行的解决方案。论文中描述的是谷歌的产品架构,该架构称为:谷歌分布式文件系统(GFS),可以解决他们在网页爬取和索引过程中产生的超大文件的存储需求。
- 2004年 Google发表论文向全世界介绍了谷歌版的MapReduce系统。
- 同时期,以谷歌的论文为基础,Nutch的开发人员完成了相应的开源实现HDFS和MAPREDUCE,并从Nutch中剥离成为独立项目HADOOP
- 到2008年1月,HADOOP成为Apache顶级项目,迎来了它的快速发展期。
- 2006年Google发表了论文是关于BigTable的,这促使了后来的Hbase的发展。
因此,Hadoop及其生态圈的发展离不开Google的贡献。
1.3 三大发行版本(了解)
- Apache 最基础的版本,完全开源免费
- CDH,集成了大数据框架 发行版本
- HDP,Ambari是HDP的安装工具和管理界面
Cloudera公司已经正式终止了对CDH的支持。分别在2021年12月、2022年3月,Cloudera正式终止了对HDP(Hortonworks Data Platform)及CDH的支持
后续推出CDP,新一代数据平台产品,它整合了HDP和CDH的功能并进行了优化和扩展。
1.4 优势
- 高可靠性:底层维护多个数据副本,避免故障时数据丢失
- 高扩展性:集群间分配任务数据,方便扩展节点,动态扩容缩减
- 高效性:并行工作
- 高容错性:自动将失败的任务重新分配
1.5 组成💗
Hadoop1.x、2.x、3.x的区别
- Hadoop1.*中MapReduce中计算和资源调度同时处理,耦合性比较大
- Hadoop2.*新增了YARN进行资源调度,MapReduce只用来计算
- Hadoop2和3在组成上没有区别
1.6 HDFS架构
分布式文件系统
- NameNode 数据存储位置(存储文件元数据,如:文件名 目录结构 文件属性 所在位置),相当于目录
- DataNode 存储数据,相当于内容
- 2NN 辅助NameNode工作(每隔一段时间对NameNode做数据备份)
1.7 YARN架构
资源管理器
- Resource Manager 集群资源管理(内存、cup)
- Node Manager 单节点资源管理
- Container 容器,相当于一台独立服务器
- ApplicationMaster,单个任务资源管理
1.8 MapReduce概述
- map阶段,并行处理输入数据
- reduce阶段,对map结果汇总
1.9 HDFS\YARN\MapReduce关系
大数据技术生态体系
二、环境准备
目标:需要准备3台虚拟机(本次使用Ubuntu24.04,但是教程大多是Centos,大差不差),机器名为hadoop102、hadoop103、hadoop104,对应ip:192.168.10.102、192.168.10.103、192.168.10.104
2.1 准备模版虚拟机
软件操作系统安装参考:(这部分没有详细记录,一般使参考视频和博客,要细心)
VMware 虚拟机图文安装和配置 Ubuntu Server 22.04 LTS 教程_00-installer-config.yaml-CSDN博客
19_尚硅谷_Hadoop_入门_Centos7.5软硬件安装_哔哩哔哩_bilibili
- 配置静态ip 192.168.10.100,nat桥接模式
- 配置文件修改/etc/netplan
- 配置主机名称和ip映射:修改服务器hosts文件 192.168.10.100 hadoop100
- 修改一些配置虚拟机和windows上的
2.2 安装必要软件
安装vim、iputils-ping、net-tools、rsync(一般安装最小体积的server版本才需要安装这些)
- sudo apt install vim
- sudo apt update
- sudo apt-get update
- sudo apt install iputils-ping
- sudo apt install net-tools
- sudo apt install rsync
测试网络:ping www.baidu.com
测试:ip ifconfig
2.3 安装xshell
c21_尚硅谷_Hadoop_入门_Xshell远程访问工具_哔哩哔哩_bilibili参考:21_尚硅谷_Hadoop_入门_Xshell远程访问工具_哔哩哔哩_bilibili
主要是做本机和虚拟机的交互和文件上传。因为本地安装了termius就不需要这个了,感觉termius更好用
2.4 创建用户并赋予root权限
给用户mlj root权限:vim /etc/sudoers
mlj ALL=(ALL:ALL) NOPASSWD:ALL
2.5 克隆虚拟机
- 在vmware上克隆模版虚拟机
- 修改ip和主机名分别为hadoop102 hadoop103 hadoop104
- 修改ip和主机名的映射:vim /etc/hosts
192.168.10.102 hadoop102192.168.10.103 hadoop103192.168.10.104 hadoop104
报错:使用termius进行root用户登录时报错:SSH配置不允许root登录
- 修改/etc/ssh/sshd_config PermitRootLogin:yes
- 重启生效sudo systemctl restart sshd
2.6 时间同步
如果服务器在公网环境(能连接外网),可以不采用集群时间同步
- 安装ntp时间同步服务器(所有节点):apt install ntp
- 查看状态、启动、设置开机自启
systemctl status ntpdsecsystemctl start ntpsecsystemctl enable ntpsec
- 重启服务器:reboot
- 所有节点设置时区:中国上海 timedatectl set-timezone Asia/Shanghai
- 修改配置同步时间的机器 vim /etc/ntpsec/ntp.conf
#注释(主节点需要,子节点注释掉)
#集群在局域网中,不使用其他互联网上的时间
pool 0.ubuntu.pool.ntp.org iburst
pool 1.ubuntu.pool.ntp.org iburst
pool 2.ubuntu.pool.ntp.org iburst
pool 3.ubuntu.pool.ntp.org iburst
#pool ntp.ubuntu.com#(子节点配置,使用102作为时间同步机器)
server hadoop102#当该节点丢失网络连接,依然可以采用本地时间作为时间服务器为集群中的其他节点提供时间同步
#(所有节点需要)
server 127.127.1.0fudge
127.127.1.0 stratum 10#授权网段(主节点需要)
restrict 192.168.10.0 mask 255.255.255.0 nomodify notrap
- ntpq -p 查看同步情况
问题:时间和windows实践不一致
(1)安装ntpdate工具:sudo apt-get install ntpdate
(2)同步系统时间与网络时间:sudo ntpdate cn.pool.ntp.org
(3)其他节点同步hadoop102的时间: sudo ntpdate hadoop102
2.7 ssh免密登录
~/.ssh/
(1)102生成公私钥 三次回车 ssh-keygen -t rsa
(2)copy公钥到102 103 104 (本机也要配置)ssh-copy-id hadoop103
(3)103、104执行相同的步骤
(4)验证:ssh hadoop103
2.8 xsync脚本分发
(1)编写分发脚本xsync
注意:每台机器都要有rsync才能分发成功
/home/mlj/bin目录下,新建xsync
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
doecho ==================== $host ====================#3. 遍历所有目录,挨个发送for file in $@do#4 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done
(2)修改xsync环境变量,否则找不到该命令
export PATH=$PATH:/home/mlj/bin
注意:rsync基于ssh服务需要配置秘钥,免密登录
2.9 安装JDK和Mysql
安装jdk(三个节点)
(1)下载上传到虚拟机:scp .\jdk-8u202-linux-x64.tar.gz root@192.168.10.104:/opt/soft/
(2)解压缩:sudo tar -zxvf jdk-8u202-linux-x64.tar.gz -C /opt/module/
(3)环境变量配置
#JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.8.0_202export PATH=$PATH:$JAVA_HOME/bin
(4)验证:java-version
安装mysql(主节点)目前不需要
步骤:
- 安装docker
- 使用docker安装mysql
- docker-compose启动mysql
问题:
(1)docker-compose报错,缺少python的一个包setuptools
- 安装pipx :sudo apt install pipx
- 安装包setuptools :sudo pipx install setuptools
- docker-compose -version
(2)拉取镜像报错修复:Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
使用第三方镜像库:
AtomHub 可信镜像仓库平台 · OpenAtom Foundation
三、完全分布式集群搭建
3.1 安装hadoop(三台)
(1)上传hadoop包:tar -zxvf hadoop-3.4.1.tar.gz -C /opt/module
(2)解压缩 tar -zxvf hadoop-3.4.1.tar.gz -C /opt/module
(3)环境变量配置
#hadoop环境变量
export HADOOP_HOME=/opt/module/hadoop-3.4.1 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
(4)集群配置
3.2 集群部署
3.2.1 部署规划
- NameNode和SecondaryNameNode不要安装同一台
- ResourceManager也很消耗内存,不要和NameNode和SecondaryNameNode配置在一台机器
3.2.2 配置文件(三台)
自定义配置文件 4个
配置core-site.xml
<!-- 指定 NameNode 的地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop102:8020</value></property><!-- 指定 hadoop 数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.4.1/data</value></property><!-- 配置 HDFS 网页登录使用的静态用户为 mlj --><property><name>hadoop.http.staticuser.user</name><value>mlj</value></property>
hdfs-site.xml
<!-- nn web 端访问地址-->
<property><name>dfs.namenode.http-address</name><value>hadoop102:9870</value>
</property>
<!-- 2nn web 端访问地址-->
<property><name>dfs.namenode.secondary.http-address</name><value>hadoop104:9868</value>
</property>
<!--HDFS 中是否启用权限检查-->
<property><name>dfs.permissions</name><value>false</value>
</property>
yarn-site.xml
<!-- Site specific YARN configuration properties -->
<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<!-- 指定 ResourceManager 的地址-->
<property><name>yarn.resourcemanager.hostname</name><value>hadoop10</value>
</property>
<!--是否将对容器实施虚拟内存限制-->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>
mapred-site.xml
<!-- 指定 MapReduce 程序运行在 Yarn 上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置works(不能有空格换行!)
hadoop102hadoop103hadoop104
3.2.3 启动集群
- 配置目录权限
sudo chmod -R a+w /opt/module/hadoop-3.4.1/
- 初次启动初始化(初始化失败可能是没有权限,执行上一步)
hdfs namenode -format
- 修改hadoop的环境变量hadoop-env.sh:vim /opt/module/hadoop-3.4.1/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_202
- 脚本分发(文件夹需要修改权限),xsync 脚本
- 启动dfs集群:sbin/start-dfs.sh
- jps 验证
- 访问hdfs web页面 http://192.168.10.102:9870/
- 启动yarn sbin/start-yarn.sh
- 登录yarn web页面 http://192.168.10.103:8088/
参考:
尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放_哔哩哔哩_bilibili
Hadoop3.1.4完全分布式集群搭建_hadoop 3.1.4-CSDN博客
相关文章:
Hadoop3集群实战:从零开始的搭建之旅
目录 一、概念 1.1 Hadoop是什么 1.2 历史 1.3 三大发行版本(了解) 1.4 优势 1.5 组成💗 1.6 HDFS架构 1.7 YARN架构 1.8 MapReduce概述 1.9 HDFS\YARN\MapReduce关系 二、环境准备 2.1 准备模版虚拟机 2.2 安装必要软件 2.3 安…...
软件工程复习记录
基本概念 软件工程三要素:方法、工具、过程 软件开发方法:软件开发所遵循的办法和步骤,以保证所得到的运行系统和支持的文档满足质量要求。 软件开发过程管理 软件生命周期:可行性研究、需求分析、概要设计、详细设计、编码、测…...
爬虫运行后数据如何存储?
爬虫运行后获取的数据可以存储在多种不同的存储系统中,具体选择取决于数据的规模、查询需求以及应用场景。以下是一些常见的数据存储方法: 1. 文件系统 对于小型项目或临时数据存储,可以直接将数据保存到本地文件中。常见的文件格式包括&…...
【C语言】C语言的潜规则:运行环境对C程序执行特性的影响
C语言的潜规则:C语言的执行会因为它的运行环境被赋予不同的特性 C语言是一种非常底层、高效、灵活的编程语言,但这种灵活性也带来了很多不确定性。C语言的行为在很大程度上依赖于其运行环境(编译器、操作系统、硬件架构等)。这也…...
Win11 24h2 不能正常ensp
Win11 24h2 不能正常ensp 因为Win11 24h2的内核大小更改,目前virtualbox在7.1.4中更新解决了。而ensp不支持5.2.44之后的virtualbox并已停止维护,不再进行5.2.44修复,virtualbox 5.2.24的ntdll文件sizeofimage问题,此问题导致ens…...
【认证法规】安全隔离变压器
文章目录 定义反激电源变压器 定义 安全隔离变压器(safety isolating transformer),通过至少相当于双重绝缘或加强绝缘的绝缘使输入绕组与输出绕组在电气上分开的变压器。这种变压器是为以安全特低电压向配电电路、电器或其它设备供电而设计…...
【北京迅为】iTOP-4412全能版使用手册-第六十七章 USB鼠标驱动详解
iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、…...
MFEM源码分析:代数库
数值计算引擎通常需要将表征物理模型的数学模型转化为线性/非线性方程组,进而求解这些线性/非线性方程组来获取数值解。因此,代数库自然成为数值计算引擎不可或取的模块。 而且,普遍认为,代数库的性能在很大程度上决定数值计算引…...
全景图相关算法学习笔记
目录 ldm3d CVPR 2024 Highlight 文本生360全景!PanFusion 全景图光流学习 一张2D全景图可合成高质量的360度3D场景 全景图生成3d ldm3d https://huggingface.co/Intel/ldm3d-pano CVPR 2024 Highlight 文本生360全景!PanFusion 文生图࿰…...
3D 目标检测:从萌芽到前沿的技术演进之路
亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、JAVA 、PYTHON与SAP 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在…...
泷羽sec:shell编程(9)不同脚本的互相调用和重定向操作
声明: 学习视频来自B站up主 泷羽sec 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&#…...
Java Web 3 Axios Vue组件库
一 Ajax 1 同步 异步 2 原生Ajax 比较繁琐 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Documen…...
探索未来驾驶:全面解析现代汽车高级辅助驾驶系统功能(APA 、SDA 、TBA、RPA、HPA、PEB)
随着科技的不断进步,汽车行业正在经历一场革命,自动驾驶技术逐渐成为现实。从自适应巡航控制到完全自动驾驶,各种高级驾驶辅助系统(ADAS)正在改变我们的驾驶方式。今天,我们将深入探讨几种关键的高级驾驶辅…...
MYSQL - 索引详解
一 什么是索引? 实际上在上一篇介绍MYSQL的体系结构当中我们稍微提及了一点,在引擎层,我们提到不同的引擎对应的索引的实现方式,选择是不一样的。 简单理解,索引(index)其实就是一种帮助MYSQL高…...
AI智能体Prompt预设词指令大全+GPTs应用使用
AI智能体使用指南 直接复制在AI工具助手中使用(提问前) 可前往SparkAi系统用户官网进行直接使用 SparkAI系统介绍文档:Docs 常见AI智能体GPTs应用大全在线使用 自定义添加制作AI智能体进行使用: 文章润色器 你是一位具有敏锐洞察…...
美团一面,有点难度
前几天分享过一篇训练营的朋友在阿里的一面面经,挺简单的她也是很轻松的过了,感兴趣的可以看一下我之前发的文章。 今天要分享的还是她的面经,美团的一面,感觉比阿里的难一些,各位观众老爷你怎么看? 自我介…...
axios取消请求
Axios 使用 cancel token 取消请求 1、先在axios请求中加上cancelToken import request from ../utils/request // 配置过的Axios 对象 import axios from axios export function getDetail(params, that) { return request({url: /api/indexlineage/detail, method: get,par…...
Spark简介
Spark简介 菜鸟弹性分布式数据集 (RDDs)参考 Spark通过两种方式使用Hadoop:一种是存储,另一种是处理。由于Spark具有自己的集群管理计算,因此仅将Hadoop用于存储目的。 Spark 的关键思想是- [Resilient Distributed Datasets(RDD…...
visual studio2017版本的安装下载
绝绝子,官网找了半天都不知道在哪里下载的,和当初下载旧版本的qt一样难受,还是用百度云吧!!!!!!!!!! 参考文章࿱…...
【Linux】ubuntu下一键配置vim
🔥个人主页🔥:孤寂大仙V 🌈收录专栏🌈:Linux 🌹往期回顾🌹:Linux权限(超详细彻底搞懂Linux的权限) 🔖流水不争,争的是滔滔…...
[光源控制] UI调节光源亮度参数失效
📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢本文由 丶布布原创,首发于 CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览: 一. 前言二. 串口调试助手辅助排查接线问题二. …...
C语言学习:速通指针(2)
这里要学习的有以下内容 1. const修饰指针 2. 野指针 3. assert断⾔ 4. 指针的使⽤和传址调⽤ 那么从这里开始 1. const 修饰指针 const修饰变量 首先我们知道变量是可以修改的,如果把变量的地址交给⼀个指针变量,通过指针变量的也可以修改这个变…...
方案拆解 | 打击矩阵新规频出!2025矩阵营销该怎么玩?
社媒平台的矩阵营销又要“变天”了?! 11月18日,小红书官方发表了被安全薯 称为“小红书史上最严打击黑灰产专项”新规,其中就包括黑灰产矩阵号的公告。 ▲ 图源:小红书 实际上,不包括这次,今年…...
Ubuntu22.04深度学习环境安装【cuda+cudnn】
为了复现一篇深度学习论文,特意安装了Linux系统。前一天已经安装Linux显卡驱动,现在需要安装cuda、cudnn等。 论文代码 论文PDF 确定包版本: 根据论文提供的代码。在requirements.txt中发现cuda版本为11.7,cudnn为8.5.0,python没…...
etcd分布式存储系统快速入门指南
在分布式系统的复杂世界中,确保有效的数据管理至关重要。分布式可靠的键值存储在维护跨分布式环境的数据一致性和可伸缩性方面起着关键作用。 在这个全面的教程中,我们将深入研究etcd,这是一个开源的分布式键值存储。我们将探索其基本概念、特…...
dataTable
在 C# 中,DataTable 是 .NET Framework 中用于处理数据表格的一个类,属于 System.Data 命名空间。它是一种内存中表示数据表的结构,通常用于临时存储和操作数据,类似于数据库中的表。DataTable 的主要特点是行列结构,其…...
Flink学习连载文章11--双流Join
双流 Join 和两个流合并是不一样的 两个流合并:两个流变为 1 个流 union connect 双流 join: 两个流 join,其实这两个流还是原来的,只是满足条件的数据会变为一个新的流。 可以结合 sql 语句中的 union 和 join 的区别。 在离线 Hive 中&…...
RayLink远程控制技术助力教育领域的创新应用研究
远程控制技术在教育领域的应用确实改变了传统教学模式。想象一下,无论身处何地,只要有网络连接,就能通过远程软件加入课堂,这种体验是不是很吸引人?虽然远程控制听起来很技术化,但别担心,小编今…...
【Qt移植LVGL】QWidget手搓LVGL软件仿真模拟器(非直接运行图形库)
【Qt移植LVGL】QWidget手搓LVGL软件仿真模拟器(非直接运行图形库) 打包开源地址: Qt函数库gitee地址 更新以gitee为准 移植后的demo工程: gitee 有些没实现的 后续我会继续优化 文章目录 别碰瓷看清楚:是移植&#…...
PostgreSQL UNION 操作符
PostgreSQL UNION 操作符 引言 PostgreSQL 是一种功能强大的开源对象关系型数据库管理系统,它以其稳定性、可靠性和先进的特性而闻名。在处理数据库查询时,我们经常需要合并来自不同表的数据,或者合并同一表的不同查询结果。这时,UNION 操作符就变得非常有用。本文将详细…...
spring boot 测试 mybatis mapper类
spring boot 测试 mybatis mapper类 针对 mybatis plus不启动 webserver指定加载 xml 【过滤 “classpath*:/mapper/**/*.xml” 下的xml】, mapper xml文件名和mapper java文件名称要一样,是根据文件名称过滤的。默认情况加载和解析所有mapper.xml 自定义 MapperT…...
Python发kafka消息
要在Python中向Kafka发送消息,你可以使用kafka-python库。首先,你需要安装这个库。如果你还没有安装它,可以通过pip来安装: bash pip install kafka-python 接下来是一个简单的例子,展示如何创建一个生产者࿰…...
zipkin 引申一:如何遍历jar目录下的exec.jar并选择对应序号的jar启动
文章目录 一、Zipin概述二、如何下载三、需求描述四、代码实现1. pom设置2. 相关工具类3. 核心代码 五、打包部署1. 打包,在项目目录执行mvn clean package2. 部署3. 运行以及停止 六、源码放送 一、Zipin概述 Zipkin是Twitter开源的分布式跟踪系统,基于…...
使用 httputils + protostuff 实现高性能 rpc
1、先讲讲 protobuf protobuf 一直是高性能序列化的代表之一(google 出品)。但是用起来,可难受了,你得先申明 “.proto” 配置文件,并且要把这个配置文件编译转成类。所以必然要学习新语法、新工具。 可能真的太难受…...
Facebook广告文案流量秘诀
Facebook 广告文案是制作有效 Facebook 广告的关键方面。它侧重于伴随广告视觉元素的文本内容。今天我们的博客将深入探讨成功的 Facebook 广告文案的秘密! 一、广告文案怎么写? 正文:这是帖子的正文,出现在您姓名的正下方。它可…...
在Vue.js中生成二维码(将指定的url+参数 生成二维码)
在Vue.js中生成二维码,你可以使用JavaScript库如qrcode或qr.js。以下是一个简单的例子,展示如何在Vue组件中使用qrcode库将指定的URL加上参数生成二维码。 首先,你需要安装qrcode库。如果你使用的是npm或yarn,可以通过命令行安装…...
Face2QR:可根据人脸图像生成二维码,还可以扫描,以后个人名片就这样用了!
今天给大家介绍的是一种专为生成个性化二维码而设计的新方法Face2QR,可以将美观、人脸识别和可扫描性完美地融合在一起。 下图展示为Face2QR 生成的面部图像(第一行)和二维码图像(第二行)。生成的二维码不仅忠实地保留…...
【Linux网络编程】第六弹---构建TCP服务器:从基础到线程池版本的实现与测试详解
✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】【Linux网络编程】 目录 1、TcpServerMain.cc 2、TcpServer.hpp 2.1、TcpServer类基本结构 2.2、构造析构函数 2.3、InitServer(…...
XML 语言随笔
XML的含义 XML(eXtensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标记语言。XML与HTML(HyperText Markup Language,超文本标记语言)类似,但XML的设计目的是描述数据&…...
flex: 1 display:flex 导致的宽度失效问题
flex: 1 & display:flex 导致的宽度失效问题 问题复现 有这样的一个业务场景,详情项每行三项分别占33%宽度,每项有label字数不固定所以宽度不固定,还有content 占满标签剩余宽度,文字过多显示省略号, 鼠标划入展示…...
65页PDF | 企业IT信息化战略规划(限免下载)
一、前言 这份报告是企业IT信息化战略规划,报告详细阐述了企业在面对新兴技术成熟和行业竞争加剧的背景下,如何通过三个阶段的IT战略规划(IT 1.0基础建设、IT 2.0运营效率、IT 3.0持续发展),系统地构建IT管理架构、应…...
15.三数之和
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&am…...
【Notepad++】---设置背景为护眼色(豆沙绿)最新最详细
在编程的艺术世界里,代码和灵感需要寻找到最佳的交融点,才能打造出令人为之惊叹的作品。而在这座秋知叶i博客的殿堂里,我们将共同追寻这种完美结合,为未来的世界留下属于我们的独特印记。 【Notepad】---设置背景为护眼色…...
项目代码第2讲:从0实现LoginController.cs,UsersController.cs、User相关的后端接口对应的前端界面
一、User 1、使用数据注解设置主键和外键 设置主键:在User类的U_uid属性上使用[Key]注解。 设置外键:在Order类中,创建一个表示外键的属性(例如UserU_uid),并使用[ForeignKey]注解指定它引用User类的哪个…...
电子商务人工智能指南 3/6 - 聊天机器人和客户服务
介绍 81% 的零售业高管表示, AI 至少在其组织中发挥了中等至完全的作用。然而,78% 的受访零售业高管表示,很难跟上不断发展的 AI 格局。 近年来,电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…...
vue.js组件开发的所有流程
1. 设计组件架构 首先,你需要考虑应用的结构,决定哪些部分应该成为独立的组件。这包括: 提取重复的UI元素:如按钮、输入框、卡片等。 功能模块:例如登录框、导航栏、数据表格等。 2. 设置开发环境 安装Node.js…...
从零开始学TiDB(1) 核心组件架构概述
首先TiDB深度兼容MySQL 5.7 1. TiDB Server SQL语句的解析与编译:首先一条SQL语句最先到达的地方是TiDB Server集群,TiDB Server是无状态的,不存储数据,SQL 发过来之后TiDB Server 负责 解析,优化,编译 这…...
VsCode运行Ts文件
1. 生成package.json文件 npm init 2. 生成tsconfig.json文件 tsc --init 3. Vscode运行ts文件 在ts文件点击右键执行Run Code,执行ts文件...
初始化webpack应用示例
1、初始化npm mkdir webpack_test cd webpack_test npm init 2、安装webpack依赖 npm install webpack webpack-cli -D 3、添加文件夹,入口文件 mkdir src touch index.js touch add-content.js 文件夹结构 index.js import addContent from "./add-cont…...
liunx docker 部署 nacos seata sentinel
部署nacos 1.按要求创建好数据库 2.创建docker 容器 docker run -d --name nacos-server -p 8848:8848 -e MODEstandalone -e SPRING_DATASOURCE_PLATFORMmysql -e MYSQL_SERVICE_HOST172.17.251.166 -e MYSQL_SERVICE_DB_NAMEry-config -e MYSQL_SERVICE_PORT3306 -e MYSQL…...