hive 启动配置

mac 通过homebrew安装;安装后目录在/usr/local/Cellar

启动hive需要县启动hadoop,然后hive元数据表也需要初始化;没有关联mysql可以初始化hive自带的Derby

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/

1、启动hadoop

 cd /usr/local/Cellar/hadoop/3.2.1_1/sbin

# 重新格式化 namenode(测试虚拟环境,生产环境严禁执行此操作)
[root@flink sbin]# hadoop namenode -format
# 启动 hdfs
[root@flink sbin]# ./start-all.sh 


访问 hadoop hdf  http://localhost:9870/   #3.0版本以上

2 启动hive

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 derby

hive 启动配置_第1张图片

hive

show tables;

你可能感兴趣的:(数据挖掘)