自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(784)
  • 收藏
  • 关注

原创 Mongodb常用的相关命令总结

用户认证 db.auth('用户名','密码') 创建用户管理者 db.createUser( { user: "dba", pwd: "123456", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } ) 创建具有读写权限的用户 db.createUser( { user: "iampAdmin", pwd: "iamp12...

2020-08-27 18:03:15 232

原创 Linux常用的相关命令

一:防火墙相关命令查看防火墙某个端口是否开放 firewall-cmd --query-port=3306/tcp 开放防火墙端口3306 firewall-cmd --zone=public --add-port=3306/tcp --permanent 查看防火墙状态 systemctl status firewalld 关闭防火墙 systemctl stop firewalld 打开防火墙 systemctl start firewalld 查看开放的端口列表 ...

2020-08-21 21:57:00 251

原创 09 - hive自定义函数以及分区表

0)需求自定义一个UDF实现计算给定基本数据类型的长度,例如:41)创建一个Maven工程Hive2)导入依赖3创建一个类/*** 我们需计算一个要给定基本数据类型的长度*//*** 判断传进来的参数的类型和长度* 约定返回的数据类型*/@Override=1) {if (!/*** 解决具体逻辑的*/@Overridereturn 0;@Override// 用于获取解释的字符串return "";4创建临时函数。

2024-05-19 16:46:04 736

原创 08 - hive的集合函数、高级聚合函数、炸裂函数以及窗口函数

语法:map (key1, value1, key2, value2, …)说明:根据输入的key和value对构建map类型案例实操:输出:1)需求说明 根据上述电影信息表,统计各分类的电影数量,期望结果如下:

2024-05-12 19:33:50 334

原创 07 - hive的 DDL(Data Definition Language)数据定义、DML(Data Manipulation Language)数据操作以及查询相关语法

1)语法CREATEDATABASECOMMENTLOCATIONhdfs_path]WITH2)案例(1)创建一个数据库,不指定路径注:若不指定路径,其默认路径为${hive.metastore.warehouse.dir}/database_name.db(2)创建一个数据库,指定路径(3)创建一个数据库,带有dbproperties。

2024-05-05 19:16:41 1010

原创 06 - metastore服务、hive服务启动脚本以及相关使用技巧

Hive的metastore服务的作用是为Hive CLI或者Hiveserver2提供元数据访问接口。metastore有两种运行模式,分别为嵌入式模式和。下面分别对两种模式进行说明:(1)嵌入式模式(2)独立服务模式生产环境中,不推荐使用嵌入式模式。因为其存在以下两个问题:(1)嵌入式模式下,每个Hive CLI都需要直接连接元数据库,当Hive CLI较多时,数据库压力会比较大。(2)每个客户端都需要用户元数据库的读写权限,元数据库的安全得不到很好的保证。

2024-05-02 21:39:35 1195

原创 22 - Hadoop HA 高可用集群搭建、手动模式、自动模式以及HA模式集群

(1)所谓 HA(High Availablity),即高可用(7*24 小时不中断服务)。(2)实现高可用最关键的策略是消除单点故障。HA 严格来说应该分成各个组件的 HA 机制:HDFS 的 HA 和 YARN 的 HA。(3)NameNode 主要在以下两个方面影响 HDFS 集群HDFS HA 功能通过配置多个 NameNodes(Active/Standby)实现在集群中对 NameNode 的 热备来解决上述问题。

2024-04-29 21:44:11 1210

原创 03 - 客户端 API 操作、服务器动态上下线监听以及分布式锁案例

什么叫做分布式锁呢?比如说"进程 1"在使用该资源的时候,会先去获得锁,"进程 1"获得锁以后会对该资源保持独占,这样其他进程就无法访问该资源,"进程 1"用完该资源以后就将锁释放掉,让其 他进程来获得锁,那么通过这个锁机制,我们就能保证了分布式系统中多个进程能够有序的 访问该临界资源。需要在项目的 src/main/resources 目录下,新建一个文件,命名为“log4j.properties”,在 文件中填入。(2)在 Idea 中创建包名:com.atguigu.zkcase1。

2024-04-28 21:00:28 844

转载 点赞模块设计 - Redis缓存 + 定时写入数据库实现高性能点赞功能

至于多久从 Redis 取一次数据存到数据库中,根据项目的实际情况定吧,我是暂时设了两个小时。

2024-04-28 11:08:40 66

转载 使用Redis实现文章阅读量、收藏、点赞数量记录功能

如果每一次用户查看博客都从数据库中检索这些数据那数据库开销是非常大的,这个时候就需要使用到缓存来存储这些信息。

2024-04-28 10:43:23 46

原创 17 - Yarn案例实操

