当前位置: 首页 > article >正文

Hive安装与配置

你需要掌握:
1.Hive的基本安装; 2.Mysql的安装与设置; 3.Hive 的配置。

注意:Hive的安装与配置建立在Hadoop已安装配置好的情况下。

hadopp安装与配置

Hive 的基本安装

从  官网  下载Hive二进制包,下载好放在/opt目录下。

  • 进入/opt目录,解压apache-hive-3.1.0-bin.tar.gz到该目录下,并将解压的文件重命名为hive
  1. cd /opt
    tar -zxvf apache-hive-3.1.0-bin.tar.gz
    mv apache-hive-3.1.0-bin hive
  • 设置环境变量,编辑vi /etc/profile,在末尾添加以下两行代码;
  1. export HIVE_HOME=/opt/hive
    export PATH=$HIVE_HOME/bin:$PATH
  • source /etc/profile
    使环境生效;
  • 查看hive是否安装成功:hive --version

出现hive版本就说明安装成功,但是可以看到其中有一些警告信息,是由于包的冲突引起的。我们只需删除掉引起冲突的包即可:rm /opt/hive/lib/log4j-slf4j-impl-2.10.0.jar

Mysql 的安装与设置

已安装MySQL数据库,在本地没有安装可以采用以下命令进行安装:

  1. sudo apt-get install mysql-server #安装mysql服务
    apt-get install mysql-client #安装mysql客户端
    sudo apt-get install libmysqlclient-dev #安装相关依赖环境

注意:安装过程中会提示设置密码什么的,不要忘了设置。

安装完成之后可以使用如下命令来检查是否安装成功。

sudo netstat -tap | grep mysql

通过上述命令检查之后,如果看到有MySQLsocket处于listen 状态则表示安装成功。

Hive需要数据库来存储metastore的内容,因此我们需要配置一下MySQL数据库。

  • 下载mysql驱动;

我已经帮你下载好放在/opt目录下,进入该目录并进行以下操作:

  1. tar -zxvf mysql-connector-java-5.1.45.tar.gz
    cd mysql-connector-java-5.1.45
    cp mysql-connector-java-5.1.45-bin.jar /opt/hive/lib/

接下来介绍MySQLHive做的设置。

  • 使用root用户登录MySQL数据库;
  1. mysql -uroot -p123123 -h127.0.0.1
  • 创建数据库实例hiveDB

    1. create database hiveDB;
  • 创建用户bee,密码为123123

    1. create user 'bee'@'%' identified by '123123';
  • 授权用户bee拥有数据库实例hiveDB的所有权限;

  1. grant all privileges on hiveDB.* to 'bee'@'%' identified by '123123';
  • 刷新系统权限表。
  1. flush privileges;
Hive 的配置

/opt/hive/conf目录下,修改hive-site.xmlhive-env.sh两个文件。

hive-site.xml

hive-site.xml保存Hive运行时所需要的相关配置信息。

  • 如果目录下没有该文件,我们直接创建一个:vi hive-site.xml,将以下内容复制到其中(按i进入编辑模式后再进行粘贴)。
  1. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <!-- WARNING!!! This file is auto generated for documentation purposes ONLY! -->
    <!-- WARNING!!! Any changes you make to this file will be ignored by Hive. -->
    <!-- WARNING!!! You must make your changes in hive-site.xml instead. -->
    <!-- Hive Execution Parameters -->
    <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/opt/hive/warehouse</value>
    </property>
    <property>
    <name>hive.exec.scratchdir</name>
    <value>/opt/hive/tmp</value>
    </property>
    <property>
    <name>hive.querylog.location</name>
    <value>/opt/hive/logs</value>
    </property>
    <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    </property>
    <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>localhost</value>
    </property>
    <property>
    <name>hive.server2.enable.doAs</name>
    <value>true</value>
    </property>
    
    <property>
    <name>hive.session.id</name>
    <value>false</value>
    </property>
    <property>
    <name>hive.session.silent</name>
    <value>false</value>
    </property>
    
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/hiveDB?createDatabaseIfNotExist=true</value>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>bee</value>
    <!-- 这里是之前设置的数据库 -->
    </property>
    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <!-- 这里是数据库密码 -->
    <value>123123</value>
    </property>
    </configuration>

完成后,在命令行模式(按 Esc),输入:wq!保存退出。

hive-env.sh

由于Hive是一个基于Hadoop分布式文件系统的数据仓库架构,主要运行在 Hadoop分布式环境下,因此,需要在文件hive-env.sh中指定Hadoop相关配置文件的路径,用于Hive访问HDFS(读取fs.defaultFS属性值)和 MapReduce(读取mapreduce.jobhistory.address属性值)等Hadoop 相关组件。

  • 如果目录下没有该文件,我们就以模板复制一个cp hive-env.sh.template hive-env.shvi hive-env.sh打开文件,在文件末尾添加变量指向 Hadoop 的安装路径:
    1. HADOOP_HOME=/usr/local/hadoop #在本地环境安装,要根据自己hadoop的路径来确定
    至此Hive配置完成。 第一次启动Hive前还需要执行初始化命令:
  • schematool -dbType mysql -initSchema
  • start-dfs.sh

http://www.kler.cn/news/157424.html

相关文章:

  • webpack打包体积优化,减少白屏时间
  • ARM与大模型,狭路相逢
  • 探索人工智能领域——每日20个名词详解【day6】
  • 关于近期互联网行业收缩的一些看法
  • 关于rocketMQ踩坑的那些事
  • 【hacker送书第8期】Java从入门到精通(第7版)
  • Unity Meta Quest 一体机开发(八):【手势追踪】实现 Hand Grab 扔物体功能
  • Kotlin学习之04
  • 时间序列预测实战(二十三)进阶版LSTM多元和单元预测(课程设计毕业设计首选)
  • 【初阶解法-数据结构】包含min函数的栈(代码+图示)
  • 熬夜会秃头——beta冲刺Day7
  • 【开源】基于Vue.js的河南软件客服系统
  • 【Node-RED】http response收发实现
  • Shell数组函数:数组(一)
  • 如何制作教育培训小程序
  • 数字孪生是什么,是干什么用的?
  • 01 高等数学.武忠祥.0基础
  • 考虑光伏发电的配电网重构策略研究
  • 一次elasticsearch 查询瞬间超时案例分析
  • GEE:使用Roberts算子卷积核进行图像卷积操作
  • 【C语言】深入理解C语言中的数学运算和类型转换
  • Unity中C#使用协程控制Shader材质变化
  • unity3d模型中缺失animation
  • docker (镜像分层、阿里云镜像推送/拉去)-day02
  • Kontakt v7.7.2(音频采样器)
  • Golang实践录:读取xml配置文件
  • 基于mps的pytorch 多实例并行推理
  • C语言--每日选择题--Day35
  • Apache Sqoop使用
  • 详细学习Pyqt5的9种显示控件