IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Hadoop大数据平台 -> 正文阅读

[大数据]Hadoop大数据平台

操作参考手册:https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html

一. Hadoop简介

1 hadoop的演变

Hadoop起源于Google的三大论文:

  • GFS:Google的分布式文件系统Google File System
  • MapReduce:Google的MapReduce开源分布式并行计算框架
  • BigTable:一个大型的分布式数据库

演变关系:
GFS—->HDFS
Google MapReduce—->Hadoop MapReduce
BigTable—->HBase

Hadoop名字不是一个缩写,是Hadoop之父Doug Cutting儿子毛绒玩具象命名的

hadoop主流版本:

  • Apache基金会hadoop
  • Cloudera版本(Cloudera’s Distribution Including Apache Hadoop,简称“CDH”)
  • Hortonworks版本(Hortonworks Data Platform,简称“HDP”)

在这里插入图片描述Hadoop的框架最核心的设计就是:HDFS和MapReduce。

  • HDFS为海量的数据提供了存储。
  • MapReduce为海量的数据提供了计算。

Hadoop框架包括以下四个模块

  • Hadoop Common: 这些是其他Hadoop模块所需的Java库和实用程序。这些库提供文件系统和操作系统级抽象,并包含启动Hadoop所需的Java文件和脚本。
  • Hadoop YARN: 这是一个用于作业调度和集群资源管理的框架。
  • Hadoop Distributed File System (HDFS): 分布式文件系统,提供对应用程序数据的高吞吐量访问。
  • Hadoop MapReduce:这是基于YARN的用于并行处理大数据集的系统。

hadoop应用场景

  • 在线旅游
  • 移动数据
  • 电子商务
  • 能源开采与节能
  • 基础架构管理
  • 图像处理
  • 诈骗检测
  • IT安全
  • 医疗保健

2 hadoop的简介

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • HDFS属于Master与Slave结构。一个集群中只有一个NameNode,可以有多个DataNode

  • HDFS存储机制保存了多个副本,当写入1T文件时,我们需要3T的存储,3T的网络流量带宽;系统提供容错机制,副本丢失或宕机可自动恢复,保证系统高可用性。

  • HDFS默认会将文件分割成block。然后将block按键值对存储在HDFS上,并将键值对的映射存到内存中。如果小文件太多,会导致内存的负担很重。

  • HDFS采用的是一次写入多次读取的文件访问模型。一个文件经过创建、写入和关闭之后就不需要改变。这一假设简化了数据一致性问题,并且使高吞吐量的数据访问成为可能。

  • HDFS存储理念是以最少的钱买最烂的机器并实现最安全、难度高的分布式文件系统(高容错性低成本),HDFS认为机器故障是种常态,所以在设计时充分考虑到单个机器故障,单个磁盘故障,单个文件丢失等情况。

  • HDFS容错机制
    节点失败监测机制:DN每隔3秒向NN发送心跳信号,10分钟收不到,认为DN宕机。
    通信故障监测机制:只要发送了数据,接收方就会返回确认码。
    数据错误监测机制:在传输数据时,同时会发送总和校验码。

3 工作原理

Nn和Dn

在这里插入图片描述工作原理:
Cliet向Namenode请求,Nn向cl返回Dn列表(Dn列表有顺序,校验数据的距离,根据距离排序),Nn知道所有节点的状态,Cl知道会以多大的block切分,设定副本数,Cl连接dn列表,(发送第一个block传输数据packet和dn列表),Nn接收block并保存dn列表数据,同步其他Dn节点(边接收边同步),Dn报告Block存储完成。
在这里插入图片描述

返回Dn列表顺序
在这里插入图片描述

  • Cl和Dn节点在同一台机器,存储副本(默认3个),Nn返回的Dn列表顺序:本机–不同机架的不同Dn上----同机架的不同Dn上(down后,找本机架其他的Dn)其他的随机,只是控制前3

  • Cl和Dn节点不在同一台机器:第一个副本随机,2,3副本一样

hdfs中文漫画:https://blog.csdn.net/lsziri/article/details/102503486

节点故障/网络故障/数据块损坏

在这里插入图片描述

RM:resourcemanager

在这里插入图片描述

v1: jobTrack,不能过2000节点
v2:过2000节点

