IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Centos 7上安装Hive 1.2.2 详细图文教程 -> 正文阅读

[大数据]Centos 7上安装Hive 1.2.2 详细图文教程

0. 安装MySQL

Centos 7上安装MySQL 5.7.37(图文详解)

1. 下载、上传、解压软件包

在Master上进行安装

下载Hive并上传到虚拟机上
http://mirror.bit.edu.cn/apache/hive/

解压

[root@master hive]# tar -zxvf apache-hive-1.2.2-bin.tar.gz

移动到规划好的文件夹下

[root@master hive]# tar -zxvf apache-hive-1.2.2-bin.tar.gz

在这里插入图片描述
在这里插入图片描述
bin:二进制命令文件
conf:配置文件
examples:示例
hcatalog:log日志
lib:文件库,运行时依赖的jar包
scripts:脚本文件

2. 修改Hive配置

(1)配置hive-env.sh

修改conf内hive-env.sh.template文件名

[root@master conf]# mv hive-env.sh.template hive-env.sh.template

修改hive-env.sh文件内容

[root@master conf]# vim hive-env.sh 

在键盘上输入Go,其中G会跳到文件末尾,o会换行并进行插入编辑。
输入java、hadoop和Hive的安装路径、Hive的配置文件路径

export JAVA_HOME=/usr/local/src/jdk1.8.0_172
export HADOOP_HOME=/usr/local/src/hadoop-2.6.5
export HIVE_HOME=/usr/local/src/apache-hive-1.2.2-bin
export HIVE_CONF_DIR=/usr/local/src/apache-hive-2.3.3-bin/conf

在这里插入图片描述

(2)配置hive-site.xml

创建hive-site.xml

[root@master conf]# touch hive-site.xml

修改文件内容

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</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>123456</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>hdfs://master:9000/hive/warehouse</value>
    </property>
    <property>
        <name>hive.exec.scratchdir</name>
        <value>hdfs://master:9000/hive/tmp</value>
    </property>
    <property>
        <name>hive.querylog.location</name>
        <value>/usr/hive/log</value>
        <description>设置hive job日志存储位置</description>
    </property>
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
        <description>设置列名</description>
    </property>
    <property>
        <name>hive.resultset.use.unique.column.names</name>
        <value>false</value>
        <description>增加列名可读性</description>
    </property>
    <!-- flume to hive test-->
    <property>
        <name>hive.support.concurrency</name>
        <value>true</value>
        <description>是否支持并发,默认是false</description>
    </property>
    <!--
    <property>
        <name>hive.txn.manager</name>
        <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
        <description>打开一部分事务支持协同配置</description>
    </property>
    -->
    <property>
        <name>hive.compactor.initiator.on</name>
        <value>true</value>
        <description>运行启动程序和清除线程,用于打开所需参数的完整列表事务</description>
    </property>
    <property>
        <name>hive.compactor.worker.threads</name>
        <value>1</value>
        <description>增加工作线程的数量将减少花费的时间</description>
    </property>
    <property>
        <name>hive.enforce.bucketing</name>
        <value>true</value>
        <description>是否启用bucketing,写入table数据</description>
    </property>
    <property>
        <name>hive.exec.dynamic.partition.mode</name>
        <value>nonstrict</value>
        <description>设置动态分区模式为非严格模式</description>
    </property>
</configuration>

(3)增加环境变量

修改系统环境变量

[root@master conf]# vim ~/.bashrc

添加Hive路径

export HIVE_HOME=/usr/local/src/apache-hive-1.2.2-bin
export PATH=$PATH:${HIVE_HOME}/bin

在这里插入图片描述
刷新环境变量使其生效

[root@master conf]# source ~/.bashrc

3. 安装MySQL连接工具

mysql-connector-java-5.1.44.tar下载好后上传至虚拟机

解压

[root@master src]# tar -xvf mysql-connector-java-5.1.44.tar 

将解压后的文件移动到规划好的文件夹下

[root@master src]# mv mysql-connector-java-5.1.44 /usr/local/src

在这里插入图片描述
mysql-connector-java-5.1.44里面的jar包复制到Hive的lib目录下

[root@master mysql-connector-java-5.1.44]# cp mysql-connector-java-5.1.44-bin.jar $HIVE_HOME/lib
[root@master mysql-connector-java-5.1.44]# cd $HIVE_HOME/lib
[root@master lib]# ls

