Linux Note – cgroup

cgroups(control groups)是Linux内核2.6.24引入的一个新特性 ,用来限制、分离和报告一个进程组的资源(CPU、内存、磁盘输入输出等)。常用的ulimit只能基于用户或者用户组来进行资源限制,不能够针对某一进程作出详细限制,缺乏灵活度。
cgroups的一个设计目标是为不同的应用情况提供资源限制的统一接口:
内存资源限制:可以对于一个组设置内存上限;
CPU和I/O的优先级:可以使一些组得到更高的CPU或磁盘I/O使用权;
报告:可以用来衡量系统确实把多少资源用到合适的目标;
分离:分离组的命名空间,这样一个组内不会看到另一个组的进程、网络连接和文件。
控制:冻结组或检查点和重启动
Continue reading

Posted in Linux.

Hive点滴 – 使用Hive命令行

1. hive命令行技巧

在hive中,直接执行$HIVE_HOME/bin/hive或者执行$HIVE_HOME/bin/hive –service cli就进入了Hive的命令行模式。
常常用于直接进行交互式命令的执行。
(1). 在hive中,使用可以得到类似bash的自动补全功能。
(2). 历史命令,保存在 $HOME/.hivehistory
(3). 在hive的命令行下输入!来输入host命令(和sqlplus一样)。
(4). hive下面查看dfs的内容:
hive> dfs -ls /tmp;
Found 2 items
-rw-r–r– 3 ambari-qa hdfs 1916 2014-03-12 06:14 /tmp/ida8c0d201_date141214
-rw-r–r– 3 ambari-qa hdfs 1958 2014-03-12 07:45 /tmp/ida8c0d201_date441214
Continue reading

Posted in BigData, HBase|Hive.

使用HDP快速搭建Hadoop开发环境

本文简单记录了一下使用VMware workstation 10、CentOS和HDP 2.0.6(Hadoop 2.2)发行版构建Hadoop开发测试环境的全部流程。这个过程中我遇到了不少问题,也耽误了不少的时间,所以将此文奉上,希望对大家有所帮助。
本文使用两台虚拟机搭建真实集群环境,操作系统为Cent OS 6.5。可以使用VMware Workstation的简易安装模式来进行。
Continue reading

Posted in BigData, Hadoop.

Linux Note – auditd

Linux的审计系统包括内核审计子系统和一些进程,auditd服务则是Linux审计子系统的用户空间进程。内核的审计模块将收集的审计消息发送给用户空间的后台进程auditd进行处理。在默认的情况下,审计结果会发送到/var/log/audit/audit.log文件中。如果auditd没有运行,审计消息会发送给rsyslog。
audit_components
(图片来源:http://doc.opensuse.org)
审计消息的来源主要有两方面:
a).内核、应用程序(audit-libs-devel提供的API)。
b).系统管理员添加的审计规则,匹配规则的事件都将被记录下来。
Continue reading

Posted in C|C++, Linux.

为HDFS添加新的存储

继续上一篇的配置,由于PC Server自带了6块600G的磁盘,可以加入集群中。首先检查磁盘:
Continue reading

Posted in BigData, Hadoop, Linux.

Hadoop 2.3 集群配置

Hadoop 2.3.0版在2014年2月20日正式发布了,新增了很多不错的新特性。(董大神对这些特性的介绍:http://dongxicheng.org/mapreduce-nextgen/hadoop-2-3-0-new-features )。下面是Hadoop 2.3版搭建分布式集群的全部过程。
Continue reading

Posted in BigData, Hadoop, Linux.

Scala Note – 运算符和转义

scala的运算符

(1).Scala 没有实现任何操作符,所有的操作符运算都是对方法/函数的调用。
如 1+2 实际上是调用了.+()这个方法 即1.+(2)
a:b是b.:(a)的方法调用
在具体的调用中,调用+实际上包含了+的各种类型参数的重载,所以直接可以使用。
(2).前缀后缀运算符是一元操作,而中缀运算符是二元操作。
(3).操作符优先级
表达式的读取和执行并不依赖于顺序,更关键是操作符固定的优先级
顺序如下:
特殊字符 > */% > +- > : > =! > <> > & > ^ > | > 其他字母 > 赋值操作符
scala还支持 *** +-+之类的操作符重载,其优先级以第一个符号为主。
*=等带等号的运算符重载,会被认为是赋值运算符而具有最低的优先级。
m*=(n+5) 等价于 m*=(n+5)

scala的转义

\b \u0008 退格
\t \u0009 制表符
\n \u0004 换行
\f \u000c 换页
\r \u000d 回车
\” \u0022 双引号
\’ \u0027 单引号
\\ \u005c 反斜杠

Posted in Dev, Java|Scala.

Scala Note – 数组和集合

1. Mutable size array – arraybuffer

Continue reading

Posted in Dev, Java|Scala.

Linux Note – File Security

1. 文件属性

通过lsattr命令可以查看Linux(list file attributes on a Linux second extended file system, 兼容ext3和ext4)的特殊属性。

相应的,chattr命令可以修改文件属性。
+ 操作符“+”用来在文件已有属性的基础上增加被选定的属性
– 操作符“-”用来去掉文件上的选定属性
= 操作符“=”表示将文件属性设置为现在选择的属性
-R recursive 递归改变目录及其内容的属性
-V 详细输出
Continue reading

Posted in Linux.

Linux Note – rsyslog

syslog 日志可以帮我们主动的收集到设备的各种信息,并保存在syslog服务器上,当某些设备出现故障的时候,我们可以省去手动收集信息的麻烦,方便快捷的从syslog服务器中读取设备的各种信息来进行分析排错。rsyslog在RHEL6的时代取代了syslog,使用了多线程来优化性能、较少磁盘I/O次数、支持TCP传输协议等,而且管理起来更加简单有效(comparison: http://www.balabit.com/syslog-ng-rsyslog-comparison )。 版本基于RHEL6.4:
[root@debugo01 ~]# rsyslogd -version
rsyslogd 5.8.10, compiled with:
FEATURE_REGEXP: Yes
FEATURE_LARGEFILE: No
GSSAPI Kerberos 5 support: Yes
FEATURE_DEBUG (debug build, slow code): No
32bit Atomic operations supported: Yes
64bit Atomic operations supported: Yes
Runtime Instrumentation (slow code): No
Continue reading

Posted in Linux.