基于Ambari搭建hadoop生态圈+Centos7安装教程(还没写完,等明天补充完整)

 

当我们学习搭建hadoop的时候,未免也会遇见很多繁琐的事情,比如很多错误,需要解决。在以后公司,也不可能让你一个一个搭建hadoop,成千上万的电脑,你再一个个搭建,一个个报错,而且每台电脑错误还不一样,这就造成了很大的困扰,所以直接就用ambari里面集成的hadoop生态来用即可在这里,在这里我将写给出如何搭建Ambari以及搭建hadoop生态圈。

前提注意:

1.要是三个虚拟机都要操作的话,我会特意写出来,没特地说明就是只用在虚拟机master里面操作

2.在这个期间不要提前乱改一些配置文件,不要因为提前就已知一些事后问题了,就开始提前修改或者注释一些文件。

3.最好搭建的时候不要中途断网或者什么一系列操作,或者就是说一会干干这一会干干那的,要做就要做一步到位是最好的!

4.Centos7的语言选择用英文的,不要用中文的,听别人说输入一些英文符号可能中文会识别解码,造成一些不必要的错误,毕竟这些东西是老外开发的,国际英文还是占据首要第一语言。

5.尽量在XShell里面操作虚拟机。

声明:

我写这个博客是基于上一个博主写的,博主csdn链接基于Ambari搭建大数据分析平台-CSDN博客,因为本人是按照他的博客完成的ambari操作,本人感觉他的博客只能算是完成了百分之90,也就是相当于一个受伤的野马在奔跑,总会要摔倒的。

-------------------------------------------------安装ambari预备与说明--------------------------------------------------

软件预备:这个在官网下载也可以,也可以用镜像下载,但是不建议在官网,建议在以下网盘下载或者镜像

链接:https://pan.baidu.com/s/18SGZkYnyq9AAjp5SLYqpZA?pwd=jiau

密码:jiau

(1)VMware Workstation 17 Pro

(2)CentOS-7-x86_64-DVD-2009.iso(mini版本也可以,差别就是mini无可视化界面,看个人喜好)

(3)ambari-2.6.0.0-centos7.tar.gz

(3)HDP-2.6.3.0-centos7-rpm.tar.gz

(4)HDP-UTILS-1.1.0.21-centos7.tar.gz

(5)jdk-8u112-linux-x64.tar.gz

(6)MySQL-5.6.46-1.el7.x86_64.rpm-bundle.tar

(7)mysql-connector-java-5.1.40.jar

(8)XShell,Xftp

首先在网上看教程安装VMware Workstation 17 Pro以及破解。

-------------------------------------------------------安装Centos7--------------------------------------------------------

(1)在VMware Workstation 17 Pro安装CentOS-7-x86_64-DVD-2009.iso

图片顺序就是安装的顺序

44f60733c1394d17a98fd3a4ffd5ec49.png

5854729f95c34599be1c88aaefb297b2.png

088d0a3be3be445594d50de9c922d482.png005d0492a4af45e28de207fffc8cd6b3.png

选好自己的路径,我感觉有很多学计算机的同学还是喜欢把东西放在C盘,尽量把东西往D盘移动,并且在D盘单独创建一个文件夹专门搭建ambari。

951e93950f6a4825aa0aeab7059152d3.png

029e9f1bd71f42d59079af380e9a64ad.png

aa2e7a38003e4bfd85df63adb844d2b2.png6a80c2cd634c4a3aa9e28c09ae7059c7.png

 7ef9255c322d4791b1018a5ef29ab39d.pngbc76d017ef904a529b03f5fff72c72b6.png

这里需要40GB

79fd936c2c424c1aa0cb0e0f2b0ee0a7.png 这个文件路径就放在你当前创建的虚拟机文件下路径下即可,不要乱放别处。8a29700a16f54c8598d3a576dd8a0da7.png895805527df746b0a0bb914ff6486ef9.png创建完之后

397cff65e9ff457e80e7813098a57f4e.png先不要着急开机,

找到自己电脑里面的Centos7镜像

8c9679604833453abbe295df0d1892c4.pngf39d69adcc744abf906bc21c4fd72f90.png

然后点击下面的确定,之后开启虚拟机

选择Install CentOS 7

5d27f0615cda429eb26649dfe5fbd60e.png然后就是等待,出现配置界面