工作原理:
Cl向RM申请,任务队列,RM返回app所需资源路径,Cl需要的资源数据存储到HDFS,Cl申请运行App master,RM运行容器(分配资源)AM,AM拷贝HDFS中的job资源,AM向RM申请运行资源,RM会分配到下面的多个task中,实时汇总AM,AM持续监控job
完成任务后,申请释放资源,RM注销AM,释放容器资源

二. hadoop工作模式

1 伪分布式

实验环境:

主机名ip
vm1172.25.28.11(2G)

Nn和Dn不分离:

在这里插入图片描述
hadoop安装有jdk要求,不用rpm包,使用源码tar.gz
建立hadoop用户,解压缩jdk包,普通用户hadoop运行
在这里插入图片描述
hadoop和java作软链接,方便更新版本
在这里插入图片描述
在这里插入图片描述

编辑文件,修改java和hadoop的环境变量
在这里插入图片描述在这里插入图片描述
新建input目录
在这里插入图片描述
将etc/hadoop中.xml 文件复制到input目录
在这里插入图片描述
Hadoop 配置为在非分布式模式下作为单个 Java 进程运行查找并显示给定正则表达式的每个匹配项。 输出写入给定的输出目录 output,outpot不用创建,过滤dfs的关键字
在这里插入图片描述
查看output目录中的内容
在这里插入图片描述

Hadoop 也可以以伪分布式模式在单节点上运行,其中每个 Hadoop 守护进程在单独的 Java 进程中运行。
在这里插入图片描述
编辑 etc/hadoop/hdfs-site.xml 文件,副本数为1
在这里插入图片描述

编辑etc/hadoop/core-site.xml 文件,分布式文件系统的master,主从都是自己
在这里插入图片描述
master和worker都是自己!!!
在这里插入图片描述
与localhost进行ssh免密
在这里插入图片描述
在这里插入图片描述
与localhost免密测试
在这里插入图片描述
查看生成的公钥和私钥
在这里插入图片描述
本地运行 MapReduce 作业

初始化文件系统
在这里插入图片描述
启动 NameNode 守护进程和 DataNode 守护进程
namenode启动master,datanode启动worker
当前master和worker都是本机vm1 !!!

数据存储位置:/tmp

在这里插入图片描述
jps:java进程查看,代替ps ax
在这里插入图片描述

编辑java的环境变量
在这里插入图片描述

jps查看进程,其中secondnode表示当master的namenode down掉后,接管

由于hadoop的master和worker都是vm1,所以同时出现Namenode和DataNode !!!
在这里插入图片描述
外部访问:
172.25.28.11:9870

9870:hadoop默认的监听端口

9000:Namenode和Datanode的连接端口

在这里插入图片描述
查看日志:
在这里插入图片描述在这里插入图片描述
查看文件系统,此时没有内容:
两种方式:命令行和图形化

在这里插入图片描述在这里插入图片描述

创建执行 MapReduce 作业所需的 HDFS 目录: 用户与当前id保持一致
在这里插入图片描述
ls 默认查看的是这个目录/user/haddop
在这里插入图片描述
将输入文件复制到分布式文件系统中
在这里插入图片描述
外部查看,存在(图形化)
在这里插入图片描述
本地查看(命令行)
在这里插入图片描述

单词数
input,output :和本地无关,分布式中的输入输出目录
在这里插入图片描述
本地查看
在这里插入图片描述
本地删除
在这里插入图片描述
此时查看,是分布式中的输入输出目录
在这里插入图片描述在这里插入图片描述在这里插入图片描述

重新获取分布式中的输出目录
在这里插入图片描述
本地查看成功在这里插入图片描述

2 完全分布式

3台虚拟机
实验环境:

主机名ip功能
vm1172.25.28.11(2G)master
vm2172.25.28.12worker
vm3172.25.28.13worker
vm4172.25.28.14worker

Nn和Dn分离

编辑 etc/hadoop/core-site.xml 文件,修改master为vm1的ip
在这里插入图片描述在这里插入图片描述

编辑 etc/hadoop/hdfs-site.xml 文件,副本数为2
在这里插入图片描述
修改worker为vm2和vm3
在这里插入图片描述
vm1安装nfs文件系统,
在这里插入图片描述
修改文件,启动nfs服务
在这里插入图片描述
vm2新建hadoop用户,安装nfs文件系统
在这里插入图片描述

