hive安装配置

时间:2020-03-31 14:40:08   收藏:0   阅读:64

安装hive的前提是先安装hadoop集群,并且hive只需要在hadoop的namenode节点中安装即可,可以不在datanode节点的机器上安装,启动hive的前提是需要hadoop在正常跑着

一. 先安装MySQL

1.检查卸载mariadb-lib(Centos自带mariadb数据库)

2.安装MySQL

3.初始化并启动

二.安装配置Hive

下载hive:https://downloads.apache.org/hive/

hadoop2.9.2 + hive-2.3.6

Hive的运行模式
依据Hive的安装和metastore的设置机器,分为下面三个模式:
嵌入模式:使用自带的derby数据库
本地模式:将metastore放在mysql,并且mysql和hive安装在同一台机器上
远程模式:将metastore放在mysql,并且mysql和hive安装在不同一台机器上

1.解压安装

2.文件配置

  1. 配置环境变量(略):sudo vim /etc/profile
  2. hive-env.sh文件(conf目录下),拷贝样例 cp hive-env.sh.template hive-env.sh vim hive-env.sh
# 配置 HADOOP_HOME 路径
export HADOOP_HOME=/soft/module/hadoop-2.9.2
# 配置 HIVE_CONF_DIR 路径
export HIVE_CONF_DIR=/soft/module/hive/conf

export HIVE_AUX_JARS_PATH=/soft/module/hive/lib

3.Hadoop集群配置

  1. 必须启动hdfs和yarn
    sbin/start-dfs.sh sbin/start-yarn.sh
  2. 创建目录
    因为在hive-site.xml中有这样的配置:
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<name>hive.exec.scratchdir</name>
<value>/tmp/hive</value>

所以要在集群上新建目录

4.Hive 元数据配置到 MySql

  1. 驱动拷贝
    拷贝 mysql-connector-java-5.1.48.jar 到/soft/module/hive/lib/
    cp mysql-connector-java-5.1.48.jar /soft/module/hive/lib/
  2. 配置 Metastore 到 MySql
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!--将该name对应的value修改为MySQL的地址-->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop100:3306/metastore?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</value>
        <description>JDBC connect string for a JDBC metastore</description>
    </property>
    <!--将该name对应的value修改为MySQL驱动类路径:-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <description>Driver class name for a JDBC metastore</description>
    </property>
    <!--将对应的value修改为MySQL数据库登录名-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>username to use against metastore database</description>
    </property>
    <!--将对应的value修改为MySQL数据库的登录密码-->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456789</value>
        <description>password to use against metastore database</description>
    </property>
</configuration>

2.1 第三步和第四步不做行吗??? 或者加上下面的???(我自己没做3,4步就好使)

<property>
   <name>system:java.io.tmpdir</name>
   <value>/soft/module/hive/tmpdir</value>
</property>
 
<property>
     <name>system:user.name</name>
     <value>root</value>
</property>
  1. 修改hive-site.xml中的临时目录
    将hive-site.xml文件中的${system:java.io.tmpdir}替换为hive的临时目录,例如我替换为/soft/module/hive/tmp/,该目录如果不存在则要自己手工创建,并且赋予读写权限。
  2. 将配置文件中${system:user.name}都替换为root
  3. 配置完毕后,如果启动 hive 异常,可以重新启动虚拟机。(重启后,别忘了启
    动 hadoop 集群)

5.启动和测试

https://www.jianshu.com/p/7b1b21bf05c2

1、关闭防火墙
2、开启 mysql外链权限
3、jar包冲突,删除hive下
4、配置hive-site.xml


  1. 关闭
    可以通过ps -ef|grep hive 来看hive 的端口号,然后kill 掉相关的进程。
  2. 启动
    命令
    hive --service metastore &
    hive --service hiveserver2 &
    nohup hive --service metastore 2>&1 &
    用来启动metastore
    nohup hive --service hiveserver2 2>&1 &
    用来启动hiveserver2
    可以通过查看日志,来确认是否正常启动。
    注意!如果 hiveserver2 不启动,jdbc将无法正常连接

6.Hive基本操作


三. java API环境准备

1. centos7启动服务

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

分发文件

2. eclipse配置

-jar包配置
- 挑选必须的jar包,编辑成自己的lib配置到工程中(推荐)
其实所有jar包都在${HIVE_HOME}/lib目录下,这里列示下需要的jar包名:
${HADOOP_HOME}/share/hadoop/common/hadoop-common-2.2.0.jar(mr工程中已存在,无需再次添加,如果新建项目需配置
$ { HIVE_HOME } /lib/hive-exec-0.11.0.jar
$ { HIVE_HOME } /lib/hive-jdbc-0.11.0.jar
$ { HIVE_HOME } /lib/hive-metastore-0.11.0.jar
$ { HIVE_HOME } /lib/hive-service-0.11.0.jar
$ { HIVE_HOME } /lib/libfb303-0.9.0.jar
$ { HIVE_HOME } /lib/commons-logging-1.0.4.jar (此jar包已经存在就不要再次添加)
$ { HIVE_HOME } /lib/slf4j-api-1.6.1.jar(此jar包已经存在就不要再次添加)
- 导入jar包
- 修改pom.xml配置文件(不推荐,会下载额外很多无用包,而且时间很长在1小时左右)

<dependency>
    <groupId>org.apache.hive</groupId>
    <artifactId>hive-jdbc</artifactId>
    <version>2.3.6</version>
</dependency>

附:一个错误

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

附:错误

Thu Mar 19 19:17:33 CST 2020 WARN: Establishing SSL connection without server‘s identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn‘t set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to ‘false‘. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

<value>jdbc:mysql://hadoop100:3306/metastore?createDatabaseIfNotExist=true&amp;useSSL=false</value> 平时的&在xml里为&amp;


原文:https://www.cnblogs.com/Hephaestus/p/12531634.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!