文章目录
前期准备
上传hive包(已上传资源包)
解压到/opt/module/下
tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /opt/module/
修改解压后的名字
mv apache-hive-3.1.2-bin/ hive
配置
进入到/opt/module/hive/conf
cd /opt/module/hive/conf
修改标注的文件名
mv hive-env.sh.template hive-env.sh
vi hive-env.sh
添加以下这两个配置(Hadoop路径和hive路径,自己灵活改动)
配置好启动HDFS
start-dfs.sh
先查看HDFS文件系统现有目录
hadoop fs -lsr /
在HDFS上创建/tmp和/user/hive/warehouse两个目录并修改他们的同组权限可写
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -mkdir /tmp
修改权限
hadoop fs -chmod 777 /user/hive/warehouse
hadoop fs -chmod 777 /tmp
启动hive
cd /opt/module/hive
bin/hive
启动不成功,这里有个坑,下面是问题描述和解决办法
在Hadoop3.2.2中安装hive3.1.2时,会出现版本不兼容的情况,报错如下:
Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1380)
…
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
原因:
hadoop和hive的两个guava.jar版本不一致
两个位置分别位于下面两个目录:
- /opt/module/hive/lib
- /opt/module/hadoop-3.2.2/share/hadoop/common/lib
解决办法:
删除低版本的那个,将高版本的复制到低版本目录下
这种情况是Hadoop3.2.2中的guava-27.0-jre.jar版本高于Hive中的19.0版本了,只需删除hive中的19.0版本的guava.jar,让后吧Hadoop中guaca-27.0-jre.jar复制过来即可。
cp guava-27.0-jre.jar /opt/module/hive/lib/
使用过程,还有一个坑,下面是问题描述和解决办法
show databases;
执行以上命令发现出错了
下面解决:
cd /opt/module/hive
rm -rf metastore_db
bin/schematool -initSche