vm3新建hadoop用户,安装nfs文件系统
在这里插入图片描述
挂载nfs到vm2中的/home/hadoop
在这里插入图片描述
挂载nfs到vm3中的/home/hadoop
在这里插入图片描述
重新初始化文件系统,先stop
在这里插入图片描述
测试免密连接
在这里插入图片描述在这里插入图片描述在这里插入图片描述

外部访问:
172.25.28.11:9870

9870:hadoop默认的监听端口
此时vm2和vm3已成功加入
在这里插入图片描述
vm2和vm3上,jps查看进程,都有DataNode!!!
在这里插入图片描述在这里插入图片描述
vm1上启动 NameNode 守护进程,此时vm1是没有Datanode,只有Namenode,此处由于版本问题,vm1作为master,Nn是只保留原始数据,不存储数据
在这里插入图片描述
外部访问,查看文件系统
在这里插入图片描述
上传input目录至分布式文件系统中
在这里插入图片描述
外部再次查看
在这里插入图片描述
单词数
input,output :和本地无关,分布式中的输入输出目录

在这里插入图片描述
外部查看:分布式中的输出目录
在这里插入图片描述在这里插入图片描述
将vm1加入此分布式中
安装nfs,挂载,编辑worker文件
在这里插入图片描述
vm4启动namenode,jps查看java进程,已经出现Datanode
在这里插入图片描述
外部查看:vm4已经成功加入此分布式!!!
在这里插入图片描述

三. yarn 调度

编辑etc/hadoop/mapred-site.xml:文件
在这里插入图片描述在这里插入图片描述

编辑etc/hadoop/yarn-site.xml文件
在这里插入图片描述
在这里插入图片描述
编辑环境变量,加入$HADOOP_HOME
在这里插入图片描述在这里插入图片描述
$HADOOP_HOME 就是 /home/hadoop/hadoop/share/hadoop/mapreduce
在这里插入图片描述
在这里插入图片描述
启动 ResourceManager 进程和 NodeManager 进程

vm1上有ResourceManager 进程

在这里插入图片描述
vm 2,3,4 有 NodeManager 进程
在这里插入图片描述在这里插入图片描述在这里插入图片描述

外部访问:
172.25.28.11:8088
调度内存消耗较大

在这里插入图片描述

四. hadoop高可用

参考pdf:/pub/docs/hadoop

实验环境:
在这里插入图片描述

ZK(3); JN(3); 双机热备;(NN主备模式2); DN(4)

在典型的 HA 高可用集群中,通常有两台不同的机器充当 NN。在任何时间,只有一台机器处于Active 状态;另一台机器是处于 Standby 状态。Active NN 负责集群中所有客户端的操作;而 Standby NN 主要用于备用,它主要维持足够的状态,如果必要,可以提供快速的故障恢
复。

主机名ip功能
vm1172.25.28.11(2G)(Namenode)master,双机热备的主Active
vm2172.25.28.12(Datanode)worker, zookeeper,JN
vm3172.25.28.13(Datanode)worker, zookeeper,JN
vm4172.25.28.14(Datanode)worker, zookeeper,JN
vm5172.25.28.15(Namenode)master,双机热备的备Standby

为了让 Standby NN 的状态和 Active NN 保持同步,即元数据保持一致,它们都将会和JournalNodes 守护进程通信。

1 zookeeper集群

所有主机停止
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
/tmp数据全部删除
在这里插入图片描述在这里插入图片描述在这里插入图片描述
vm5 安装nfs,挂载,新建hadoop用户
在这里插入图片描述
在这里插入图片描述安装 JDK
安装 zookeeper
解压缩zookeeper包
在这里插入图片描述在这里插入图片描述
编辑 zoo.cfg 文件,各节点配置文件相同,(已经挂载)
在这里插入图片描述

2888(数据同步)和38888(选举的)通信端口

在这里插入图片描述
需要在/tmp/zookeeper 目录中创建 myid 文件,
写入 一个唯一的数字,取值范围在 1-255

比如:172.25.28.12 节点的 myid 文件写入数
字“1”,此数字与配置文件中的定义保持一致,(server.1=172.25.28.12:2888:3888)其它节点依次类推。
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在各节点(vm2,vm3,vm4)启动服务,vm3为leader,随机
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
(vm2,vm3,vm4)jps查看进程
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
连接 zookeeper
在这里插入图片描述
查看
在这里插入图片描述

2 hdfs高可用

编辑etc/hadoop/core-site.xml文件
在这里插入图片描述