1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程2)需求分析:1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster平均每个节点运行10个 / 3台 ≈ 3个任务(4 3 3)4)分发配置注意:如果集群的硬件资源不一致,要每个单独配置5)重启集群6)执行WordCount程序7)观察Yarn任务执行页面。

2024-04-22 21:28:53 871

原创 12 - MapReduce之OutputFormat数据输出以及MapReduce内核源码解析

1)需求过滤输入的log日志,包含atguigu的网站输出到e:/atguigu.log,不包含atguigu的网站输出到e:/other.log。(1)输入数据2)需求分析3)案例实操(1)编写LogMapper类@Override//不做任何处理,直接写出一行log数据(2)编写LogReducer类@Override// 防止有相同的数据,迭代写出(3)自定义一个LogOutputFormat类@Override。

2024-04-20 11:50:37 916

转载 05 - hadoop3.1.3完全分布式模式环境搭建

1)各个模块分开启动/停止(配置ssh是前提)常用1.整体启动/停止HDFS2.整体启动/停止YARN2)各个服务组件逐一启动/停止1.分别启动/停止HDFS组件2.启动/停止YARN。

2024-04-07 22:16:07 49

转载 02 - 大数据之Hadoop3.x模板虚拟机配置

注意:在安装系统之前需要检查自己虚拟机的bios 的虚拟化是否打开(大部分的电脑都是打开的,大家可以先尝试直接安装,如果出现错误再去调试,没有出错就不用管了)

2024-04-04 21:59:30 31

转载 本地消息表实现分布式事务—可靠消息最终一致性解决方案

本地消息表:这是ebay研发出的一种分布式事务解决方案,通过将消息表存储在数据库中,实现了消息的一致性。它的核心思想就将分布式事务拆分成本地事务进行处理本地消息表是利用各系统本地事务来实现分布式事务。业务系统的执行和消息均放入本地消息表中,确保本地业务执行和消息表的操作在一个事务中。不尝机制重试读取本地消息表,调用远程应用操作。需要加入重试机制、最大执行次数、报警机制。本地消息表容忍数据暂时不一致,期望数据的最终一致性。

2024-03-12 14:32:01 234

原创 Linux下安装MySQL8的客户端

背景:需要做一个这样的需求,Linux下通过MySQL的下面的命令,完成文件加载到另一个MySQL服务器的需求,命令如下:mysql -h172.18.22.100 -uroot -p’123!@#’ ,但是目前这个服务器上没有MySQL相应的组件,之前安装过MySQL的服务端和客户端,现在想着是不是只安装MySQL的客户端就够用了。这样也能节省系统开销,不需要安装服务端了注意:安装客户端的话,只安装以下几个安装包就够用了(note:一定要按这个顺序来安装,否则会有报错的提示)

2024-01-26 15:11:23 1043

转载 redis-cli的安装与使用

对key有操作的命令,统一返回值都是1或者0,成功为1,失败为0。

2024-01-26 10:04:11 506

转载 Spring之BeanFactoryPostProcessor介绍以及场景运用

工厂级别的勾子,用来允许修改application context中的bean的definition,作用于bean实例化前。第一种即Spring中定义@Bean:@Bean第二种(适用Spring Boot),即在MyServlet类上加上注解,并在启动Application类上加。而第二种方式,恰恰是通过接口来实现的!a. bean的个数。b. 所有bean类名中包含auto,打印前两个bean name。c. 实现了接口的bean的名字为此,我们定义了类,在方法中通过。

2024-01-16 15:07:47 298

转载 beanFactory.ignoreDependencyInterface代码测试和理解

使得我们的ApplicationContextAware接口实现类在自动装配时不能被注入ApplicationContext对象的依赖,而统一由框架设置依赖,ApplicationContextAware接口的设置会在ApplicationContextAwareProcessor类中完成。并不影响构造器注入,给A中类新增构造方法,把上图AwareTest注释全放开,结果是b和c都注入了。以上是在类中使用注解进行注入,不使用注解还可以在Xml文件中配置。

2024-01-16 14:26:35 98

转载 BeanNameAware和BeanFactoryAware接口

【代码】BeanNameAware和BeanFactoryAware接口。

2024-01-16 13:13:53 85

转载 使用 Java 携手 SpringBoot + PhantomJS + ECharts 在服务端生成图表并存为图片

PhantomJS是一个不需要浏览器的富客户端官方介绍:PhantomJS是一个基于 WebKit 的服务器端JavaScript API。它全面支持web而不需浏览器支持,支持各种Web标准:DOM处理,CSS选择器, JSON,Canvas,和SVG。PhantomJS常用于页面自动化,网络监测,网页截屏,以及无界面测试等通常我们使用PhantomJS作为爬虫工具。传统的爬虫只能单纯地爬取html的代码,对于js渲染的页面,就无法爬取,如Echarts统计图。而PhantomJS正可以解决此类问题。

