Russ Xia Blog

身处寒夜,把握星光。

Elasticsearch的基本概念和安装

Elasticsearch的特点、集群和安装

基本概念 官方文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-concepts.html#_index 基于elasticsearch-6.7.0版本 接近实时(near-realtime) Elasticsearch是一个接近实时的搜索平台。Elasticsearc...

Elasticsearch中常用的API

Elasticsearch中常用的API

查看集群健康 查看集群信息,检查集群健康, GET /_cat/health 响应信息: epoch timestamp cluster status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent 155...

Flink的编程模型

Flink的编程模型和基本术语含义

官方资料: https://ci.apache.org/projects/flink/flink-docs-release-1.7/concepts/programming-model.html 四种不同级别的抽象 Flink提供了4种不同级别的抽象,以供开发流/批处理应用。 最底层的抽象简单提供了有状态的流(stateful streaming)。通过Process方...

构建第一个Flink应用

编写Flink程序

开发环境准备 JDK 1.8 ➜ [/Users/russ/workspace] java -version java version "1.8.0_191" Java(TM) SE Runtime Environment (build 1.8.0_191-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mod...

Hive的安装和使用

Hive的安装和使用步骤,以及Hive中的分区和桶

前置准备 安装JDK 安装Mysql 安装Hadoop 启动HDFS和YARN Hive的安装 下载hive https://hive.apache.org/downloads.html 配置相关参数(本例以本地模式(local metastroe)启动) 启动mysql,并创建对应数据库(本例名为hive) 将mysql的j...

Hive的基本概念

Hive的基本架构、体系结构,以及和传统数据库的对比

什么是Hive? Hive是一个构建在Hadoop上的数据仓库框架。 Hive定义了类似SQL的Hive QL,允许用户用类似SQL的方式进行操作。Hive把SQL查询转换为一系列在Hadoop集群上运行的map-reduce作业。 Hive的基本架构 Hive的基本组成: 用户接口:包挎CLI(shell命令行)、JDBC/ODBC,WebUI等 元数据存储:通常是存储在关系...

Sharding-JDBC Lexer源码分析

Lexer的源码分析,Lexer时怎么做词法分析的

Sharding-JDBC Lexer源码分析 Lexer中的Toekn Lexer在Sharding-JDBC中的主要作用是顺序解析sql,将字符串解析成一个个Token(包含词法类型、词法字面量、sql字符串中结束位置等信息)。 @RequiredArgsConstructor @Getter public final class Token { //词法类型 pr...

Java中几种属性copy工具比较

常见的属性copy工具及其性能对比

Java中几种属性copy工具比较 属性copy是日常开发中比较常见的操作,如DO转DTO等。常见的属性copy工具类方法有: 直接调用类的getter setter方法(效率高,代码长) Spring提供的BeanUtils.copyProperties(Object source, Object target[,String… ignoreProperties])工具方法。...

AQS中的独占模式

AQS的毒战模式,以及公平锁和非公平锁

三、AQS中的独占模式 本文以ReentrantLock的非公平锁为例。上半部分主要讲述了获取锁的过程,下半部分主要讲述释放锁的过程。 ReentrantLock中的加锁操作 ReentrantLock是一个可重入锁!compareAndSetState(0, 1)可以理解为获取锁的操作,如果返回true,则获取锁成功。 下面以ReentrantLock.NonfairSync为例,...

AQS的基本数据结构

AQS的数据结构以及acquire和release的实现

AQS的基本数据结构 AQS的背景 AbstractQueuedSynchronizer(简称AQS)是整个JUC的基础,大部分的同步器都是基于AQS的。 Doug Lea在设计之初,再设计之初,希望建立一个小框架,AQS类,来为构造这些同步器提供一种通用的机制。 我们平常所熟悉的,Semaphore、CountDownLatch、ReentrantLock、ReentrantRead...