Category Archives: Ops

Kafka原理和集群测试

Kafka是一个消息系统,由LinkedIn贡献给Apache基金会,称为Apache的一个顶级项目。Kafka最初用作LinkedIn的活动流(activity stream)和运营数据处理管道(pipeline)的基础。它具有可扩展、吞吐量大和可持久化等特征,以及非常好的分区、复制和容错特征。

Kafka的关键设计决策

1). Kafka在设计之时为就将持久化消息作为通常的使用情况进行了考虑。
2). Kafka主要的设计约束是吞吐量,而不是功能。
3). Kafka有关哪些数据已经被使用了的状态信息保存为数据使用者(consumer)的一部分,而不是保存在服务器之上。
4). Kafka是一种显式的分布式系统。它假设,数据生产者(producer)、代理(brokers)和数据使用者(consumer)分散于多台机器之上。
而相比而言,传统的消息队列不能很好的支持(如超长的未处理数据、不能有效持久化)。对于数据的可用性,Kafka提供了两个保证:
(1). 生产者发送到Topic的分区上消息将会按照它们发送的顺序,而消费者收到的消息也是此顺序
(2). 如果一个Topic配置了复制因子( replication facto)为N, 那么可以允许N-1服务器当掉而不丢失任何已经增加的消息 Continue reading

Posted in BigData, Ops, Tools.

Kafka主要参数详解

原文档地址:http://kafka.apache.org/documentation.html
Continue reading

Posted in BigData, Ops, Tools.

kerberos安装和管理

Kerberos 服务(kerberos官网)是一种通过网络提供安全验证处理的客户机/服务器体系结构。通过验证,可保证网络事务的发送者和接收者的身份真实。该服务还可以检验来回传递的数据的有效性(完整性),并在传输过程中对数据进行加密(保密性)。使用 Kerberos 服务,可以安全登录到其他计算机、执行命令、交换数据以及传输文件。此外,该服务还提供授权服务,这样,管理员便可限制对服务和计算机的访问。而且,作为 Kerberos 用户,您还可以控制其他用户对您帐户的访问。 Continue reading

Posted in Ops, Tools.

Cacti原理和配置

Cacti是一个基于PHP,MySQL,SNMP及RRDTool开发的图形监控分析工具。它本身是一个具有强大绘图挂历展示能力的PHP Web应用,监控数据的获取依赖于SNMP(snmpget),对于数据的存储和图形绘制依赖于RRDTool(也就是说数据必须是时间序列相关的数据)。 Cacti 的设计初衷是为了让 RRDTool使用更加方便。此外,Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。所以要深入了解Cacti,首选需要了解SNMP协议和RRDTool。
Continue reading

Posted in Ops, Tools.

限定SSH登录的命令执行

最近需要创建一个用于监控主机性能的帐号,由于是核心的生产服务器,这个帐号登录需要严格限定执行常见的sysstat, top等性能命令,完成后就要退出登录。查了一些资料后了解authorized_keys中的command等一系列选项可以用于限定使用公钥验证登录后只能执行的命令,服务器在完成该脚本额执行后,SSH也会中端和客户端的通信。
authorized_keys中的command选项描述如下:
command=”command”
Specifies that the command is executed whenever this key is used
for authentication. The command supplied by the user (if any) is
ignored. The command is run on a pty if the client requests a
pty; otherwise it is run without a tty. If an 8-bit clean chan-
nel is required, one must not request a pty or should specify
no-pty. A quote may be included in the command by quoting it
with a backslash. This option might be useful to restrict cer-
tain public keys to perform just a specific operation. An exam-
ple might be a key that permits remote backups but nothing else.
Note that the client may specify TCP and/or X11 forwarding unless
they are explicitly prohibited. The command originally supplied
by the client is available in the SSH_ORIGINAL_COMMAND environ-
ment variable. Note that this option applies to shell, command
or subsystem execution.
Continue reading

Posted in Linux, Ops.

Linux Systemd服务管理