2024-01-04 14:11:42 609 2

转载 Java基于Libreoffice转换word/excel/ppt等常见文档格式到pdf

Java面对office转pdf这种需求,大多采用POI、pdfbox等工具进行转换,转换精度和效率取决于相关工具的支持程度,难免有些样式不符、错位等现象,如果需要完全一致的office转pdf的体验,还是得依赖office软件,目前OpenOffice和Libreoffice均提供了对应的命令行工具来实现office文件转pdf。本文介绍Libreoffice转pdf的方法及java调用Libreoffice命令行的方法。

2024-01-04 11:00:17 974 2

原创 CentOS7安装MiniO

MinIO是高性能的对象存储,单个对象最大可达5TB。适合存储图片、视频、文档、备份数据、安装包等一系列文件。是一款主要采用Golang语言实现发开的高性能、分布式的对象存储系统。客户端支持Java,Net,Python,Javacript,Golang语言。客户端与服务器之间采用http/https通信协议。

2023-11-29 14:58:02 1571

转载 物理内存,虚拟内存,磁盘swap分区的关系

物理内存硬件上,就是内存条。我们知道一个程序运行,必要开一片内存来存储其相关指令和需要用到的堆栈段空间等。

2023-11-01 16:36:35 347

转载 对swap交换分区虚拟内存的理解

每次安装Linux的时候,都会要求配置交换分区,那么这个分区是干嘛的呢?不设置这个分区有什么后果?如果一定要设置,设置多大比较合适?swap space是磁盘上的一块区域,可以是一个分区,也可以是一个文件,或者是他们的组合。简单点说,当系统物理内存吃紧时,Linux会将内存中不常访问的数据保存到swap上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问swap上存储的内容时,再将swap上的数据加载到内存中,这就是我们常说的swap out和swap in。

2023-11-01 16:27:26 1538

转载 Linux理解virt、res、shr之间的关系

页映射表的基本原理是将程序运行过程中需要访问的一段虚拟内存空间通过页映射表映射到一段物理内存空间上,这样CPU访问对应虚拟内存地址的时候就可以通过这种查找页映射表的机制访问物理内存上的某个对应的地址。既然说虚拟内存是一个逻辑意义上(假象的)的内存空间,为了能够让程序在物理机器上运行,那么必须有一套机制可以让这些假象的虚拟内存空间映射到物理内存空间(实实在在的RAM内存条上的空间)。在上图中我们看到进程A虚拟内存空间中的A4和进程B虚拟内存空间中的B3都映射到了物理内存空间的A4/B3部分。

2023-11-01 15:39:22 641

转载 Linux的top命令详解

top命令是linux下常用的性能分析工具,能够实时的显示系统中各个进程的资源占用情况,常用于服务端性能分析。

2023-11-01 14:45:52 113

转载 Disruptor - 深入理解高性能异步处理框架

在并发编程的世界中,对效率的追求从未停止过。我们尝试用各种方式来提高程序的执行效率,包括使用更高级的并发控制结构,如锁和线程池,以及采用更先进的并发设计模式。然而,有一种工具在许多高性能系统中得到了广泛的应用,那就是Disruptor。Disruptor是一个高性能的异步处理框架,它利用了Ring Buffer、CAS等高效的并发策略,使得在处理高并发、低延迟的需求时,表现出了惊人的性能。我们来看一张图:这是一张展示了Disruptor和性能对比的直方图,你可以明显地看到Disruptor的优越性能。

2023-10-23 18:00:10 405

转载 容器与虚拟化的区别与优势

本文对Docker容器与传统虚拟化技术进行了对比和分析,重点探讨了它们的优势、劣势以及在不同场景中的适用性。通过深入研究Docker的轻量性、快速启动、可移植性和传统虚拟化的隔离性和安全性等方面,我们总结出在选择虚拟化技术时应根据具体需求做出正确决策的重要性。此外,我们展示了Docker在快速部署开发环境、支持微服务架构和持续集成部署等实际场景中的优势和效果。Docker是一种开源的容器化平台,它可以帮助开发人员和运维团队更轻松地创建、部署和运行应用程序。

2023-10-20 11:22:06 778

转载 MySQL的索引数据结构

索引的数据结构使用的是B+树,那为什么使用B+树而不是二叉查找树、平衡二叉树或者B树呢,接下来,我们来讲讲B+树的由来。官方介绍索引是帮助MySQL高效获取数据的数据结构。简单来讲,数据库索引就像是书前面的目录,能加快数据库的查询速度。事实上,索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。

2023-10-16 14:11:26 97

转载 05-Hiveserver2服务部署

