Elasticsearch史上最全最常用工具清单

2018-6-10 杜世伟 架构

Elasticsearch史上最全最常用工具清单

1、题记
工欲善其事必先利其器,ELK Stack的学习和实战更是如此,特将工作中用到的“高效”工具分享给大家。

希望能借助“工具”提高开发、运维效率!

2、工具分类概览
2.1 基础类工具
1、Head插件

1)功能概述:

ES集群状态查看、索引数据查看、ES DSL实现(增、删、改、查操作)
比较实用的地方:json串的格式化



2)地址:http://mobz.github.io/elasticsearch-head/

2、Kibana工具

除了支持各种数据的可视化之外,最重要的是:支持Dev Tool进行RESTFUL API增删改查操作。
——比Postman工具和curl都方便很多。

阅读全文>>

标签: ansible Elasticsearch elk

评论(0) 浏览(3276)

数据库从0到0.1 : OLTP VS OLAP VS HTAP

2018-5-27 杜世伟 架构

OLTP是Online Transaction Processing的简称;OLAP是OnLine Analytical Processing的简称;HTAP是Hybrid Transactional/Analytical Processing的简称。Transaction是指形成一个逻辑单元,不可分割的一组读,写操作;Online一般指查询延迟在秒级或毫秒级,可以实现交互式查询。

OLTP的查询一般只会访问少量的记录,且大多时候都会利用索引。在线的面向终端用户直接使用的Web应用:金融,博客,评论,电商等系统的查询都是OLTP查询,比如最常见的基于主键的CRUD操作。

OLAP的查询一般需要Scan大量数据,大多时候只访问部分列,聚合的需求(Sum,Count,Max,Min等)会多于明细的需求(查询原始的明细数据)。 OLAP的典型查询一般像:现在各种应用在年末会发布的大数据分析和统计应用,比如2017豆瓣读书报告,2017豆瓣读书榜单,网易云音乐2017听歌报告; OLAP在企业中的一个重要应用就是BI分析,比如2017年最畅销的手机品牌Top5;哪类人群最喜欢小米或华为手机等等。

《Designing-Data-Intensive-Applications》一书指出的OLTP和OLAP的主要区别如下:

OLAP vs OLTP

在CMU-CS 15-415的课程中对OLAP和OLTP这样介绍:

阅读全文>>

标签: oltp olap HTAP

评论(0) 浏览(2748)

"Exit Trap” 让你的 Bash 脚本更稳固可靠

2018-5-14 杜世伟 Linux

有个简单实用的技巧可以让你的 bash 脚本更稳健 -- 确保总是执行必要的收尾工作,哪怕是在发生异常的时候。要做到这一点,秘诀就是 bash 提供的一个叫做 EXIT 的伪信号,你可以 trap 它,当脚本因为任何原因退出时,相应的命令或函数就会执行。我们来看看它是如何工作的。

基本的代码结构看起来像这样:

#!/bin/bash
function finish {
  # 你的收尾代码
}
trap finish EXIT

你可以把任何你觉得务必要运行的代码放在这个 finish 函数里。一个很好的例子是:创建一个临时目录,事后再删除它。

#!/bin/bash
scratch=$(mktemp -d -t tmp.XXXXXXXXXX)
function finish {
  rm -rf "$scratch"
}
trap finish EXIT

这样,在你的核心代码中,你就可以在这个 $scratch 目录里下载、生成、操作中间或临时数据了。注1

阅读全文>>

标签: linux shell trap

评论(0) 浏览(2474)

在 Linux 下 9 个有用的 touch 命令示例

2018-5-2 杜世伟 Linux

touch 命令用于创建空文件,也可以更改 Unix 和 Linux 系统上现有文件时间戳。这里所说的更改时间戳意味着更新文件和目录的访问以及修改时间。

让我们来看看 touch 命令的语法和选项:

语法:

# touch {选项} {文件}
touch 命令中使用的选项:

touch-command-options

touch-command-options

在这篇文章中,我们将介绍 Linux 中 9 个有用的 touch 命令示例。

示例:1 使用 touch 创建一个空文件
要在 Linux 系统上使用 touch 命令创建空文件,键入 touch,然后输入文件名。如下所示:

[root@linuxtechi ~]# touch devops.txt
[root@linuxtechi ~]# ls -l devops.txt
-rw-r--r--. 1 root root 0 Mar 29 22:39 devops.txt

阅读全文>>

标签: linux cat touch stat

评论(0) 浏览(17249)

史上最全Redis高可用技术解决方案大全

2018-4-9 杜世伟 Redis

Redis常见的几种主要使用方式:

  • Redis 单副本

  • Redis 多副本(主从)

  • Redis Sentinel(哨兵)

  • Redis Cluster

  • Redis 自研


Redis各种使用方式的优缺点:

1
Redis单副本

Redis 单副本,采用单个Redis节点部署架构,没有备用节点实时同步数据,不提供数据持久化和备份策略,适用于数据可靠性要求不高的纯缓存业务场景。


优点:

1、架构简单、部署方便

2、高性价比,当缓存使用时无需备用节点(单实例可用性可以用supervisor或crontab保证),当然为了满足业务的高可用性,也可以牺牲一个备用节点,但同时刻只有一个实例对外提供服务。

阅读全文>>

标签: redis sentinel cluster

评论(0) 浏览(2231)

如何在 Linux 中查找最大的 10 个文件

2018-3-30 杜世伟 Linux

