一、概述

    

    这里简单说明一下,Hive是建立在Hadoop上的,通过HiveQL来实现对Hadoop下的数据管理。Hive属于数据仓库的范畴,适合用来对一段时间内的数据进行分析查询,例如,用来计算趋势或者网站的日志。Hive不应该用来进行实时的查询。因为它需要很长时间才可以返回结果。


软件版本信息:

    Hadoop3.1.1

    JDK1.8

    HIVE3.1.0


二、安装步骤


1.可从官网下载Hive各个版本的安装包和源码包,我这里下载的是apache-hive-3.1.0-bin.tar.gz,下载地址:                                           http://archive.apache.org/dist/hive/


2.把apache-hive-1.2.1-bin.tar.gz上传到linux的/data/目录下,并进行解压,命令如下:

[root@worker2 data]# tar -zxvf apache-hive-3.1.0-bin.tar.gz[root@worker2 data]# mv apache-hive-3.1.0-bin  hive-3.1.0


3.修改conf目录下配置文件


    1).hive-env.sh文件

[root@worker2 conf]# cp hive-env.sh.template hive-env.sh[root@worker2 conf]# vi hive-env.sh


    在hive-env.sh文件添加如下内容:

 #JDK export JAVA_HOME= /opt/jdk1.8.0_112 #指定hadoop目录 export HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoop #指定conf配置路径 export HIVE_CONF_DIR=/data/hive-3.1.0/conf #指定依赖的lib export HIVE_AUX_JARS_PATH=/data/hive-3.1.0/lib

   

    2).hive 的日志默认在/tmp/${user}/hive.log目录下(user用户名下),修改hive的log存放日志到/data/hive-3.1.0/logs,执行命令:

   mv hive-log4j2.properties.template  hive-log4j2.properties

    修改hive-log4j2.properties如下内容:

 property.hive.log.dir=/data/hive-3.1.0/logs

    3).hive-site.xml文件,主要是配置hive元数据库连接信息、数据在hdfs存储目录信息等;

[root@worker2 conf]# mv hive-default.xml.template  hive-site.xml[root@worker2 conf]# vi   hive-site.xml

    在hive-site.xml文件添加如下内容:

<configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master.hadoop.ljs:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</value> </property> <property>       <name>hive.metastore.schema.verification</name>       <value>false</value>   </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property>  <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property>  <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456a?</value> </property> <property>     <name>datanucleus.schema.autoCreateAll</name>     <value>true</value>  </property>     <property>     <name>hive.metastore.warehouse.dir</name>     <value>/user/hive/warehouse</value>  </property>  <property>     <name>hive.server2.webui.host</name>     <value>192.168.0.103</value>  </property>  <property>     <name>hive.server2.webui.port</name>     <value>10002</value>  </property> </configuration>


4.配置完成后,初始化mysql元数据库,初始化之前,需要把对应版本的mysql驱动包放到hive/lib目录下:

[root@worker2 lib]# pwd/data/hive-3.1.0/lib[root@worker2 lib]# ll *mysql-connector*-rwxrwxrwx 1 root root 1004838 3月  21 22:13 mysql-connector-java-5.1.46.jar

    使用schemaTool初始化mysql数据库

schematool -dbType mysql -initSchema

5.配置环境变量,在/etc/profile中添加如下内容:

export HADOOP_HOME=/usr/hdp/3.1.4.0-315/hadoopexport HIVE_HOME=/data/hive-3.1.0export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bi

    使配置生效:

source /etc/profile

6.启动Hive

#run  metastorehive --service metastore &#run hiveserver2hive --service hiveserver2  --hiveconf hive.root.logger=INFO,console &


报错信息处理:


1.报错信息:

 

    这里hive的guava包与hadoop中的guava版本不一致,直接从hadoop/lib下拷贝对应的guava包,覆盖掉hive/lib下的即可。

[root@worker2 lib]# ll *guava*-rw-r--r-- 1 root root 2308517 7月  10 2018 guava-19.0.jar-rw-r--r-- 1 root root  971309 7月  10 2018 jersey-guava-2.25.1.jar[root@worker2 lib]# cp /usrp/3.1.4.0-315/hadoop/lib/guava-28.0-jre.jar  ./[root@worker2 lib]# rm -rf  guava-19.0.jar[root@worker2 lib]# ll *guava*-rw-r--r-- 1 root root 2746681 3月  21 22:17 guava-28.0-jre.jar-rw-r--r-- 1 root root  971309 7月  10 2018 jersey-guava-2.25.1.jar


2.报错信息:

    

    这里需要在hdfs的配置文件core-site.xml中加上代理用户,添加配置如下:

    <property>      <name>hadoop.proxyuser.hive.groups</name>      <value>*</value>    </property>
   <property>      <name>hadoop.proxyuser.hive.hosts</name>      <value>*</value>    </property>


©著作权归作者所有:来自51CTO博客作者mb5ff98083d7c62的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 使用Operator部署Prometheus
  2. Prometheus配置企业微信告警
  3. 你的个人信息,只值5毛!
  4. MPLS系列之二:MPLS *** 静态路由、RIP、EIGRP【包括配置 分析控制
  5. 华为交换机配置基于IP地址划分VLAN
  6. 华为防火墙双机热备(VRRP)的配置实例
  7. 谈谈运维标准化
  8. 华为路由交换技术:VRRP-虚拟网关冗余协议配置
  9. 华为配置基于MAC地址划分VLAN

随机推荐

  1. Golang怎么执行cmd命令行
  2. 关于 Go 并发编程之 Mutex
  3. 当Golang遇到高并发秒杀~
  4. 在Go中使用正则表达式
  5. 详解Golang中函数作为值与类型
  6. 什么是CanSet, CanAddr?
  7. 总结 Go 的数据类型
  8. golang如何生成JSON及解析JSON
  9. 在使用database/sql时应避免掉进这11个坑
  10. 关于Go指针的介绍