TDW开源版本更新

TDW对外开源的代码昨天更新了,更新至内部最新稳定版本。这个版本包含大量的bug修复和新功能,这里主要列举一下主要的新功能:

  • TDW QE支持hadoop 2.2.0版本
  • 将客户端ip,端口,当前SQL的默认DB写入tdw_query_info_new表中
  • 将运行SQL的报错信息写入tdw_query_error_info表中
  • protobuf默认版本升级至2.5.0
  • 新增AES加密的UDF
  • 新增两个解析XML的UDF
  • 新增posexplode UDF
  • 新增str_hash_bigint UDF
  • 新增get_main_domain UDF

在过去一段时间,TDW将现网默认的分区类型,从list分区改为range分区,以方便进行元数据和数据合并,进而提升hdfs raid的节约存储效果。因此,range分区的功能,性能大大增强。

另外一个增强是rcfile。之前TDW现网默认使用我们自己研发的format存储结构,目前转换成了rcfile。在未来,我们将默认使用rcfile作为默认存储。rcfile引入已经有一年多,期间灰度修复大量bug,目前已经足够稳定。

TDW开源代码仓库:https://code.csdn.net/Tencent/tdw

github镜像:https://github.com/amutu/tdw

交流反馈:https://groups.google.com/d/forum/tdw-user

发表在 未分类 | 留下评论

CentOS6 md软raid控制参数

 Bash |  copy |? 
  1. echo check > /sys/block/mdX/md/sync_action
  2. echo repair > /sys/block/mdX/md/sync_action
  3. echo idle > /sys/block/mdX/md/sync_action
  4. raid check和sync的最大速度控制:
  5. sysctl -w dev.raid.speed_limit_max=1000
  6. echo value > /proc/sys/dev/raid/speed_limit_max

/etc/cron.d/raid-check控制定期check软raid的频率,/etc/sysconfig/raid-check是它对应的配置。

参考链接:

https://raid.wiki.kernel.org/index.php/RAID_Administration

http://www.thomas-krenn.com/en/wiki/Mdadm_checkarray

http://wiki.eri.ucsb.edu/sysadm/RAID

http://www.cyberciti.biz/tips/linux-raid-increase-resync-rebuild-speed.html

https://www.kernel.org/doc/Documentation/md.txt

man md

发表在 linux | 留下评论

series console上vi正常显示的设置

在FreeBSD中,登录到系统以后,运行:

 Bash |  copy |? 
  1. setenv TERM vt100

发表在 freebsd | 留下评论

使用hadoop-0.20.205在Redhat6上搭建TDW时的注意事项

1.关闭防火墙,以及启动时的防火墙服务

关闭防火墙但没有更改启动时rc配置,如果集群中个别机器重启,可能会出现no route to host这样的task错误,最终job可能执行完成,但是会重试很多次,浪费时间和系统资源。

 Bash |  copy |? 
  1. service iptables stop
  2. chkconfig iptables off

2.关于hostname设置

一开始偷懒,没有用hostname,直接上ip,结果发现在job的页面上,运行task的机器都变成localhost了,没法定位问题。于是把所有机器的hostname设置成hadoop-xx,xx为ip的最后8位的十进制数。

 Bash |  copy |? 
  1. for i in $(cat iplist); do ssh $i "/bin/echo -e NETWORKING=yes\\\nHOSTNAME=hadoop-$(echo $i | sed 's/192.168.200.//g') > /etc/sysconfig/network"; done

同时还要修改/etc/hosts,把hadoop-xx对应的ip加进去。如果windows端浏览器要访问这些host的页面,也需修改windows的hosts文件。

修改完系统配置后,还要修改hive元数据,hadoop配置,把之前写ip的地方,都替换成hostname。否则,hive在运行时会出现wrong fs的错误。

发表在 big data, hadoop, hive, java, linux | 留下评论

使用psql进行二进制文件的bytea输入和输出

PostgreSQL的客户端工具psql对bytea和二进制文件的输入输出支持支持的并不好,假设用户在使用pg的bytea存放图片等,希望把图片下载下来存为文件,一般要使用编程api。如果非要使用psql客户端,其实也可以实现,只是比较麻烦。
 
【方式一】

使用pg_read_binary_file这个函数,可以直接将一个二进制文件读入,返回一个bytea类型。

pg_read_binary_file(filename text [, offset bigintlength bigint])
但是这种方式有一些限制,使它基本无法使用:
限制一:所读取的文件,只能是PG Server端PGDATA目录下的文件
限制二:这个函数需要superuser权限才能调用
 
【方式二】
将二进制临时使用base64转为ascii,然后进行相关的操作。如下演示:
psql读入一个二进制文件为bytea:
 
bytea_io_test的表定义如下:

 SQL |  copy |? 
  1. \d bytea_io_test
  2. Table "public.bytea_io_test"
  3. Column  | Type  | Modifiers
  4. ---------+-------+-----------
  5. content | bytea |

将客户端的一个二进制文件,使用psql插入到表中:

 SQL |  copy |? 
  1. \set c `base64 xx.tgz`
  2. insert into bytea_io_test select decode(:'c','base64');

将表中的一个bytea列,导出为本地一个文件:

 SQL |  copy |? 
  1. \a
  2. \t
  3. select encode(content,'base64') as cc from bytea_io_test
  4. \g | base64 -d > yy.tgz

【bytea格式的文本显示问题】
如果是把一个文本文件存储成为了bytea,用hex看不到文本的内容,而用escape看到的内容会把换行符等转成\xxx这种格式,使用下面的方法,可以将bytea显示成正常的文本格式(这里假定文本编码格式为UTF8,如果是其他编码格式,请替换第二个参数):

 SQL |  copy |? 
  1. convert_from(bytea_colunm,'UTF8')

发表在 未分类 | 留下评论

PostgreSQL默认编辑器sql语法高亮支持

将以下设置加入到.bashrc中:

 Bash |  copy |? 
  1. export PSQL_EDITOR="vim -c 'set syntax=sql'"

之后在psql中,使用\e或者\ef时,会启用sql语法高亮。

发表在 linux, pgsql | 留下评论

freebsd禁止按ctrl+alt+del重启系统

运行时设置:

sysctl hw.syscons.kbd_reboot=0

持久化设置:

将修改添加到/etc/sysctl.conf中

发表在 freebsd | 留下评论

自动生成PostgreSQL的语法帮助信息命令

1.下载PG源代码

2.运行configure

3.进入到src/bin/psql目录下

4.运行make sql_help.c

在当前目录下生成的sql_help.c和sql_help.h即是sql帮助信息。被用在psql \h命令中。

发表在 linux, pgsql | 留下评论

使用xmllint抽取xml内容

$ cat foo.xml
<emplist>
<emp no=”1″>
<ename>John</ename>
</emp>
<emp no=”2″>
<ename>Jack</ename>
</emp>
</emplist>
$ echo ‘cat //emplist/emp[@no="1"]/ename/text()’|
xmllint –shell foo.xml |
sed -n 3p
John

发表在 linux | 留下评论

linux中msdos与vfat的区别

msdos是fat16,已经比较少见,有较多限制

vfat是fat32,windows上比较常用

发表在 linux | 留下评论