Git 的 ssh key


生成 ssh key

ssh-keygen -t rsa -C "your name"

这样默认会在本地的 ~/.ssh 目录下生成 id_rsa,id_rsa.pub 两个文件。
id_rsa 是私钥,id_rsa.pub 是公钥。

使用 ssh key
ssh key 方式登录远程服务器
我们需要把 id_rsa.pub 拷贝到远程服务器的 ~/.ssh 下面,并改名为 authorized_keys,这样我们就可以使用 key 的方式登录了。

ssh key 方式使用 git clone 代码
如果我们使用的是 github,只需要把 id_rsa.pub 的内容拷贝出来,在 github 的 setting 里面添加即可, 我们就可以使用 ssh 方式 clone 代码了。

// 请修改为你自己的git地址
git clone git@github.70data/test.git




阅读全文

深入浅出 Kafka(四)Kafka 简介


Kafka 特性:

  • 具有近乎实时的消息处理能力 顺序读写磁盘
  • 支持批量读写磁盘 并且会对消息进行批量压缩
  • 支持消息分区 可以在线增加分区,为每个分区创建多个副本,只会有一个 Leader 负责读写,其他副本与 Leader 同步。
  • 支持水平扩展

阅读全文

深入浅出 Kafka(三)稀疏索引与稠密索引


聚集索引:在一张表中,如果一个索引有如下特性,数据的物理顺序与键值的逻辑顺序相同。

稠密索引和稀疏索引都属于聚集索引。

1.稠密索引
定义:它是由键值和指针(指向记录本身地址)组成的一系列存储块,该存储块的键值与文件的逻辑顺序一致。
特性:每个存储块的每一个键对应的指针都指向每个数据块每一条记录,当要查找指定键 K 时,采用二分查找即可找到键K对应的记录,复杂度为 log2n。

2.稀疏索引
定义:它是由键值和指针(指向记录本身地址)组成的一系列存储块,该存储块的键值与文件的逻辑顺序单调性一致。
特性:每个存储块的每一个键对应的指针都指向每个数据块的第一条记录,当要查找指定建 K 时,先采用二分查找找到 <=K 的键 S,如果 S=K,则命中记录,如果 S<k,则顺序查找 =K 的键,复杂度大于 log2n,小于 n。

比较:

  • 稀疏索引占用的索引存储空间比较小,但是查找时间较长;
  • 稠密索引查找时间较短,索引存储空间较大。
阅读全文

深入浅出 Kafka(二)磁盘的基本概念


在谈这俩概念前、先来说说大 I/O 与小 I/O。通常,我们把 <=16KB 的 I/O 认为是小 I/O。而 >=32KB 的 I/O 认为是大 I/O。

当前大多系统使用的都是传统的机械磁盘。因此,整个系统设计要尽可能顺序I/O。避免昂贵的寻道时间和旋转延迟的开销。随机小 I/O 消耗比顺序大 I/O 更多的处理资源。随机小 I/O 更在意系统处理 I/O 的数量,即 IOPS,比如 OLTP。而顺序大 I/O 则更在意带宽,即 MB/s,比如 OLAP。因此,如果系统承载了多种不同的应用,必须了解它们各自的需求,是对 IOPS 有要求,还是对带宽有要求。

传统机械磁盘最大的问题在于读写磁头,读写磁头的存在可以让磁盘既能顺序 I/O、也可随机 I/O。但是,随机 I/O 需要花费昂贵的磁头旋转和定位来查找。因此,顺序 I/O 访问的速度远远快于随机 I/O。

顺序读写 = 读取一个大文件

随机读写 = 读取多个小文件

顺序读写比随机读写快的原因:

  1. 顺序读写 主要时间花费在了传输时间,而这个时间两种读写可以认为是一样的。
    随机读写 需要多次寻道和旋转延迟,而这个时间可能是传输时间的许多倍。
  2. 顺序读写 磁盘会预读,预读即在读取的起始地址连续读取多个页面。
    随机读写 因为数据没有在一起,将预读浪费掉了。
  3. 文件系统的 overhead 读写一个文件之前,得一层层目录找到这个文件,以及做一堆属性、权限之类的检查。写新文件时还要加上寻找磁盘可用空间的耗时。对于小文件,这些时间消耗的占比就非常大了。
阅读全文

深入浅出 Kafka(一)磁盘的基本概念


1.基本概念

