ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hadoop_Hive远程模式部署/在其他节点上使用hive客户端

2021-08-26 15:01:54  阅读:544  来源: 互联网

标签:bin lib Hadoop Hive site metastore hive mysql


目录

安装mysql

远程模式部署安装mysql部分与上文Hadoop_Hive本地模式部署几乎没有区别,请诸佬参考上文的安装mysql部分根据自身情况进行操作

配置hive

配置hive部分与Hadoop_Hive本地模式部署有些许区别,本蒟蒻就复制重写一遍吧(本篇只涉及hive客户端

上传并解压安装包

//本蒟蒻安装包为apache-hive-3.1.2-bin.tar.gz

来到安装包目录

解压:tar zxvf apache-hive-3.1.2-bin.tar.gz

并将其改名(可有可无,方便后续操作

mv apache-hive-3.1.2-bin /opt/module/hive-3.1.2

解决hive与hadoop之间的guava版本差异

将hive lib文件夹中的guava文件删除

在hive根目录中执行rm -rf lib/guava-19.0.jar

再将hadoop中的guava文件复制过来:cp hadoop根目录/share/hadoop/common/lib/guava-27.0-jre.jar hive根目录/lib/

添加mysql jdbc驱动到hive lib目录下

本蒟蒻使用的是 mysql-connector-java-5.1.32.jar

将其移动到hive的lib文件夹中即可

修改hive环境变量文件

将hive根目录中conf文件夹下的hive-env.sh.template改名为hive-env.sh(直接创建一个hive-env.sh也可以

再对其进行添加

加入以下环境变量路径:

export HADOOP_HOME=/opt/module/hadoop-3.1.3
export HIVE_CONF_DIR=/opt/module/hive-3.1.2/conf
export HIVE_AUX_JARS_PATH=/opt/module/hive-3.1.2/lib

(以上均为本蒟蒻的路径,诸位佬佬根据实际情况更改

新增hive-site

在hive的conf目录下新建一个hive-site.xml

vim hive-site.xml

将以下配置信息添加到hive-site.xml

<configuration>
    <!-- 存储元数据mysql相关配置 -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value> jdbc:mysql://hadoop102:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>
 
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
 
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
 
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hadoop</value>
    </property>
 
    <!-- H2S运行绑定host -->
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>hadoop102</value>
    </property>
 
    <!-- 远程模式部署metastore 服务地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop102:9083</value>
    </property>
 
    <!-- 关闭元数据存储授权  -->
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
 
    <!-- 关闭元数据存储版本的验证 -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
</configuration>

运行metastore服务的几种方式

使用hive的bin目录中的hive命令:bin/hive --service metastore启动metastore,结束可以使用Ctrl + C

此命令执行后窗口就会被占用,metabase一直处于服务状态,这样就需要我们来新建一个连接来对服务器进行操作,原来那个就只能在这凉着了(不是不可以,就只是比较麻烦,也不太易于操作,根据喜好确定启动方式

有种更简便的方法,可以使metastore服务在后台运行

执行命令:nohup /export/server/hive/bin/hive --service metastore &

这样服务就在后台进行了,可以使用jps命令来对服务进行查看
image

如上图3012 RunJar就是metastore服务,可通过命令 kill -9 任务编号来结束metabase服务或其他进程

前台启动并开启debug日志模式
命令:bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console,此模式有更详细的日志,方便后续调试程序

在其他节点上使用hive客户端

上文只介绍了如何在hadoop102节点(我的第一个节点)中运行hive

接下来本蒟蒻想要在hadoop103上访问hadoop102的数据仓库,如何对敌?

诸佬一定都想到了,hadoop103也需要安装hive

所以我们再把安装hive的步骤在hadoop103上走一遍

  1. 上传并解压安装包
  2. 解决hive与hadoop之间的guava版本差异
  3. 修改hive环境变量文件
  4. 新增hive-site.xml

与本文开篇不同的是在hadoop103上不用添加mysql jdbc驱动到hive lib目录下了,因为我们不需要访问hadoop103上的数据库

其次就是hive-site.xml中可以只存放metastore相关设置(因为我们要访问hadoop102中的metastore服务

于是在hive-site.xml中只需要填写下文

<configuration>
    <!-- 远程模式部署metastore 服务地址 -->
    <property>
        <name>hive.metastore.uris</name>
        <!-- 本蒟蒻的matastore是在hadoop102上运行的 -->
        <value>thrift://hadoop102:9083</value>
    </property>
</configuration>

:wq

设置好后

运行hive:bin/hive

image

运行成功,再尝试show databases;命令

image

就可以看到hadoop102中mysql的数据库了

标签:bin,lib,Hadoop,Hive,site,metastore,hive,mysql
来源: https://www.cnblogs.com/cookiecheetah/p/15189583.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有