选择英文!

141bb482d7a946ec93316ad3455a7fe0.png96a1adff009043479ce87bdc377cef50.png

步骤顺序(先了解顺序,选择下面会写):这个一个个来就好,第一步是DATE & TIME,第二步是KEYBOARD, 第三步是LANGUANGE,第四步是INSTALLATION SOURCE,第五步是SOFTWARE SELECTION。

a92db33ce432473a82afb5b0d5f46851.png第六步是INSTALLATION,第七步是KDUMP,第八步是NETWORK & HOST NAME, 第九步是SECURITY POLICY

------------------------------------------------------配置Centos7开始----------------------------------------------------

第一步:选择shanghai

e555f2759aea449f84386f92c35eaf78.png

第二步:选择English键盘

e0459aa31a004f72acf84b30b4db2924.png第三步:选择语言

633d1d37e72940e297bfd11716d7eadb.png

第四步:默认不动即可

7cb99c84011b44f6b43b4955b40646c3.png第五步:这个就是我之前在软件预备那里说的Centos7有专门的一个mini版,选择1的话,就是无可视化,也就是纯纯的命令框,选择2的话是有可视化版本的,就是有桌面,因为本人搭建ambari的时候看文件夹喜欢从可视化里面找,所以就安装GNOME Desktop了。

43006a3fdcb94a42b3ce6633b8569f5a.png

第六步:鼠标点两下那个磁盘,其他不变

f34d8a73ac9f4d96ac2fae6e12fd76a3.png第七步:不要勾选这个Enable kdump

9dd68a8dc64e448bb0c35be3ed388d64.png第八步:网卡打开,

e7afb81216a84f8ba4c26410bfa818f9.png第九步:这个不用管。

640ed50c089b4bdf95c12c0487224f9e.png

然后就点击下方的

90d103a21ec04b76a9ce16919dde3c3a.png

这里两个都设置一下(实际上要是你只设置第一个的话,那么你进入系统还是要设置第二个,而且也比较繁琐,所以两个都设置比较好)

03cc9d1e10754eac840421864a6f5cbb.png第一个:上下密码设置一样(建议设置简单的,因为后续在虚拟机操作需要输入很多次密码!)

这里的Done点击两下

cb48565cb479468facb66ed1261a6a34.png第二步:这个也是一样,只不过多了个用户名,我设置的是young,密码还和第一步一样,Done一样点击两下

1b6a711b8ae949c5a9e50c2cce26202f.png

然后等待。。。。。进入系统,等待这个加载完

a1a3dac8b4454f0aafbb1bbfc4da4e17.png然后完成安装

1e1b7ae1fbdb47d9aa83a422f424b0aa.png

依然是配置

d7148e42b483452283fe71c2c87a0df6.png第一步:打勾

ec66fadf46da4a8abb745799ca6f9b6e.png第二步:

1bfd18ca45f84a9cb8f64782db18dee2.png

第三步:点击右下角6b1c92d696174c41bf59ba290ce1717f.png

接下来就是进入用户了,点击用户

8d41531cbe4142a0a604aa8a89dbf32c.png

输入你之前设置的密码,可能出现输入不了数字,就是刚打开虚拟机的时候,数字键盘那个Num Lock灯灭了,按一下就能输入数字了。这个是虚拟机的通病。

413766761ad2428f8af189b12b953e5e.png

继续选English,点击右上角的Next

2f4a0395d3d94e808d4cb34537521369.png

选择English(US)下一步

a32fa47ebf4340208faf0ca7fb67b5a8.png

默认的就好,继续Next

796bec5a9c1d4b8e8e539b1ad18f1781.png

点击右上角的skip,这个时候Centos7终于安装好了!

cf00f6490add41729cd75e3cc2383ce0.png

------------------------------------------------------安装ambari开始------------------------------------------------------

本人一般是在XShell连接虚拟机下操作的,所以在这里不讲怎么用XShell连接虚拟机,网上也有教程。

一、换镜像源

首先要换到root用户下操作这些命令,在命令框或者XShell输入进入管理员用户(也就是获得管理员权限)

su root

然后进去yum.repos.d文件,更换镜像源,你可以一步一步复制下来操作。