<configuration>
<!-- 指定 hdfs 的 namenode 为 masters (名称可自定义)-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://masters</value>
</property>
<!-- 指定 zookeeper 集群主机地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>172.25.28.12:2181;172.25.28.13:2181;172.25.28.14:2181</value>
</property>
</configuration>

在这里插入图片描述
编辑 etc/hadoop/hdfs-site.xml 文件,副本数为3(vm2,3,4)
在这里插入图片描述

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>

<property>
<!-- 指定 hdfs 的 nameservices 为 masters,和 core-site.xml 文件中的设置保持一致 -->
<name>dfs.nameservices</name>
<value>masters</value>
</property>

<property>
<!-- masters 下面有两个 namenode 节点,分别是 h1 和 h2 (名称可自定义)
-->
<name>dfs.ha.namenodes.masters</name>
<value>h1,h2</value>
</property>

<property>
<!-- 指定 h1 节点的 rpc 通信地址 -->
<name>dfs.namenode.rpc-address.masters.h1</name>
<value>172.25.28.11:9000</value>
</property>

<property>
<!-- 指定 h1 节点的 http 通信地址 -->
<name>dfs.namenode.http-address.masters.h1</name>
<value>172.25.28.11:9870</value>
</property>

<property>
<!-- 指定 h2 节点的 rpc 通信地址 -->
<name>dfs.namenode.rpc-address.masters.h2</name>
<value>172.25.28.15:9000</value>
</property>

<property>
<!-- 指定 h2 节点的 http 通信地址 -->
<name>dfs.namenode.http-address.masters.h2</name>
<value>172.25.28.15:9870</value>
</property>

<property>
<!-- 指定 NameNode 元数据在 JournalNode 上的存放位置 -->
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://172.25.28.12:8485;172.25.28.13:8485;172.25.28.14:8485/masters</value>
</property>

<property>
<!-- 指定 JournalNode 在本地磁盘存放数据的位置 -->
<name>dfs.journalnode.edits.dir</name>
<value>/tmp/journaldata</value>
</property>

<property>
<!-- 开启 NameNode 失败自动切换 -->
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>

<property>
<!-- 配置失败自动切换实现方式 -->
<name>dfs.client.failover.proxy.provider.masters</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>

<property>
<!-- 配置隔离机制方法,每个机制占用一行-->
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>

<property>
<!-- 使用 sshfence 隔离机制时需要 ssh 免密码 -->
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/home/hadoop/.ssh/id_rsa</value>
</property>

<property>
<!-- 配置 sshfence 隔离机制超时时间 -->
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value>
</property>
</configuration>

启动 hdfs 集群(按顺序启动)
在三个 DN 上依次启动 zookeeper 集群
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在三个 DN 上依次启动 journalnode(之前已经都启动!!!)

格式化 HDFS 集群
在这里插入图片描述Namenode 数据默认存放在/tmp,需要把数据拷贝到 h2(vm5)
在这里插入图片描述格式化 zookeeper (只需在 h1 上执行即可)
在这里插入图片描述连接zookeeper
在这里插入图片描述
查看有zookeeper
在这里插入图片描述
启动 hdfs 集群(只需在 h1 上执行即可)
在这里插入图片描述vm5查看进程状态,主备(vm1和vm5)保持一致!!!
在这里插入图片描述

查看各节点状态,有QuorumPeerMain进程!!!
在这里插入图片描述在这里插入图片描述

vm2查看NN主备,此时vm1为NN的主
在这里插入图片描述外部访问查看,主为vm1!!!备为vm5!!!
在这里插入图片描述
在这里插入图片描述
上传input目录到分布式文件系统中
在这里插入图片描述
备机vm5无法查看
在这里插入图片描述
主机vm5无法查看
在这里插入图片描述
vm2,vm3,vm4 为hadoop集群
在这里插入图片描述命令行方式查看分布式文件系统中的内容
在这里插入图片描述
测试故障自动切换
杀死vm1的NameNode进程
在这里插入图片描述
此时此时 h2 (vm5)转为 active 状态接管 namenode
在这里插入图片描述外部访问查看
在这里插入图片描述

在这里插入图片描述
重新启动vm1的Namenode进程
在这里插入图片描述
依旧是vm5接管 namenode,谁先写进去谁是active!!!
在这里插入图片描述
外部访问:
vm1 为standby

在这里插入图片描述在这里插入图片描述

vm5 为active
在这里插入图片描述

3 yarn 高可用

