1. Neo4j简单介绍

1.1 基本概念

图数据库的基本含义是以“图”这种数据结构存储和查询数据。传统关系数据库在查找范围超出浅遍历的情况下会变得缓慢,而图数据库因为使用了图遍历技术查找非常迅速。

neo4j图数据库中的基本概念:

Neo4j简单模型

  • Nodes:通常用来表使一个实体

Read More

Elasticsearch入门-3.集群内部原理

1. 空集群

当Es集群中只有一个节点时,该节点自动称为主节点,主节点负责管理集群内的所有变更(增加删除索引、节点等)。当集群中有多个节点时Es会自动选举出主节点,并对数据进行平衡。

2.集群健康

Es会对集群健康信息进行统计

1
GET /_cluster/health
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"cluster_name": "elasticsearch",
"status": "yellow", //green所有分片都正常,yellow主分片正常副本分片有异常,red主分片有异常
"timed_out": false,
"number_of_nodes": 1,
"number_of_data_nodes": 1,
"active_primary_shards": 10,
"active_shards": 10,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 10, //未分配分片数,有数据丢失风险
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 50
}

3.索引和分片

向Es添加数据时需要索引来记录数据保存的物理位置,所以需要使用索引

Read More

Elasticsearch入门-1.环境安装

最近需要用到Elasticsearch,官网推荐《Elasticsearch 权威指南 》这本书,在看这本树的过程中我会把知识点梳理成一系列的读书笔记。这里使用的软件版本如下:

软件名称 版本 备注
jdk 1.8
elasticsearch 6.2.4 解压即可
kibana 6.2.4 解压即可

解压启动elasticsearch和kibana后可以打开http://localhost:5601,进入Dev Tools选项,后续的一些功能都将在这里学习

Read More

Hive应用(10.1)锁

Hive可以通过Zookeeper来实现锁定功能。安装好zookeeper后对Hive进行如下配置:

1
2
3
4
5
6
7
8
<property>
<name>hive.zookeeper.quorum</name>
<value>zk1:2181,zk2:2181,zk3:2181</value>
</property>
<property>
<name>hive.support.concurrency</name>
<value>true</value>
</property>

配置完成后Hive会在特定类型的操作时进行加锁,此时可以通过show locks命令来显示当前的锁。

1.1 共享锁和互斥锁

共享锁(s)支持并发执行,互斥锁(x)则不能进行并发操作。各个操作加锁的情况如下:

命令 加锁情况
select .. T1 partition P1 S on T1, T1.P1
insert into T2(partition P2) select .. T1 partition P1 S on T2, T1, T1.P1 and X on T2.P2
insert into T2(partition P.Q) select .. T1 partition P1 S on T2, T2.P, T1, T1.P1 and X on T2.P.Q
alter table T1 rename T2 X on T1
alter table T1 add cols X on T1
alter table T1 replace cols X on T1
alter table T1 change cols X on T1
alter table T1 add partition P1 S on T1, X on T1.P1
alter table T1 drop partition P1 S on T1, X on T1.P1
alter table T1 set serdeproperties S on T1
alter table T1 set serializer S on T1
alter table T1 set file format S on T1
alter table T1 set file format X on T1
alter table T1 set tblproperties X on T1

Read More

Hive应用(8.1)自定义文件和记录格式

1. 文件格式

1.1 文本文件

文本文件是默认的文件格式,通常情况一行为一条记录。文本文件支持直接查看,且灵活性更高。

1.2 SequenceFile

SequenceFile是Hadoop支持的标准文件格式,该格式支持块级别和记录级别的压缩,支持块级别的文件分割。

1.3 RCfile

RCfile使用列式存储,特定情况下列式存储的效率更高,且压缩更为高效。例如:一张宽表有几千个字段,而查询时只需要几个字段,这个时候扫描需要过滤大部分的数据,很浪费时间,而使用列式存储只需要扫描指定的列即可。

2. 记录格式

Hive内置了一下SerDe,同时第三方也有一些SerDe可以使用。

一些常见的SerDe:

Read More