当系统的磁盘空间不足时,您可能会使用 df、du 或 ncdu 命令进行检查,但这些命令只会显示当前目录的文件,并不会显示整个系统范围的文件。
您得花费大量的时间才能用上述命令获取系统中最大的文件,因为要进入到每个目录重复运行上述命令。
这种方法比较麻烦,也并不恰当。
如果是这样,那么该如何在 Linux 中找到最大的 10 个文件呢?
我在谷歌上搜索了很久,却没发现类似的文章,我反而看到了很多关于列出当前目录中最大的 10 个文件的文章。所以,我希望这篇文章对那些有类似需求的人有所帮助。
本教程中,我们将教您如何使用以下四种方法在 Linux 系统中查找最大的前 10 个文件。
方法 1
在 Linux 中没有特定的命令可以直接执行此操作,因此我们需要将多个命令结合使用。

# find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10 
 
1.4G /swapfile 
1.1G /home/magi/ubuntu-17.04-desktop-amd64.iso 
564M /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqTFU0XzkzUlJUZzA 
378M /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqeldzUmhPeC03Zm8 
377M /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqRGd4V0VrOXM4YVU 
100M /usr/lib/x86_64-linux-gnu/libOxideQtCore.so.0 
93M /usr/lib/firefox/libxul.so 
84M /var/lib/snapd/snaps/core_3604.snap 
84M /var/lib/snapd/snaps/core_3440.snap 
84M /var/lib/snapd/snaps/core_3247.snap 

详解:

find:在目录结构中搜索文件的命令
/:在整个系统(从根目录开始)中查找
-type:指定文件类型
f:普通文件
-print0:在标准输出显示完整的文件名,其后跟一个空字符(null)
|:控制操作符,将一条命令的输出传递给下一个命令以供进一步处理
xargs:将标准输入转换成命令行参数的命令
-0:以空字符(null)而不是空白字符(LCTT 译者注:即空格、制表符和换行)来分割记录
du -h:以可读格式计算磁盘空间使用情况的命令
sort:对文本文件进行排序的命令
-r:反转结果
-h:用可读格式打印输出
head:输出文件开头部分的命令
n -10:打印前 10 个文件

阅读全文>>

标签: linux find df du ncdu

评论(0) 浏览(2085)

同为分布式缓存,为何Redis更胜一筹?

2018-3-26 杜世伟 架构

如今,市面上的缓存解决方案已经逐步成熟了,今天我将选取其中一些代表性的方案包括Redis、Memcached和Tair进行对比,帮助大家在生产实践中更好地进行技术选型。


一、常用的分布式缓存的对比


常用的分布式缓存包括Redis、Memcached和阿里巴巴的Tair(见下表),因为Redis提供的数据结构比较丰富且简单易用,所以Redis的使用广泛。



下面我们从9个大方面来对比最常用的Redis和Memcached。

阅读全文>>

标签: redis memcache tari

评论(0) 浏览(2139)

ERROR 1010 (HY000): Error dropping database (can't rmdir './******', errno: 39)

2018-3-11 杜世伟 Mysql

今天操作数据库出现以下错误提示:

ERROR 1010 (HY000): Error dropping database (can't rmdir './******', errno: 39)

字面意思是说删除数据失败,不能删除目录./******

数据库版本信息:
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.2    |
+-----------+
1 row in set (0.00 sec)

mysql> use 数据库名;
Database changed
mysql> show tables;
Empty set (0.00 sec)
发现数据库中已经没有表了,这个时候为什么drop database不成功呢?奇怪了......
通过以下命令查看数据库文件所在目录:
mysql> select @@datadir;
+--------------+

阅读全文>>

标签: mysql drop version

评论(0) 浏览(10238)

基于php实现多进制转换与兑换码生成的探索

2018-1-15 杜世伟 Php

最近要做一个兑换码生成的功能,之前有做过32位唯一码生成器,但是在业务需求中,32位的兑换码有些过长了,用户在应用内填写的时候会比较麻烦,不是很友好,倒是可以做成二维码的形式扫一下就行了,但是业务中还是存在输入兑换码的行为,所以本篇主要是关于以尽量短的字符来生成兑换码,同时要保证唯一性以及生成机制复用性(也就是利用这套机制可以生成不同种类的兑换码)的探索

以下示例代码均基于TPRCMS编写

探索一: 进制转换

生成的32位唯一码是16进制的哈希字符串,我就在想是不是可以通过提高进制来缩短字符串长度,所以有了如下的代码

代码地址: 多进制转换器ConvertLogic
其中关于10进制与62进制互转的部分,参考了《PHP 10进制与62进制互转,可用于生成短网址》

实例代码

$uuid = "cd5fd2cfeb40aafe060f4d9597348be7";
$str = ConvertLogic::convert( $uuid, 16, 62); 

输出

string(32) "cd5fd2cfeb40aafe060f4d9597348be7"
string(22) "6fxdxREtzxq6qNdSghGm7t" 

阅读全文>>

标签: redis uniqid 进制转换 兑换码

评论(0) 浏览(14504)

Mac 启动自带PHP php-fpm问题

2018-1-9 杜世伟 Mac

Mac启动自带PHP php-fpm问题
Mac 自带 php-fpm,在终端执行 php-fpm,会报如下错误:
ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2)
ERROR: failed to load configuration file '/private/etc/php-fpm.conf'
ERROR: FPM initialization failed

错误信息显示,不能打开配置文件,cd /private/etc,发现没有 php-fpm.conf 文件,但是有 php-fpm.conf.default 文件。这个文件是默认配置,我们可以复制一份,改名为 php-fpm.conf,然后再根据需要改动配置。

cp /private/etc/php-fpm.conf.default /private/etc/php-fpm.conf
执行 php-fpm,再次报错:

ERROR: failed to open error_log (/usr/var/log/php-fpm.log): No such file or directory (2)
ERROR: failed to post process the configuration

阅读全文>>

标签: PHP php-fpm Mac

评论(0) 浏览(13038)

Powered by emlog 沪ICP备2023034538号-1