//进入yum.repos.d文件
cd /etc/yum.repos.d//换第一个镜像源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo//换第二个镜像源
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo//清理原来的镜像缓存
yum clean all//更新镜像源
yum makecache

二、安装初始软件

export JAVA_HOME=/opt/jdk1.8.0_112
export PATH=${JAVA_HOME}/bin:$PATH

三、安装JDK

下载文末网盘资源中的文件:jdk-8u112-linux-x64.tar.gz

借助工具(比如xftp, lrzsz, Winscp)将上面文件上传到虚拟机master

(1)安装(本人喜欢把软件放在/opt目录下)

解压jdk-8u112-linux-x64.tar.gz

tar -xvf jdk-8u112-linux-x64.tar.gz -C /opt 

运行命令 vi /etc/profile修改环境变量,在文件末尾添加如下内容

export JAVA_HOME=/opt/jdk1.8.0_112
export PATH=${JAVA_HOME}/bin:$PATH

执行如下命令使环境变量生效

source /etc/profile

(2) 测试jdk是否安装成功

java -version

 当出现这个界面的时候,说明jdk安装成功268a838d8fed41d197dfc0d6bff40216.png

四、关闭防火墙,SElinux,PackageKit,检测umask值,最大文件描述

(1)关闭防火墙

systemctl stop firewalld.service #关闭防火墙
systemctl disable firewalld  #关闭开机启动
systemctl status firewalld	#查看防火墙状态

(2)关闭SELinux

setenforce 0

修改配置文件进行配置: vim /etc/selinux/config

# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#   enforcing - SELinux security policy is enforced.#   permissive - SELinux prints warnings instead of enforcing.#   disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of these two values:#   targeted - Targeted processes are protected,#   mls - Multi Level Security protection.SELINUXTYPE=targeted

(2)如果系统有安装 PackageKit,需要修改配置文件vim /etc/yum/pluginconf.d/refresh-packagekit.conf

先检测有没有PackageKit文件

rpm -qa | grep PackageKit

弹出下面这些东西就说明有PackageKit

8343085a52494c138dcfbcff066fd9af.png

修改vim /etc/yum/pluginconf.d/refresh-packagekit.conf(里面就是什么东西都没有,不用疑惑或者猜想配置文件里面有一大堆东西而怀疑自己)

enabled=0

(3)确保umask值为0022

#查看
umask
#修改为0022
umask 0022

针对所有交互用户进行永久性修改

echo umask 0022 >> /etc/profile

(4)最大文件描述

最大文件描述至少需要10000,可通过如下命令查看

ulimit -Snulimit -Hn

可通过如下命令修改(说明,公司一般需要设置65535,我们自己用10000也可以,但是我建议设置65535比较好)

ulimit -n 65535

修改配置文件vi /etc/security/limits.conf,在文件尾部添加如下代码即可:

# End of file
* soft nofile 65535
* hard nofile 65535
* soft nproc 131072
* hard nproc 131072

五、设置静态IP

(1)修改IP地址

先看一下自己虚拟机的ip地址

ifconfig

 我的虚拟机给我分配的192.168.114.145这个后面的145这个网段,那么一会我下面我就把ip最后的网段设置145

741eafdcb04e46289c70efb82cb19c9c.png

修改配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33(我建议你把里面的文件全删了,换成我这个就好,然后在改动一点东西)

TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.91.129"
NETMASK="255.255.255.0"
GATEWAY="192.168.91.2"
DNS1="114.114.114.114"
DNS2="8.8.8.8"

注意,IP段需要查看VMware的虚拟网络配置情况,可以通过菜单编辑 -> 虚拟网络编辑器 -> VMnet8查看

红色的就是你自己的网段(注意,不要设置我的网段了,你是多少你就写多少)

bfc107cdae7a4a5abf39d7626f6f16c5.png

如下图所示的配置截图,则需要把上面配置项修改为

192.168.114.2这个不要变,因为2是默认的子网掩码。

IPADDR="192.168.114.145"
GATEWAY="192.168.114.2"

重启网络

/etc/init.d/network  restart

然后关机

8d564c489fb54dbb96bf7d7a80951eb7.png

克隆主机

然后克隆三个虚拟机出来,被克隆的作为母机,防止以后三个虚拟机崩溃然后重新装系统。建议在克隆的时候,单独创建三个文件夹,定义好名字,然后克隆放到相应的文件夹就好