hiveserver2提供JDBC/ODBC接口,使得用户可以远程访问Hive数据,即作为客户端的代理与Hadoop集群进行交互。hiveserver2部署时需要部署到一个能访问集群的节点上,保证能够直接往Hadoop上提交数据。用户在客户端提交SQL语句时,由hiveserver请求HDFS或者提交计算任务到Yarn上,再由hiveserver2将结果返回给客户端。

2023-10-15 18:42:30 274

转载 04-配置Hive元数据存储到MySQL

把Hive元数据写道MySQL的metastore数据库中(MySQL默认没有metastore数据库,需要提前创建:create database metastore;

2023-10-15 17:38:41 213

转载 03-Linux下安装MySQL8.0.33

root用户 + 123456,实现在任何主机上都能登录MySQL数据库。sudo yum -y install 缺的依赖包。解决方法:用yum直接下载。

2023-10-15 16:16:56 245

转载 02-Hive安装

创建表后hive把表到hdfs的路径进行映射,映射关系保存在元数据库中,在建表时可以指定hdfs路径,未指定则使用默认路径/user/hive/warehouse/中。1.9、先退出hive客户端,在hive根目录下删除derby.log和metastore_db,以及删除HDFS上的hive目录。Hive默认使用的元数据库为derby,derby数据库在同一时间只能一个客户访问,如果多个hive客户端同时访问会报错。hive优化了简单查询语句,即执行简单查询时hive不向yarn提交任务,减少了开销。

2023-10-15 12:00:00 45

转载 JVM主要组成部分及其作用

除了 BootstrapClassLoader 其他类加载器均由 Java 实现且全部继承自java.lang.ClassLoader。如果我们要自定义自己的类加载器,很明显需要继承 ClassLoader抽象类。类有两个关键的方法:加载指定二进制名称的类,实现了双亲委派机制。name 为类的二进制名称,resolve 如果为 true,在加载时调用 resolveClass(Class c) 方法解析该类根据类的二进制名称来查找类,默认实现是空方法建议的子类重写方法而不是方法。

2023-10-14 11:53:48 143

转载 如何保障缓存和数据库的一致性

这边理论上一定会存在一些不一致的数据,因为我们查询数据库和缓存之间还是有一定的时间间隔的,可能是1毫秒这样,在高并发下,可能这个间隔之间数据已经被修改过了,所以你拿到的缓存数据和数据库数据可能其实不是一个版本,这种情况下的不一致是正常的。还有就是如果我们通过命令行直接来更新数据库的数据,或者通过公司提供的数据库管理平台来更新数据库数据,这个时候你就没法删除了,因为你的同步删除其实只是写在你的代码里面,这个时候也就导致脏数据问题了,这也是为什么说同步删除很难覆盖所有的入口,同时存在很大的风险。

2023-10-13 14:19:22 124

转载 到底什么是IO多路复用?

服务端为了处理客户端的连接和请求的数据,写了如下代码。这段代码会执行得磕磕绊绊,就像这样。可以看到,服务端的线程阻塞在了两个地方,一个是 accept 函数(),一个是 read 函数。如果再把 read 函数的细节展开,我们会发现其阻塞在了两个阶段。这就是传统的阻塞 IO。整体流程如下图。所以,如果这个连接的客户端一直不发数据,那么服务端线程将会一直阻塞在 read 函数上不返回,也无法接受其他客户端连接。这肯定是不行的。

2023-10-13 10:16:05 70

原创 01-Hive概念及框架原理

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能,主要完成海量数据的分析和计算。优点:简化数据开发流程及提高了效率。

2023-10-12 22:05:41 84

转载 Flume进阶之自定义拦截器 Interceptor

/声明一个存放事件的集合@Override//初始化存放事件的集合//单个事件拦截 @Override//1.获取事件中的头信息//2.获取事件中的 body 信息//3.根据 body 中是否有"atguigu"来决定添加怎样的头信息//4.添加头信息} else {//4.添加头信息//批量事件拦截 @Override//1.清空集合addHeaderEvents.clear();//2.遍历 events。

2023-10-07 20:38:48 284

转载 Flume进阶之复制和多路复用、负载均衡和故障转移、聚合案例

hadoop102 上的Flume-1 监控文件/opt/module/flume-1.9.0/group.log,hadoop103 上的Flume-2 监控某一个端口的数据流,Flume-1 与 Flume-2 将数据发送给 hadoop104 上的 Flume-3,Flume-3 将最终数据打印到控制台。故障转移需求:使用 Flume1 监控一个端口,其 sink 组中的 sink 分别对接 Flume2 和 Flume3,采用FailoverSinkProcessor,实现故障转移的功能。

2023-10-07 15:53:04 251

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除