systemd(systemd官网)是Linux下的一种init软件, 较好地管理多个系统服务之间的并行启动和依赖,同时达到降低系统开销的效果,最终代替现在常用的System V与BSD风格init程序。新发行的RHEL 7也用systemd来取代了sysV来管理服务。Systemd中对系统的配置有大量改变,例如在Systemd中hostname可以在/etc/hostname中设置,而非rc.conf中的HOSTNAME环境变量等。本文先简单介绍一下systemd下服务的简单配置。 Continue reading

Posted in Linux, Ops.

Cloudera Manager 5离线安装参考

0. 主机规划

Cloudera Manager需要一台单独的主机
debugo01 Cloudera Manager, yum repo
debugo02 NameNode, DataNode, Yarn RM, Spark Master, Spark Worker …
debugo03 DataNode, Spark Worker, Secondery NameNode …
Continue reading

Posted in BigData, Ops, Tools.

Linux 多彩提示符设置

今天看到一些大神的环境有非常酷炫的Linux BASH命令提示符,比默认的'[root@localhost ~]# ‘多了不少内容,而且设置了区分度比较大的颜色,避免了对一些误操作行为。我觉得非常有意义,所以配置一份自己PS1变量。

PS(Prompt Sign): 是指命令提示符。Linux中可以通过修改PS1来修改命令提示符的格式的内容,PS1还提供了一些特殊的符号来表示PS1的内容(参考鸟哥私房菜):
\d 日期
\H 完整的主机名称(带上domain)
\h 仅取主机名
\t 显示时间,为 24 小时格式,如: HH:MM:SS
\T 显示时间,12 小时的时间格式
\A 显示时间,24 小时格式, HH:MM
\u 目前使用者的账号名称
\v BASH 的版本信息
\w 当前工作目录完成路径。home目录会以 ~ 取代
\W 利用 basename 取得工作目录名称
\# 下达的第几个指令,相当于一个当前连接的命令计数器
\$ 提示字符,如果是 root 时,提示字符为 # ,普通用户连接就是 $
Bash中不仅可以设置八种不同的颜色, 还可以设置下划线、粗体和背景色。详细信息可以在这个文档中找到:Color Bash Prompt
下面的PS1变量输出了user,host_name.domain_name, pwd, 和上一个进程的exit code,并将该命令提示符单独分割一行。这样太长的路径和主机名也不会影响正常的命令输入。后面如果需要还可以加入更多的内容。该PS1应该在/home/<username>/.bash_profile中被export,不应该取代全局/etc/bashrc中的PS1设置。

效果如下:
cmd_prompt

^^

Posted in Linux.

Docker入门

Develop, Ship and Run Any Application, Anywhere.
Docker consists of:
The Docker Engine – our lightweight and powerful open source container virtualization technology combined with a work flow for building and containerizing your applications.
Docker Hub – our SaaS service for sharing and managing your application stacks.
Docker hub(app仓库)也是docker的组成,可以在https://hub.docker.com/ 登录并注册一个docker账户,搜索、下载别人分享的docker app,也可以自己上传和保存自己修改/创建的docker app(即docker image托管)。hub repository上提供了APP非常丰富多彩,基本上囊括了常用的一切应用平台。相关资料参见:
Docker1.0发布—迈入云(DockerHub应用分发平台)端(Docker引擎)时代
http://www.openstack.cn/p1961.html
官方文档:
https://docs.docker.com/
另外官方有个在线模拟的tutorial,10分钟就可以了解docker的基本使用。
http://www.docker.com/tryit/
15个有用的docker技巧
http://www.21ops.com/linux/13512.html
Continue reading

Posted in Ops, Tools, Virtualization.

使用fio进行I/O性能测试

fio是一个非常灵活的I/O测试工具,支持多线程或进程模拟等I/O操作来进行压力测试,project官网为fio
(1). 安装fio首先要安装异步的I/O支持libaio.x86_64(Linux-native asynchronous I/O access library):
yum install libaio libaio-devel
应用使用IO通常有二种方式:同步和异步。 同步的IO一次只能发出一个IO请求,等待内核完成才返回,这样对于单个线程iodepth总是小于1,但是可以透过多个线程并发执行来解决,通常我们会用16-32根线程同时工作把iodepth塞满。 异步的话就是用类似libaio这样的linux native aio一次提交一批,然后等待一批的完成,减少交互的次数,会更有效率。(摘自参考2) Continue reading

Posted in Ops, Tools.