a、启动hive报错:java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(…)
查看该jar包在hadoop和hive里的版本信息: hadoop路径:/usr/local/Cellar/hadoop/3.2.1_1/libexec/share/hadoop/common/lib 包名为:guava-27.0-jre.jar(不同版本的hadoop此包版本也不同) hive路径:/usr/local/Cellar/hive/3.1.2/libexec/lib 包名为:guava-14.0.1-jar(不同版本的hive此包版本也不同) 不同版本的hadoop或hive里面的guava包版本都不同,重点是hadoop里的包比hive里的版本高。 解决问题: 删除hive中低版本的guava包,把hadoop里的复制到hive的lib目录下即可 cp guava-27.0-jre.jar /usr/local/Cellar/hive/3.1.2/libexec/lib/FAILED: HiveException java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.me
参考:https://blog.csdn.net/hl17200178/article/details/97259094
因为derby数据库只能允许一个用户登录,hive重启都需要这样操作。;hive启动在哪个目录地址下metastore_db就产生在哪个地址下
原因是用的是hive自带的内存数据库derby,应该先初始化,进入hive目录,里面有一个metestore文件夹(是之前启动hive的derby时自动生成的,这里需要将metastore_db 目录重命名为 metastore_db.tmp,然后再初始化 /usr/local/Cellar/hive/3.1.2/bin 目录下 mv metastore_db metastore_db.tmp bin目录下进行初始化 (base) lonng@localhost bin % schematool -initSchema -dbType derbyhive
show tables;