(1)磁盘组合

  • 盘片=2盘面
  • 主轴
  • 磁道
  • 柱面
  • 扇区
  • 间隙
  • 块 磁盘被划分为磁盘块,每块的大小是 4-64kB。整个块被从一个称为缓冲区的连续内存区域中移进移出。块是在磁盘与主存之间所传输数据的逻辑单元,由一个或多个扇区所组成。

(2)磁头组合

  • 磁头臂
  • 磁头
  • 磁头组合 一个磁盘的所有磁头在一起叫做磁头组合,它们位于相同的柱面上。

阅读全文

排查 Logstash 2.4 升级到 5.0 版本后 Kafka 不兼容问题


之前对 ELKB 环境从 2.4 版本升级到最新的 5.0 稳定版本,发现 kafka 集群运行报错,现在把排查过程记录下。

之前环境:
logstash2.4
logstash-input-kafka-2.0.9
logstash-output-kafka-2.0.5
kafka_2.10-0.8.2.2.tgz

升级后环境:
logstash5.0
logstash-input-kafka-2.0.9
logstash-output-kafka-2.0.5

报错信息:

[2016-11-16T14:35:44,739][ERROR][logstash.inputs.kafka] Unknown setting 'zk_connect' for kafka
[2016-11-16T14:35:44,741][ERROR][logstash.inputs.kafka] Unknown setting 'topic_id' for kafka
[2016-11-16T14:35:44,741][ERROR][logstash.inputs.kafka] Unknown setting 'reset_beginning' for kafka







阅读全文

程序员老张的故事(二)


8
单身太久了,一朋友说,“给你介绍个对象吧,算你半个老乡,靠谱。”
没想到还有人惦记着我的终身大事,我很感动,手抖在微信上发了好几行流口水的表情。
“但他是个程序猿。”朋友说。
“……滚。”
我还没到饥不择食找程序猿的程度吧。刚准备扔手机关灯睡觉,朋友发了他三张照片。
阅毕,我决定见他一面。







阅读全文

程序员老张的故事(一)


1
老张是什么样的人呢?这么说吧,很久之前微博上流传着一份程序猿的特征大全,老张符合上面的每一条。
我搬到这个两居室一周之后才跟他打过一次招呼,当时他穿着道袍一样的巨大睡衣、嘴里叼着把上已经泛黑的牙刷、双脚穿着颜色不同的棉拖,迷茫地看着我,含糊不清地说:诶?你谁啊?
搞明白我是他的新室友之后,他有点不好意思,双手在睡衣上蹭了蹭,然后跟我握手。
我这有好几 T 的片儿,感兴趣的话可以来拷。他走进自己屋里,突然又探出头来很认真地跟我说。
经历过这么别致的初识,我对他产生了极大的兴趣。说来也巧,我最近在做一个心理学的课题,想着能对自己写作有些帮助。他就变成了我第一个研究对象。
别看我平时吊儿郎当,其实我心里明镜儿似的。比较相熟了之后,老张在屋里挥舞着双手这么跟我解释,身后是他贴的 Dota2 、海贼王和斯嘉丽的海报。
我平时不讲究,是根本没必要讲究啊。我整天西装笔挺、人模狗样的,给他妈谁看啊?不就是给女屌丝观赏吗?我就搞不明白那些姑娘整天花枝招展是干嘛,自己花这么多钱这么多时间收拾,好看都给陌生人看去了,算什么?做公益吗?
你说同事怎么看我?他们更无所谓。你去我们大厦,就看穿衣打扮就知道哪个是我们公司的,哪个是其他公司的。我们同事都很随性,活得明白,不爱慕虚荣。你看那些媒体公司、金融公司的,一个个脸上抹半尺厚的粉,笑都不敢笑,一笑全得抖下来。多累。
你看网上都说程序猿傻,不会哄女人开心。其实哪是傻,是懒得跟你聊。说三句话才明白半句,还得用十句话给你解释,这种女人哄她干嘛?为了骗她上床?我有右手啊,轻重缓急我自己拿捏不好吗?浪费那么多时间精力骗个女人上床,都是精虫上脑的原始人干的事儿。文明人才不会被鸡巴牵着走呢。
你们这些文化人整天想的是风花雪月,我对这些不感兴趣。你说整天跟女朋友老婆宝贝地叫着、银行卡信用卡刷着,图个啥?不就是晚上来一发吗。电话里甜言蜜语的,挂了电话一口一个臭婆娘;微信上发个笑脸过去,其实眉头早就皱成花卷儿了。有意思吗?
我认真把这些话记录下来,心想老张要是开微博,应该能成个段子手。












阅读全文