Impala实践之九:invalidate metadata详细使用方法说明

作者:JerryXia | 发表于 , 阅读 (35)
前言Impala一直是我们各个业务使用的重点,但是在Impala的使用上感觉一直不是很成熟,比如说 invalidate metadata操作,到底什么时候该使用-r参数,什么时候不使用,什么时候可以用refresh代替,什么时候不可以,这一直是一个问题。因此有了这次的测试。
这次的测试目的就是为了对Impala的元数据方面的使用进行一个彻底的测试,给出一个比较明确答复。在最大的成都上来减缓Impala集群的压力。
测试准备本次测试,分为外表和内表,分别对表和分区进行各种操作,然后记录不同的操作是否需要使用-r或者refresh。
测试主要在三台机器上进行,一台进行各种数据操作,另两台进行数据查询操作。
其中invalidate metadata tablename和refresh tablename随机在各台机器上进行测试。
测试详情下面就是测试详情。比较容易理解,不再解释。

结论测试的结果比较出乎意料,比较简单的一个结论就是,除了对hdfs进行操作外,只要通过impala的命令执行的数据修改,一律不需要进行元数据的同步工作,这就意味着,基本上所有脚本的-r参数都可以...阅读全文

Impala实践之八:脚本中引号问题

作者:JerryXia | 发表于 , 阅读 (24)
结果:
$ bash impala-exec.sh "select distinct dt from tablename" "ip1:21000" "tmp/test.txt"select distinct dt from tablename------tmp/test.txt------ip1:21000Error, could not parse arguments "distinct dt from tablename"Usage: impala_shell.py [options]Options:-h, --help            show this help message and exit-i IMPALAD, --impalad=IMPALAD<host:port> of impalad to connect to[default: hadoop-cluster-8-228:21000]......可以看到,脚本获取到了,但是impala-shell识别不了。
版本二仔细想了一下,应该是impala在解析sql语句时候的语法规范问题,修改一下脚本。
改成如下...阅读全文

Impala实践之七:添加负载均衡

作者:JerryXia | 发表于 , 阅读 (34)
下面是一个实际的配置文件,主机信息已经隐藏。
global# To have these messages end up in /var/log/haproxy.log you will# need to:## 1) configure syslog to accept network log events.  This is done#    by adding the '-r' option to the SYSLOGD_OPTIONS in#    /etc/sysconfig/syslog## 2) configure local2 events to go to the /var/log/haproxy.log#   file. A line like the following can be added to#   /etc/sysconfig/syslog##    local2.*                       /var/log/haproxy.log#log         127.0.0.1 local0log         127.0.0.1 l...阅读全文

Golang之旅1:从0到1

作者:JerryXia | 发表于 , 阅读 (39)
src 存放源代码(比如:.go、 .c 、.h、 .s等)pkg 编译后生成的文件(比如:.a)bin 编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目录)GOPATH下的src目录就是接下来开发程序的主要目录,所有的源码都是放在这个目录下面,那么一般我们的做法就是一个目录一个项目。
表示common_test这个应用包或者可执行应用,这个根据package是main还是其他来决定,main的话就是可执行应用,其他的话就是应用包,这个会在后续详细介绍package。
0x02 第一个程序还是HelloWorld在$GOPATH/src/common_test下新建文件hello.go。
package common_testimport "fmt"func main() {fmt.Println("Hello, world. 你好,世界!")}直接运行使用go run filename.go这个命令,会将编译、链接和运行3个步骤合并为一步,运行完后在当前目录下...阅读全文