使用过hive的都知道,可以通过指定-i参数或者配置.hiverc来设置hive启动时初始执行的一些命令,比如可以把udf的定义写到.hiverc文件中。加载.hiverc的过程是在CliDriver类中定义的。具体的方法调用顺序:main--->run--->executeDriver----->processInitFiles---->p..
分类:
其他好文 时间:
2014-08-20 10:38:26
阅读次数:
295
CliDriver类是hive的入口类。首先CliDriver类会通过OptionsProcessor类来parse输入的命令。比如解析-e,-s,-h等参数,然后把对应的值存放到对应的CliSessionState类的属性中,最后应用于CliDriver类中。比如在executeDriver方法中,根据CliSessionState的属性对命令进行处理CliD..
分类:
其他好文 时间:
2014-08-20 02:45:56
阅读次数:
210
转自:http://blog.csdn.net/ls3648098/article/details/9630357Hive只支持在FROM子句中使用子查询,子查询必须有名字,并且列必须唯一:SELECT ... FROM(subquery) name ...确认下是否一定要求列必须唯一? 建表语句:...
分类:
其他好文 时间:
2014-08-19 20:37:05
阅读次数:
196
Hive中有种假NULL,它看起来和NULL一摸一样,但是实际却不是NULL。例如如下这个查询:hive> desc ljn004;OKastringTime taken: 0.237 secondshive> select a from ljn004;OKNULLTime taken: 46.23...
分类:
数据库 时间:
2014-08-19 20:28:45
阅读次数:
306
hive mapreduce 都会转成java。所以要用的java分析工具。当看到map或reduce 阶段运行缓慢,我们去线上找到mapreduce的进程:
1. top 发现进程:
2. top -Hp 32486 找到进程中cpu或mem磁盘消耗最高的线程:
3. 用jstack主要用来查看某个Java进程内的线程堆栈信息:
bin/jstack -F 26510
...
分类:
其他好文 时间:
2014-08-19 19:14:35
阅读次数:
291
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
未启动hive元...
分类:
数据库 时间:
2014-08-19 19:06:55
阅读次数:
281
如果分区是可以确定的话,千万不要用动态分区,动态分区的值是在reduce运行阶段确定的.也就是会把所有的记录distribute by。 可想而知表记录非常大的话,只有一个reduce 去处理,那简直是疯狂的。如果这个值唯一或者事先已经知道,比如按天分区(i_date=20140819) 那就用静态分区吧。静态分区在编译阶段已经确定,不需要reduce处理。 例如以下两个insert
表分区:...
分类:
其他好文 时间:
2014-08-19 16:30:24
阅读次数:
443
今天在CDH上执行hivesql的时候报了一个错。错误内容为:FAILED:ExecutionError,returncode1fromorg.apache.hadoop.hive.ql.exec.MoveTask错误语句:INSERTOVERWRITEDIRECTORY‘{$dir}‘select*fromtmp_analyse_oswherelogdata=‘{$begin}‘;错误原因:hive源码会检查导出的路径是否..
分类:
其他好文 时间:
2014-08-18 18:53:13
阅读次数:
260
首先检查系统安装的mysql版本,使用命令 rpm -qa | grep mysql若要安装自己的版本,则先执行删除操作 rpm -e xxxxx.rpm --nodeps然后安装自己的版本, rpm -i xxxxx.rpm 远程连接mysql,操作步骤如下:1、进入mysql环境中 mysql ...
分类:
数据库 时间:
2014-08-18 01:26:53
阅读次数:
276