在这里插入图片描述

4. 启动Hive

Hive依赖Hadoop中的HDFS进行存储,依赖MySQL管理元数据。因此,我们需要等待Hadoop集群启动完成并退出安全模式后,才可以启动Hive。

(1)更改权限为root

首先,在Master上将hadoop、jdk、hive的权限所有者都改为root

[root@master src]# chown -R root:root hadoop-2.6.5/ jdk1.8.0_172/

在这里插入图片描述
开启slave1和slave2,将hadoop、jdk改为root

[root@slave1 src]# chown -R root:root jdk1.8.0_172

在这里插入图片描述
Slave2同理

(2)启动hadoop集群

然后,启动Hadoop集群

[root@master hadoop-2.6.5]# sbin/start-all.sh 

启动完成后,查看hadoop集群状态

[root@master hadoop-2.6.5]# hadoop dfsadmin -report

在这里插入图片描述
这个位置没有出现Safe model is ON,则已关闭安全模式,可以启动Hive。若有则说明正在开启安全模式,不能启动Hive,需要等待一会儿或者手动关闭安全模式。

命令 hadoop fs -safemode get 查看安全模式状态

命令 hadoop fs -safemode enter 进入安全模式状态

命令 hadoop fs -safemode leave 离开安全模式

Hadoop安全模式

(3)替换hadoop中的jar包

由于hadoop 2.6.5hive 1.2.2中的jline包版本不一致,因此需要替换。

删除hadoop-2.6.5/share/hadoop/yarn/lib中的jline-0.9.94.jar
在这里插入图片描述

[root@master apache-hive-1.2.2-bin]# rm $HADOOP_HOME/share/hadoop/yarn/lib/jline-0.9.94.jar 

然后,将hive中的jline-2.12.jar放到hadoop-2.6.5/share/hadoop/yarn/lib使Hadoop和Hive里的jar版本保持一致。

[root@master apache-hive-1.2.2-bin]# cp lib/jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib/

在这里插入图片描述

(4)启动Hive

最后,进入到hive目录里开启hive

[root@master apache-hive-1.2.2-bin]# bin/hive

在这里插入图片描述
测试一下

hive> show databases;

在这里插入图片描述
若觉得太慢可以更改hive-site.xml中的内容来提升速度
退出Hive

hive> exit;

编辑conf/hive-site.xml

[root@master apache-hive-1.2.2-bin]# vim conf/hive-site.xml 

将一部分内容注释掉

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</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>123456</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>hdfs://master:9000/hive/warehouse</value>
    </property>
    <property>
        <name>hive.exec.scratchdir</name>
        <value>hdfs://master:9000/hive/tmp</value>
    </property>
    <property>
        <name>hive.querylog.location</name>
        <value>/usr/hive/log</value>
        <description>设置hive job日志存储位置</description>
    </property>
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
        <description>设置列名</description>
    </property>
    <property>
        <name>hive.resultset.use.unique.column.names</name>
        <value>false</value>
        <description>增加列名可读性</description>
    </property>
<!--    
    <!-- flume to hive test-->
    <property>
        <name>hive.support.concurrency</name>
        <value>true</value>
        <description>是否支持并发,默认是false</description>
    </property>
    <!--
             <property>
        <name>hive.txn.manager</name>
        <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
        <description>打开一部分事务支持协同配置</description>
    </property>
    -->
    <property>
        <name>hive.compactor.initiator.on</name>
        <value>true</value>
        <description>运行启动程序和清除线程,用于打开所需参数的完整列表事务</description>
    </property>
    <property>
        <name>hive.compactor.worker.threads</name>
        <value>1</value>
        <description>增加工作线程的数量将减少花费的时间</description>
    </property>
    <property>
        <name>hive.enforce.bucketing</name>
        <value>true</value>
        <description>是否启用bucketing,写入table数据</description>
    </property>
    <property>
        <name>hive.exec.dynamic.partition.mode</name>
        <value>nonstrict</value>
        <description>设置动态分区模式为非严格模式</description>
    </property>
-->    
</configuration>

在这里插入图片描述
在这里插入图片描述
将这部分内容注释掉,然后再启动Hive进行测试
在这里插入图片描述
性能提升了1s左右

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-02-19 01:14:20  更:2022-02-19 01:15:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 10:56:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码