第一步点击鼠标右键,然后二三步点击左键就好

32f3bf314d364963aa9072fbf70296bc.png

点击下一步

998b6c1601e843738802f0f72376bfb1.png

选择这个选项

10806758f5264ad7a364e2717a5128c8.png

解释一下,第一步就是你想起的名字(不影响虚拟机里面的主机名,能够在外面区分master,slave1,slave2即可),第二步就是选择的文件夹,第三步就是放在三个文件夹下面,最好是单独创建三个文件夹,master,slave1,slave2各方进一个文件夹就好,然后完成,就开始克隆了,克隆三个,记住,克隆三个!。

3921772fe8f34c2d87c35828cf12088b.png

克隆好之后,三个虚拟机全部打开(建议是一个一个打开,三个一起打开一般电脑遭不住)

0bb84c483c154c92aebf724a12cadb93.png

进入虚拟机里面修改主机名,这个主机名也就是要设置的master,slave1,slave2。

hostnamectl --static set-hostname (主机名)

之后在三个虚拟机都设置IP(因为是克隆母机的,这三个IP全部都一样)

 修改配置文件:vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.91.129"
NETMASK="255.255.255.0"
GATEWAY="192.168.91.2"
DNS1="114.114.114.114"
DNS2="8.8.8.8"

 如下图所示的配置截图,则需要把上面配置项修改为(这个时候看看母机最后是多少,接着往往后走就行,比如我母机192.168.114.146后面是146,那我后面三个就是147,148,149,不能超过255)

IPADDR="192.168.114.146"
GATEWAY="192.168.114.2"

三个设置好之后全部重新启动

六、hosts配置,同步时钟

(1)hosts配置

在主机master配置vi /etc/hosts,在文件末尾添加如下内容:

192.168.114.146 master
192.168.114.147 slave1
192.168.114.148 slave2

使用scp同步到salve1, slave2

scp /etc/hosts root@slave1:/etc/
scp /etc/hosts root@slave2:/etc/

(2)同步时钟

**目的:**在master服务器上启动ntp服务,然后slave1和slave2每10分钟同步一次时间

在master主机下操作

配置vi /etc/ntp.conf

第1个就只用把restrict192.168.114.0这个前面三个改成自己虚拟机里面的网段就行。

3849e689a7df406a83c0b08927c8d0e6.png

设置自动启动

systemctl start ntpd.service       #启动服务
systemctl enable ntpd.service      #开机启动

slave1、slave2主机(只在slave1和slave2主机下操作)

在slave2和slave2的主机上运行如下命令,可以让它们的时间与master服务器同步

ntpdate master

将时间同步设为定时任务,运行如下命令设置定时任务

crontab -e

编辑如下内容

*/10 * * * * /usr/sbin/ntpdate master

七、免密登录

这步操作要在三个虚拟机都要操作

这里只演示master主机操作(其他两个同样)

ssh-keygen -t rsa       #大概按3-4次下Enter键,到方框之后在按一下,开始下面操作
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

测试,如果不需要输入密码而顺利打印出时间信息,则免密登录设置成功

ssh slave1 date; ssh slave2 date; ssh master date;

八、创建本地源

这部分操作只需要在master主机上操作即可

下载文末网盘资源中的文件:ambari-2.6.0.0-centos7.tar.gzHDP-2.6.3.0-centos7-rpm.tar.gzHDP-UTILS-1.1.0.21-centos7.tar.gz

1. 安装httpd服务

yum -y install httpd      #安装httpd
systemctl restart httpd.service   #开启httpd服务
systemctl enable httpd.service    #开机启动

2. 将包放到/var/www/html目录

tar -zxvf /root/ambari-2.6.0.0-centos7.tar.gz -C /var/www/html/
tar -zxvf /root/HDP-2.6.3.0-centos7-rpm.tar.gz -C /var/www/html/
mkdir /var/www/html/HDP-UTILS
tar -zxvf /root/HDP-UTILS-1.1.0.21-centos7.tar.gz -C /var/www/html/HDP-UTILS

试试能否成功访问:http://192.168.91.128

成功的话网页就是出现一个巨大的Test 123。。。

3. 制作本地源

3.1 安装本地源制作相关工具

yum install yum-utils createrepo yum-plugin-priorities repolist -y
createrepo /var/www/html

