分享

hive 2.0.0遇到问题总结汇总

langke93 发表于 2016-5-17 15:17:33 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 1 10936


hadoop-2.7.2+hive 2.0.0采用LZO压缩遇到问题总结


一、SSH免密码登录

这个本来比较烦人的,步骤简单,但是机器一多久让人发毛了,毕竟没有自动化啊!后来就想了个办法,在各机器上都执行:ssh-keygen -t rsa,再把各机器上生成的id_rsa.pub文件都下载下来,在windows的文本编辑器下完成合并,在把合并后的文件又上传到各Hadoop节点上,作为authorized_keys,授予644权限。
话说为了避免ssh 的第一次的时候,那种恼人的步骤出现,也可以将各节点的known_hosts 文件也用同上办法来搞定。
话说,这种做法绝对是省时间、降血压的大招。


二、LZO和LZOP的安装

现在网上的各种Hadoop安装教程,基本都是类似下面这样的千人一面了。

安装LZO
wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.06.tar.gz
tar -zxvf lzo-2.06.tar.gz
./configure -enable-shared -prefix=/usr/local/hadoop/lzo/
make && make test && make install

安装LZOP
wget http://www.lzop.org/download/lzop-1.03.tar.gz
tar -zxvf lzop-1.03.tar.gz
./configure -enable-shared -prefix=/usr/local/hadoop/lzop
make  && make install
烦不烦啊,各种Linux版本不是都有自己的package管理工具,比如centos 下的yum,为毛还要自己去找源代码,自己去编译呢?直接yum install lzo lzop -y 不就什么都搞定了吗!!!!


三、Hadoop用LZO压缩

LZO这东西,和bzip2等还真不一样,没法知道靠谱不靠谱,也说不定Linux下直接执行命令,可以压缩和解压缩,但是就在Hadoop中不工作。
话说,肯定要保证在Linux上直接可以用lzop来压缩与解压缩才行,这个是基础。当然这个不全对,至于为什么不对,先就不说了!
直接把hive-2.0.0套上后,建表,加载数据等,再就是直接select count(*) from xxx,能有个数字结果的话,好歹hadoop上的LZO是支持了。


四、hive-2.0.0变天了

我就是栽倒在这里了。一句话,hive-2.0.0没法应用到LZO文件的分片,无论多大的文件,都还是当成一个再来该干嘛干嘛!话说,hadoop-lzo.jar根本就没有被用到,当然没有这个,提交JOB的时候就会错了,但是真的等到JOB+TASK都跑的时候,LZO文件就不分片了。
hive-2.0.0相比之前的版本已经大变样 了!


五、hadoop的压缩

本次就是比较了一下bzip2 、LZO两种。
LZO真的压缩和解压缩好快好快,毛病就是压缩后的文件还是很大,以nginx的access.log来计算的话,压缩率介于1/3 ~1/2之间吧,一个12G的文件,压缩后为5G上线,时间在20秒上下。
bzip2的好处就是压缩率高,12G的文件,LZO后5G,bzip2后2G,不过别看它压缩率高,也支持分片,但是时间上会让发狂的。12G的nginx的访问日志文件,压缩一把要25分钟左右,解压缩要1.5分钟左右,和LZO没有比较余地了。
可以考虑把半年以前的数据都bzip2来压缩,毕竟这个用的少,压缩率也高,就算少量的用也能应付,不就是时间长点而已。LZO就存那种计算多,数据新的业务了。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

第二个问题补充:(来自about云群)

问题如图:
20160301181556477.png
文字版本:

Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed, don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)

解决方案:
初始化MySQL库(ROOT用户)
schematool -initSchema -dbType mysql




欢迎加入about云群425860289432264021 ,云计算爱好者群,关注about云腾讯认证空间

已有(1)人评论

跳转到指定楼层
hahaxixi 发表于 2016-5-17 22:04:26
有点没看懂你要干什么??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条