编辑 mapred-site.xml 文件(上述实验已经完成编辑)

<configuration>
<!-- 指定 yarn 为 MapReduce 的框架 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

编辑 yarn-site.xml 文件
在这里插入图片描述

<configuration>
<!-- 配置可以在 nodemanager 上运行 mapreduce 程序 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 激活 RM 高可用 -->
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property><!-- 指定 RM 的集群 id -->
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>RM_CLUSTER</value>
</property>
<!-- 定义 RM 的节点-->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<!-- 指定 RM1 的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>172.25.0.1</value>
</property>
<!-- 指定 RM2 的地址 -->
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>172.25.0.5</value>
</property>
<!-- 激活 RM 自动恢复 -->
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<!-- 配置 RM 状态信息存储方式,有 MemStore 和 ZKStore-->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</
value>
</property>
<!-- 配置为 zookeeper 存储时,指定 zookeeper 集群的地址 -->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>172.25.0.2:2181,172.25.0.3:2181,172.25.0.4:2181</value>
</property>
</configuration>

启动 yarn 服务
在这里插入图片描述
vm1和vm5上查看进程,有Resourcemanager
在这里插入图片描述
vm2,vm3,vm4上查看进程,有Nodemanager
在这里插入图片描述
hdfs集群内部查看主备文件
在这里插入图片描述
命令行方式查看主备,是vm1
在这里插入图片描述
外部访问查看主备,
vm1:主 vm5:备
在这里插入图片描述在这里插入图片描述
测试 yarn 故障切换

杀死vm1的Resourcemanager进程
在这里插入图片描述

vm1无法访问在这里插入图片描述
此时主已经切换为vm5
在这里插入图片描述
在这里插入图片描述
重新启动vm1的Resourcemanager进程
在这里插入图片描述
外部访问:
vm1 为standby
在这里插入图片描述
vm5 依旧为active
**加粗样式**

4 hbase 高可用

解压缩hbase包
在这里插入图片描述
在这里插入图片描述
编辑 hbase-env.sh 文件
false:habase自带zk,我们已经搭建好zk,自己维护 zookeeper 集群需设置为 false
在这里插入图片描述
加入环境变量
在这里插入图片描述
编辑vim hbase-site.xml文件
在这里插入图片描述

<configuration>
<!-- 指定 region server 的共享目录,用来持久化 HBase。这里指定的 HDFS 地址
是要跟 core-site.xml 里面的 fs.defaultFS 的 HDFS 的 IP 地址或者域名、端口必须一致。 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://masters/hbase</value>
</property>
<!-- 启用 hbase 分布式模式 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- Zookeeper 集群的地址列表,用逗号分割。默认是 localhost,是给伪分布式用
的。要修改才能在完全分布式的情况下使用。 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>172.25.0.2,172.25.0.3,172.25.0.4</value>
</property>
<!-- 指定数据拷贝 2 份,hdfs 默认是 3 份。 -->
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<!-- 指定 hbase 的 master -->
<property><name>hbase.master</name>
<value>h1</value>
</property>
</configuration>

在这里插入图片描述
编辑regionservers文件
输入集群ip,域名也可以,需要解析
在这里插入图片描述

主节点运行:

$ bin/start-hbase.sh

在这里插入图片描述
主节点查看
在这里插入图片描述
备节点运行:

[hadoop@vm5 hbase]$ bin/hbase-daemon.sh start master

在这里插入图片描述
集群节点查看
在这里插入图片描述在这里插入图片描述
查看主节点为vm1
在这里插入图片描述
外部查看,主节点为vm1

HBase Master 默认端口时 16000,还有个 web 界面默认在 Master 的 16010 端口上,HBase RegionServers 会默认绑定 16020 端口,在端口 16030 上有一个展示信息的界面。
在这里插入图片描述
外部查看,备节点为vm5
在这里插入图片描述
日志查看
在这里插入图片描述在这里插入图片描述
测试:

重新打开一个shell
在这里插入图片描述
制造数据
在这里插入图片描述
杀死vm1的HMaster进程
在这里插入图片描述
外部访问vm1失败
在这里插入图片描述
外部访问vm5,在这里插入图片描述
重新启动vm1的HMaster进程
在这里插入图片描述
外部访问:

vm1为备
在这里插入图片描述
vm5依旧为主!在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重新打开shell,数据依旧存在!!!
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-08-16 11:48:52  更:2021-08-16 11:49:20 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 8:54:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码