3.2 修改源地址

(1) 修改ambari.repo

vi  /var/www/html/ambari/centos7/2.6.0.0-267/ambari.repo

修改内容如下:

#VERSION_NUMBER=2.6.0.0-267
[ambari-2.6.0.0]
name=ambari Version - ambari-2.6.0.0
baseurl=http://master/ambari/centos7/2.6.0.0-267
gpgcheck=1
gpgkey=http://master/ambari/centos7/2.6.0.0-267/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
cp /var/www/html/ambari/centos7/2.6.0.0-267/ambari.repo  /etc/yum.repos.d/

(2) 修改hdp.repo

vi /var/www/html/HDP/centos7/2.6.3.0-235/hdp.repo

内容如下

#VERSION_NUMBER=2.6.3.0-235
[HDP-2.6.3.0]
name=HDP Version - HDP-2.6.3.0
baseurl=http://master/HDP/centos7/2.6.3.0-235
gpgcheck=1
gpgkey=http://master/HDP/centos7/2.6.3.0-235/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1[HDP-UTILS-1.1.0.21]
name=HDP-UTILS Version - HDP-UTILS-1.1.0.21
baseurl=http://master/HDP-UTILS
gpgcheck=1
gpgkey=http://master/HDP-UTILS/RPM-GPG-KEY/RPM-GPG-KEY-Jenkins
enabled=1
priority=1
cp /var/www/html/HDP/centos7/2.6.3.0-235/hdp.repo /etc/yum.repos.d/

上面就创建好了主机上的文件,然后可以通过下面命令清除yum的缓存

yum clean all
yum makecache
yum repolist

可以打开浏览器查看一下:
http://master/ambari/centos7/
http://master/HDP/centos7/

如果希望在本地计算机上使用http://master/ambari/centos7/和http://master/HDP/centos7/访问, 需要配置本机的hosts文件(这一步需要在windows下获得管理员权限,自己对windows操作不熟悉的话,建议不要用,等用的时候老师会讲)

C:\Windows\System32\drivers\etc\hosts, 添加如下内容即可:

192.168.91.128 master
192.168.91.129 slave1
192.168.91.130 slave2

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1542774.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

数据处理与统计分析篇-day08-apply()自定义函数与分组操作

一. 自定义函数 概述 当Pandas自带的API不能满足需求, 例如: 我们需要遍历的对Series中的每一条数据/DataFrame中的一列或一行数据做相同的自定义处理, 就可以使用Apply自定义函数 apply函数可以接收一个自定义函数, 可以将Series对象的逐个值或DataFrame的行/列数据传递给自…

K8s 之微服务的定义及详细资源调用案例

什么是微服务 用控制器来完成集群的工作负载,那么应用如何暴漏出去? 需要通过微服务暴漏出去后才能被访问 Service是一组提供相同服务的Pod对外开放的接口。借助Service,应用可以实现服务发现和负载均衡。service默认只支持4层负载均衡能力&…

OpenCV特征检测(10)检测图像中直线的函数HoughLinesP()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在二值图像中使用概率霍夫变换查找线段。 该函数实现了用于直线检测的概率霍夫变换算法,该算法在文献 181中有所描述。 HoughLines…

JavaEE: 深入探索TCP网络编程的奇妙世界(五)

文章目录 TCP核心机制TCP核心机制六: 拥塞控制为什么要有拥塞控制?动态调整的拥塞控制拥塞控制中,窗口大小具体的变化过程 TCP核心机制七: 延时应答TCP核心机制八: 捎带应答 TCP核心机制 前一篇文章 JavaEE: 深入探索TCP网络编程的奇妙世界(四) 书接上文~ TCP核心机制六: 拥…

Parallels Desktop 20 for Mac 推出:完美兼容 macOS Sequoia 与 Win11 24H2

Parallels Desktop 20 for Mac 近日正式发布,这一新版本不仅全面支持 macOS Sequoia 和 Windows 11 24H2,还在企业版中引入了一个全新的管理门户。新版本针对 Windows、macOS 和 Linux 虚拟机进行了多项改进,其中最引人注目的当属 Parallels …

Python 入门(一、使用 VSCode 开发 Python 环境搭建)

