当前位置: 首页 > Linux

Centos7安装hive3.1.2

时间:2023-04-07 01:07:11 Linux

hive3.1.2安装1.下载wgethttps://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin。tar.gz2.解压tar-zxvfapache-hive-3.1.2-bin.tar.gz3。重命名mvapache-hive-3.1.2-binhive配置hive1。编辑hive-site.xml#新建一个hive-site.xml文件vim/usr/share/hive/conf/hive-site.xml#添加如下内容(配置MySQL存放元数据的地方)hive.exec.scratchdir/home/hadoop/scratchdirhive.metastore.warehouse.dir/home/hadoop/warehousehive.metastore.uristhrift://hadoop:9083javax.jdo.option.ConnectionDriverNamecom.mysql.cj.jdbc.Driverjavax.jdo.option.ConnectionURLjdbc:mysql://hadoop:3306/hive?createDatabaseIfNotExist=true&useSSL=false<名称>javax.jdo.option.ConnectionUserNamehivejavax.jdo.option.ConnectionPasswordhivemysqlconfiguration为什么要配置MySQL,使用hive时为什么要加mysql?1、下载MySQL的java版驱动,解压,放入hive/lib文件,修改权限wgethttps://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.11.tar.gztar-zxvfmysql-connector-java-8.0.11.tar.gzcdmysql-connector-java-8.0.11chmod777mysql-connector-java-8.0.11.jarcpmysql-connector-java-8.0.11.jar/usr/share/hive/lib/2.mysql创建相应的用户和数据库CREATEUSER'hive'@'%'IDENTIFIEDBY'hive';GRANTALLPRIVILEGESON*.*TO'hive'@'%';从mysql.user中删除user='';flushprivileges;CREATEDATABASEhivecharset=utf8;添加环境变量vim/etc/bashrc#最后添加如下内容exportHIVE_HOME=/usr/share/hiveexportPATH=$PATH:/usr/share/miniconda3/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$HBASE_HOME/bin/hbase#保存退出执行:source/etc/bashrc启动hive1.初始化schemaschematool-dbTypemysql-initSchema2.启动metastore服务hive--servicemetastore&3.进入hive报错解决1.(base)\[root@Centosbin\]#mysqldb-schematool-initSchemaSLF4J:类路径包含多个SLF4J绑定。SLF4J:在\[jar:file:/usr/share/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder中找到绑定.class\]SLF4J:在\[jar:file:/usr/share/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class中找到绑定\]SLF4J:参见http://www.slf4j.org/codes.html#multiple_bindings的解释java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)Vatorg.apache.hadoop.conf.Configuration.set(Configuration.java:1357)在org.apache.hadoop.conf.Configuration.set(配置.java:1338)在org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:536)在org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:554)在org.apache.hadoop。mapred.JobConf.(JobConf.java:448)在org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)在org.apache.hadoop.hive.conf.HiveConf.(HiveConf.java:5104)在org.apache.hive.beeline.HiveSchemaTool.(HiveSchemaTool.java:96)在org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1473)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)在java.lang.reflect.Method.invoke(Method.java:498)atorg.apache.hadoop.util.RunJar.run(RunJar.java:323)atorg.apache.hadoop.util.RunJar.main(RunJar.java:236)1.1SLF4J报错,是因为hadoop的slf4j和hive的slf4jjar包有冲突。只需删除其中一个。rm-rf/usr/share/hive/lib/slf4j-log4j12-1.7.25.jar1.2NoSuchMethodError是因为hive依赖的guava。jar和hadoop版本不一致造成的。比较哪个版本低,就把低版本换掉(我的是hadoop高一点)。cd/usr/share/hadoop/share/hadoop/common/lib/cpguava-27.0-jre.jar/usr/share/hive/lib/rm/usr/share/hive/lib/低版本guava.jar2/usr/share/hadoop/libexec/hadoop-functions.sh:第2366行:HADOOP_ORG.APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_USER:错误替换/usr/share/hadoop/libexec/hadoop-functions.sh:第2461行:HADOOP_ORG。APACHE.HADOOP.HBASE.UTIL.GETJAVAPROPERTY_OPTS:错误替换hbase版本太高,可以换低版本(我替换的是hbase1.6版本,没有这个报错),也可以忽略