schematool 初始化hive和hive启动经常出的问题

问题1:Call From localhost/127.0.0.1 to localhost:9000 failed on connection exception: java.net.ConnectException。

没有start dfs 和 yarn造成的问题,启动一下 start-dfs.sh,start-yarn.sh

问题2:schema初始化碰到如下问题,是mysql安装的有问题,需要卸载重装。

Error: Syntax error:Encountered "<EOF>" at line 1, column 64.(state=42X01,code=30000)

卸载mysql:sudo apt-get remove mysql-*

重装mysql:sudo apt-get install mysql-client mysql-server

在/usr/share/java/目录下找到mysql.jar添加到CLASSPATH中去

问题3:在使用schematool初始化hive或者启动hive中报错:org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver,找不到驱动。

我是ubuntu16.04版本,连接mysql数据库,以此为例。

1)官网下载mysql-connector-java的jar包,https://dev.mysql.com/downloads/connector/j/2)下载的是deb包,是ubuntu的一种压缩软件包,对它进行解压

sudo dpkg -i mysql-connector-java_8.0.13-1ubuntu16.04_all.deb

另外补充一下,linux还有一种压缩格式rpm,是Redhat的压缩包,rpm不适用于ubuntu,在ubuntu中解压rpm压缩包,需要先安装一个转换工具,sudo apt-get install alien,然后通过alien将rpm包转换为deb包,sudo alien xxx.rpm,会生成一个同名的deb包文件,再对deb包进行解压。注意,用alien转换的deb包并不能保证100%顺利安装,所以可以找到deb最好直接用deb。

3)安装好之后到/usr/share/java下可以找到相应的mysql-connector-java_8.0.13.jar,然后将其目录添加到CLASSPATH中。

4)将该jar包复制到$HIVE_HOME/lib目录下,cp mysql-connector-java_8.0.13.jar $HIVE_HOME/lib。

5)对hive下conf目录下的hive-default.xml.template模板和hive-env.sh.template模板复制出hive-site.xml和hive-env.sh两个文件,然后对hive-site.xml文件进行修改四个地方,这一步骤应该在hive环境配置中会改,环境变量配置啥的就不说了。

这个文件中内容很多,通过vi命令很麻烦,如果在虚拟机里直接打开文件进行修改会提示是只读文件,没有修改权限(系统账户貌似是禁止root登录),这个文件所有者是root,只有root有读写权限,其他都是只读,因此可以通过命令行切换到root,通过chmod命令修改其他人对文件的权限。

chmod o+w filename 表示给其他人加写的权限,如果设置失败,看一下是不是文件被锁住了,chmod底层是chattr,类似于锁的作用,chattr -i filename 让只读文件可编辑,chattr +i filename 让文件只读(root也只能做到只读),如果文件被锁,可以尝试一下先解锁,然后再尝试一次。chmod命令详见https://www.cnblogs.com/starof/p/4350212.html

这个时候,其他人就可以对文件进行写操作了,可以通过ls -l filename 查看权限设置的结果,然后就可以在系统中直接编辑文件了,更方便一些,通过ctrl+F搜索到改动的地方,依次进行修改。

ls -l filename 怎么看结果可以参考链接https://blog.csdn.net/xingfei_work/article/details/77869693

**修改的四个地方如下,图片截图来自https://blog.csdn.net/hr786250678/article/details/81032018,介绍hive连接mysql的配置。

最后这个是自己mysql设置的root用户的密码,根据自己的设置进行修改。

这几步骤下来,驱动的问题应该就解决了。

问题4:${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D

需要修改hive-site.xml两处内容,借鉴问题3中的方法,直接对文件进行查找修改,

通过查找黄框中的name,修改value对应的内容,value原来是个变量地址,现在改为如下绝对地址。

问题5:hive启动后,输入查询命令,出现异常错误:Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
OK

需要把驱动更新一下,在hive-site.xml中将之前的com.mysql.jdbc.Driver改为com.mysql.cj.jdbc.Driver。

此时对hive重新初始化会报错:Error: Duplicate key name 'PCS_STATS_IDX' (state=42000,code=1061)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!
Underlying cause: java.io.IOException : Schema script failed, errorcode 2

查看$HIVE_HOME/bin目录下将之前初始化生成的metastore_db文件夹给删除,

登录到mysql中,查看当前数据库,看是否已存在一个hive,将hive数据库删除,

再重新初始化就可以了。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值