Python 入门第一课 ,环境搭建...... by 矜辰所致前言 现在不会 Python ,好像不那么合适,咱先不求精通,但也不能不会,话不多说,开干! 这是 Python 入门第一课,当然是做好准备工作&a…

计算机毕业设计 校园失物招领网站的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

嵌入式单片机STM32开发板详细制作过程--01

大家好,今天主要给大家分享一下,单片机开发板的制作过程,原理图的制作与PCB设计,以及电子元器件采购与焊接。 第一:单片机开发板成品展示 板子正面都有各个芯片的丝印与标号,方便焊接元器件的时候,可以参考。(焊接完成之后,成品图如下) 第二:开发板原理图制作 在制…

MATLAB中多张fig图合并为一个图

将下列两个图和为一个图 打开查看-----绘图浏览器 点击第一幅图中曲线右键复制,到第二幅图中粘贴即可完成

布草洗涤-酒店分楼层统计报表--———未来之窗行业应用跨平台架构

一、大酒店分层管理 1. 精准管理库存 - 能够清晰了解每个楼层布草的具体数量和状况,实现对布草库存的精细化管理,避免出现某些楼层布草短缺或过剩的情况。 2. 优化资源分配 - 依据各楼层的使用频率和需求差异,合理调配布草资源&…

排序--归并排序

1.什么是归并排序? 归并排序将待排序的数组分成两部分,对每部分递归地应用归并排序,然后将两个有序的子数组合并成一个有序的数组。这个过程一直重复,直到数组完全有序。归并排序的过程可以用一棵完全二叉树来形象地表示&#xf…

frpc内网穿透

官网地址:frp官网 本次用到的Liunx包: https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.gz下载: wget https://github.com/fatedier/frp/releases/download/v0.60.0/frp_0.60.0_linux_amd64.tar.g…

申论笔记杉树林

同义词尽量用文章中的词进行拼凑不一定要有前置词分条 单一题 同义词给分不一定需要前置词分条 1、2、3、尽量抄文章中的词,通顺即可,不一定要成句子不要过分关注形式 题干: 条理清晰:要求分条,尽量有提示词…

脱离枯燥的CRUD,灵活使用Mybatis,根据mybatis动态的xml片段和接口规范动态生成代理类,轻松应付简单业务场景。

需求 需求是这样的,我们有一个数据服务平台的产品,用户先将数据源信息保存到平台上,一个数据源可以提供多个接口服务,而每个接口服务在数据库中存一个具有mybatis语法的sql片段。这样的话,对于一些简单的业务只需要编…

c++进阶学习-----继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。 继承呈现了面向对象 程序设计的…

006——队列

队列: 一种受限的线性表(线性逻辑结构),只允许在一段进行添加操作,在另一端只允许进行删除操作,中间位置不可操作,入队的一端被称为队尾,出队的一端被称为队头,在而我们…

iOS 中 KVC 与 KVO 底层原理

KVC 本质: [object setValue: forKey:];即使没有在.h 文件中有property 的属性声明,setValue:forKey依然会按照上图流程执行代码 KVC 如果成功改变了成员变量,是一定可以被 KVO 监听到成员变量的前后改变的 KVO runtime会生成中间类&…

Leetcode 378. 有序矩阵中第 K 小的元素

1.题目基本信息 1.1.题目描述 给你一个 n x n 矩阵 matrix ,其中每行和每列元素均按升序排序,找到矩阵中第 k 小的元素。 请注意,它是 排序后 的第 k 小元素,而不是第 k 个 不同 的元素。 你必须找到一个内存复杂度优于 O(n^2…

GPT1-GPT3论文理解

GPT1-GPT3论文理解 视频参考:https://www.bilibili.com/video/BV1AF411b7xQ/?spm_id_from333.788&vd_sourcecdb0bc0dda1dccea0b8dc91485ef3e74 1 历史 2017.6 Transformer 2018.6 GPT 2018.10 BERT 2019.2 GPT-2 2020…

ER论文阅读-Decoupled Multimodal Distilling for Emotion Recognition

基本介绍:CVPR, 2023, CCF-A 原文链接:https://openaccess.thecvf.com/content/CVPR2023/papers/Li_Decoupled_Multimodal_Distilling_for_Emotion_Recognition_CVPR_2023_paper.pdf Abstract 多模态情感识别(MER)旨在通过语言、…