问题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 "
卸载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数据库删除,
再重新初始化就可以了。