【大数据】Hive作者肯定进修过蓝翔挖掘机

正经标题应该是:解决hive初始化mysql数据库错误的一种方式

Hive安装包下载地址:

https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

事情原因是这样的,我按照书上的步骤一步一步走,到了该用hive初始化MySQL数据库这一步了,满怀期待的敲上命令:

cd ~/hive/bin

./schematool -initSchema -dbType mysql

结果报错了,什么什么<EOF>,整的我是一脸茫然。然后就是百度各种CSDN,博客园的帖子,都没说到点上,所以我才写下这篇文章,以示众人。

Error: Syntax error: Encountered "<EOF>" at line 1, column 64. (state=42X01,code=30000)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2
Use --verbose for detailed stacktrace.
*** schemaTool failed ***

我在尝试./schematool -initSchema -dbType mysql 失败后,查到了hive默认的数据库是derby,所以我就修改了一下命令为./schematool -initSchema -dbType derby  ,气人的是竟然初始化成功了。

可我明明已经在hive-site.xml中配置为mysql数据库了呀,怎么hive还是用的derby?于是我打开了hive-default.xml.template文件看了一下,如下图所示:

我就是按他的警告来的呀,就是自己创建了一个hive-site.xml来的呀,怎么就初始化数据库的时候出错了呢?

于是我在default文件里面搜索了一下,注意,接下来要讲一个知识点,拿出来你的小本本记一下:

使用vi进行字符串查找的步骤:

  1. 按ESC键进入命令模式  
  2. 使用一个斜杠 / 作为前导,后面紧跟要查找的字符串  
  3. 按回车键  
  4. 按大写N往上查找,按小写n往下查找

比如我要在vi中查找connectionURL这个词

按下回车后发现下图所示,直觉告诉我这深红的颜色代表错误。

翻译一下,果然是找不到connectionURL,我才第一次使用这个命令,就找不到目标,我都开始怀疑这个斜杠后面加字符串是否能够用来查找了,然后我随便试了试斜杠后面加一个字母a,发现确实是能找到a的,说明这个命令没有错。

我开始猜测,是不是老师写错了什么?按部分查找试试吧,URL是个专有名词,这个应该不会变,所以我

  1. 按了一下ESC键
  2. 输入  /URL
  3. 按下回车

结果是找到了,我发现了下图所示:

一看到人家官方文档里面的C是大写的我立刻就明白了,我们大数据书的作者应该也在蓝翔进修过挖掘机技术。书上明明是小写c,为了证实我的说法,我还特意拍了一张照片:

接着我把hive-site.xml里面所有的connection都改成了大写的Connection,然后再进行mysql数据库初始化,这次成功了!

 

先吐槽一下hive作者,如果你自己把<name>里面的内容写好,<value>里面的东西我们自己写,那样多好。非要整个什么default文件,然后让我们自己创建hive-site.xml文件。

再吐槽一下我学的教科书《大数据技术基础实验教程》,大数据学到这里算是学了一半了我总共找出来教科书上19处错误,注意,教科书啊。这哪里是大数据教科书,简直就是《挖掘机技术基础实验教程》,到处是坑!

不过我静下心来思考,其实这样也挺好,理解的会更深刻。(跳坑跳久了就习惯了!!)

参考文章
--------------------- 
作者:firePlumes10 
原文:https://blog.csdn.net/yuyanhsf/article/details/81000522 

.


看完如果觉得不错,留个赞再走。


.

猜你喜欢

转载自blog.csdn.net/midnight_time/article/details/83858946