【CentOS】Hive安装[通俗易懂]

【CentOS】Hive安装[通俗易懂]文章目录一、安装Hive1、解压安装包2、重命名3、添加MySQL驱动包二、环境配置1、环境变量2、配置hive-env.sh3、配置hive-site.xml三、配置log日志文件四、MySQL远程连接配置五、初始化元数据库六、启动Hive环境准备:CentOS7Hadoop正常运行:Hadoop完全分布式MySQL正常运行:有安装MySQL目标安装Hive3.1.2版搭建Hive环境配置MySQLjar包驱动5.1.37版关联MySQL和Hive..

大家好,欢迎来到IT知识分享网。



今天使用很久没用的虚拟机,进入Hive的时候各种报错,索性重新安装。本人对于运维这块不是很熟悉,所以参考了师弟的博文:三十六、centos安装hive3.1.2(精讲篇),按照教程安装后很是成功,收获也颇多,还得向大佬多多学习 💨💨💨💨
主要环境资源点击此处下载呦~ 👈👈👈

环境准备:

  • CentOS 7
  • Hadoop正常运行 :Hadoop完全分布式
  • MySQL正常运行 :有安装MySQL

目标

  • 安装Hive 3.1.2版
  • 搭建Hive环境
  • 配置MySQL jar包驱动 5.1.37版
  • 关联MySQL 和 Hive

一、安装Hive

1、解压安装包

[root@d ~]# cd /home/download/
[root@d download]# ll
总用量 1432020
-rw-r--r--. 1 root root       129 412 2021 !
-rw-r--r--. 1 root root       129 412 2021 1
-rw-r--r--. 1 root root  58688757 816 2020 apache-flume-1.8.0-bin.tar.gz
-rw-r--r--. 1 root root 278813748 923 2020 apache-hive-3.1.2-bin.tar.gz
-rw-r--r--. 1 root root 210606807 512 2020 hadoop-2.7.1_64bit.tar.gz
-rw-r--r--. 1 root root 118311464 814 2020 hbase-1.4.12-bin.tar.gz
-rw-r--r--. 1 root root 189756259 83 2020 jdk-8u161-linux-x64.tar.gz
-rw-r--r--. 1 root root 376537503 923 2020 mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz
-rw-r--r--. 1 root root    990927 923 2020 mysql-connector-java-5.1.40-bin.jar
-rw-r--r--. 1 root root  28678231 1227 20:18 scala-2.11.8.tgz
-rw-r--r--. 1 root root 203728858 923 2020 spark-2.2.0-bin-hadoop2.7.tgz
-rw-r--r--. 1 root root     65816 322 2021 telnet-0.17-65.el7_8.x86_64.rpm
-rw-r--r--. 1 root root     41996 322 2021 telnet-server-0.17-65.el7_8.x86_64.rpm
-rw-r--r--. 1 root root    131484 322 2021 xinetd-2.3.15-14.el7.x86_64.rpm

[root@d ~]#tar -zxvf apache-hive-3.1.2-bin.tar.gz /home -C /home/

IT知识分享网

IT知识分享网[root@d home]# ll
总用量 28
-rw-r--r--.  1 root root   872 1227 20:31 !
drwxr-xr-x. 10 root root   184 14 18:29 apache-hive-3.1.2-bin
drwx------. 17 d    d     4096 1227 19:37 d
drwxrwxrwx.  7 root root  4096 1227 09:52 data
drwxr-xr-x.  2 root root  4096 1227 20:18 download
drwxr-xr-x.  3 root root    19 914 2020 flume
drwxr-xr-x.  3 root root    20 914 2020 hadoop
drwxr-xr-x.  8 root root   172 923 2020 hbase
drwxr-xr-x.  3 root root    17 914 2020 java
drwxr-xr-x.  3 root root    47 917 2020 kafka
drwxr-xr-x.  9 7161 31415  129 62 2020 mysql
drwxrwxr-x.  6 zyx  mysql   50 34 2016 scala
drwxr-xr-x. 14  500   500  217 1225 2020 spark
drwxr-xr-x. 14 root root   217 1227 23:48 spark-standalone
drwxr-xr-x.  3 root root    63 922 2020 sqoop
-rw-r--r--.  1 root root  1675 917 2020 ssh
-rw-r--r--.  1 root root   388 917 2020 ssh.pub
drwx------. 14 zyx  zyx   4096 317 2021 zyx

2、重命名

[root@d home]# mv apache-hive-3.1.2-bin hive
[root@d home]# ll
总用量 28
-rw-r--r--.  1 root root   872 1227 20:31 !
drwx------. 17 d    d     4096 1227 19:37 d
drwxrwxrwx.  7 root root  4096 1227 09:52 data
drwxr-xr-x.  2 root root  4096 1227 20:18 download
drwxr-xr-x.  3 root root    19 914 2020 flume
drwxr-xr-x.  3 root root    20 914 2020 hadoop
drwxr-xr-x.  8 root root   172 923 2020 hbase
drwxr-xr-x. 10 root root   184 14 18:29 hive
drwxr-xr-x.  3 root root    17 914 2020 java
drwxr-xr-x.  3 root root    47 917 2020 kafka
drwxr-xr-x.  9 7161 31415  129 62 2020 mysql
drwxrwxr-x.  6 zyx  mysql   50 34 2016 scala
drwxr-xr-x. 14  500   500  217 1225 2020 spark
drwxr-xr-x. 14 root root   217 1227 23:48 spark-standalone
drwxr-xr-x.  3 root root    63 922 2020 sqoop
-rw-r--r--.  1 root root  1675 917 2020 ssh
-rw-r--r--.  1 root root   388 917 2020 ssh.pub
drwx------. 14 zyx  zyx   4096 317 2021 zyx

3、添加MySQL驱动包

在这里插入图片描述
返回顶部


二、环境配置

1、环境变量

IT知识分享网[root@d download]# vim /etc/profile

在这里插入图片描述
使环境变量立即生效:

[root@d download]# source /etc/profile

2、配置 hive-env.sh

(1)拷贝hive-env.sh.template并命名为hive-env.sh

[root@d conf]# mv hive-env.sh.template hive-env.sh
[root@d conf]# ll
总用量 632
-rw-r--r--. 1 root root   1596 823 2019 beeline-log4j2.properties.template
-rw-r--r--. 1 root root 300482 823 2019 hive-default.xml.template
-rw-r--r--. 1 root root   2363 14 18:33 hive-env.sh
-rw-r--r--. 1 root root   2365 823 2019 hive-env.sh.template
-rw-r--r--. 1 root root   2274 823 2019 hive-exec-log4j2.properties.template
-rw-r--r--. 1 root root   3086 823 2019 hive-log4j2.properties.template
-rw-r--r--. 1 root root 301008 14 18:42 hive-site.xml
-rw-r--r--. 1 root root   2060 823 2019 ivysettings.xml
-rw-r--r--. 1 root root   3558 823 2019 llap-cli-log4j2.properties.template
-rw-r--r--. 1 root root   7163 823 2019 llap-daemon-log4j2.properties.template
-rw-r--r--. 1 root root   2662 823 2019 parquet-logging.properties

(2)修改hive-env.sh 文件

..........
# Larger heap size may be required when running queries over large number of files or partitions.
# By default hive shell scripts use a heap size of 256 (MB). Larger heap size would also be
# appropriate for hive server.

# 修改如下:
# Set HADOOP_HOME to point to a specific hadoop install directory
HADOOP_HOME=/home/hadoop/hadoop/

# Hive Configuration Directory can be controlled by:
export HIVE_CONF_DIR=/home/hive/conf/

# Folder containing extra libraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=/home/hive/lib/

注:第一个为Hadoop目录,第二个为Hive配置目录,最后一个为驱动jar包路径


3、配置 hive-site.xml

(1)新建hive-site.xml:

[root@d conf]# ll
总用量 336
-rw-r--r--. 1 root root   1596 823 2019 beeline-log4j2.properties.template
-rw-r--r--. 1 root root 300482 823 2019 hive-default.xml.template
-rw-r--r--. 1 root root   2391 14 18:51 hive-env.sh
-rw-r--r--. 1 root root   2365 823 2019 hive-env.sh.template
-rw-r--r--. 1 root root   2274 823 2019 hive-exec-log4j2.properties.template
-rw-r--r--. 1 root root   3086 823 2019 hive-log4j2.properties.template
-rw-r--r--. 1 root root   2060 823 2019 ivysettings.xml
-rw-r--r--. 1 root root   3558 823 2019 llap-cli-log4j2.properties.template
-rw-r--r--. 1 root root   7163 823 2019 llap-daemon-log4j2.properties.template
-rw-r--r--. 1 root root   2662 823 2019 parquet-logging.properties
[root@d conf]# vi hive-site.xml // 直接新建

直接将此文件内容拷入hive-site.xml ,将如下hive-site.xml中对应的值替换为自己的真实数据值,其余标签无需修改

<configuration>
    <!-- jdbc 连接的 URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8</value>
    </property>

     <!-- jdbc 连接的 Driver-->
        <!--新版本8.0版本的驱动为com.mysql.cj.jdbc.Driver-->
        <!--旧版本5.x版本的驱动为com.mysql.jdbc.Driver-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>

    <!-- jdbc 连接的 username(MySQL用户名)-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>

    <!-- jdbc 连接的 password(MySQL密码) -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>

     <!-- Hive 元数据存储版本的验证(Hive元数据默认是存储在Derby中,正常开启时它会去校验Derby,现在要使用MySQL存储元数据,
     就需要把这个关闭即可,如果开启,MySQL和Derby会导致Hive启动不起来的) -->
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>

   <!-- Hive  默认在 HDFS 的工作目录(可以不配置,因为默认就是/user/hive/warehouse,如果不使用默认的位置,可以进行手动修改) -->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
</configuration>

(2)创建HDFS文件夹(必须要创建,hive-site.xml文件中有此路径,此路径很重要)

  • A、启动Hadoop各节点、MySQL:
    在这里插入图片描述

  • B、离开安全模式,创建两个文件夹并赋予权限:

[root@d hadoop]# hadoop fs -mkdir -p /user/hive/warehouse

登陆50070端口查看hdfs文件系统:
在这里插入图片描述


(3)创建temp文件夹并赋予权限,路径为 /…/hive/temp

[root@d hive]# mkdir temp
[root@d hive]# chmod -R 777 temp/
[root@d hive]# pwd
/home/hive
[root@d hive]# ll
总用量 56
drwxr-xr-x. 3 root root   157 14 18:29 bin
drwxr-xr-x. 2 root root  4096 14 18:29 binary-package-licenses
drwxr-xr-x. 2 root root  4096 14 18:56 conf
drwxr-xr-x. 4 root root    34 14 18:29 examples
drwxr-xr-x. 7 root root    68 14 18:29 hcatalog
drwxr-xr-x. 2 root root    44 14 18:29 jdbc
drwxr-xr-x. 4 root root 12288 14 18:46 lib
-rw-r--r--. 1 root root 20798 823 2019 LICENSE
-rw-r--r--. 1 root root   230 823 2019 NOTICE
-rw-r--r--. 1 root root  2469 823 2019 RELEASE_NOTES.txt
drwxr-xr-x. 4 root root    35 14 18:29 scripts
drwxrwxrwx. 2 root root     6 14 19:00 temp

返回顶部


三、配置log日志文件

(1)拷贝并重命名hive-log4j2.properties.templatehive-log4j2.properties文件

[root@d hive]# cd ./conf/
[root@d conf]# ll
总用量 340
-rw-r--r--. 1 root root   1596 823 2019 beeline-log4j2.properties.template
-rw-r--r--. 1 root root 300482 823 2019 hive-default.xml.template
-rw-r--r--. 1 root root   2391 14 18:51 hive-env.sh
-rw-r--r--. 1 root root   2365 823 2019 hive-env.sh.template
-rw-r--r--. 1 root root   2274 823 2019 hive-exec-log4j2.properties.template
-rw-r--r--. 1 root root   3086 823 2019 hive-log4j2.properties.template
-rw-r--r--. 1 root root   1591 14 18:56 hive-site.xml
-rw-r--r--. 1 root root   2060 823 2019 ivysettings.xml
-rw-r--r--. 1 root root   3558 823 2019 llap-cli-log4j2.properties.template
-rw-r--r--. 1 root root   7163 823 2019 llap-daemon-log4j2.properties.template
-rw-r--r--. 1 root root   2662 823 2019 parquet-logging.properties
[root@d conf]# cp hive-log4j2.properties.template hive-log4j2.properties
[root@d conf]# ll
总用量 344
-rw-r--r--. 1 root root   1596 823 2019 beeline-log4j2.properties.template
-rw-r--r--. 1 root root 300482 823 2019 hive-default.xml.template
-rw-r--r--. 1 root root   2391 14 18:51 hive-env.sh
-rw-r--r--. 1 root root   2365 823 2019 hive-env.sh.template
-rw-r--r--. 1 root root   2274 823 2019 hive-exec-log4j2.properties.template
-rw-r--r--. 1 root root   3086 14 19:02 hive-log4j2.properties
-rw-r--r--. 1 root root   3086 823 2019 hive-log4j2.properties.template
-rw-r--r--. 1 root root   1591 14 18:56 hive-site.xml
-rw-r--r--. 1 root root   2060 823 2019 ivysettings.xml
-rw-r--r--. 1 root root   3558 823 2019 llap-cli-log4j2.properties.template
-rw-r--r--. 1 root root   7163 823 2019 llap-daemon-log4j2.properties.template
-rw-r--r--. 1 root root   2662 823 2019 parquet-logging.properties

(2)修改日志文件:

[root@d conf]# vi hive-log4j2.properties

修改内容 property.hive.log.dir =/....../hive/temp/root 上面创建的目录/temp加一个root就可以了

返回顶部


四、MySQL远程连接配置

(1)登录MySQL

(2)使用mysql数据库:use mysql;

(3)执行: update user set host = '%' where user='root';

(4)退出MySQL:exit;

(5)重启MySQL服务:service mysql restart

在这里插入图片描述

返回顶部


五、初始化元数据库

Hive中的元数据,其默认存储在 Derby 中,由于MySQL性能有明显优势,此处以MySQL作为元数据库;

进入 /....../hive/bin 目录进行 mysql 初始化操作:

[root@d ~]# cd /home/hive/bin
[root@d bin]# ll
总用量 44
-rwxr-xr-x. 1 root root   881 823 2019 beeline
drwxr-xr-x. 3 root root  4096 14 18:29 ext
-rwxr-xr-x. 1 root root 10158 823 2019 hive
-rwxr-xr-x. 1 root root  1900 823 2019 hive-config.sh
-rwxr-xr-x. 1 root root   885 823 2019 hiveserver2
-rwxr-xr-x. 1 root root   880 823 2019 hplsql
-rwxr-xr-x. 1 root root  3064 823 2019 init-hive-dfs.sh
-rwxr-xr-x. 1 root root   832 823 2019 metatool
-rwxr-xr-x. 1 root root   884 823 2019 schematool
[root@d bin]# ./schematool -dbType mysql -initSchema

第一次的时候报错了:Error: Table 'CTLGS' already exists (state=42S01,code=1050)
org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !!

在这里插入图片描述
解决方案:
在这里插入图片描述

[root@d bin]# ./schematool -dbType mysql -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL:	 jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8
Metastore Connection Driver :	 com.mysql.jdbc.Driver
Metastore connection User:	 root
Starting metastore schema initialization to 3.1.0
Initialization script hive-schema-3.1.0.mysql.sql

Initialization script completed
schemaTool completed

返回顶部


六、启动Hive

进入/....../hive/bin目录直接输入./hive

[root@d bin]# ./hive
which: no hbase in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/java/jdk/bin:/home/java/jdk/sbin:/home/hadoop/hadoop/bin:/home/sqoop/sqoop/bin:/home/scala/bin:/home/spark-standalone/bin:/root/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Hive Session ID = 83efdd1a-ec25-4caa-9adc-07f85bd59222

Logging initialized using configuration in file:/home/hive/conf/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Hive Session ID = 2edf5c07-6aa8-4c06-97c5-f262d5f761ac
[root@d bin]# ./hive
which: no hbase in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/home/java/jdk/bin:/home/java/jdk/sbin:/home/hadoop/hadoop/bin:/home/sqoop/sqoop/bin:/home/scala/bin:/home/spark-standalone/bin:/root/bin)
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Hive Session ID = 83efdd1a-ec25-4caa-9adc-07f85bd59222

Logging initialized using configuration in file:/home/hive/conf/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
Hive Session ID = 2edf5c07-6aa8-4c06-97c5-f262d5f761ac
hive>

显示数据库:

hive> show tables;
OK
zyx
Time taken: 0.059 seconds, Fetched: 1 row(s)
hive> select * from zyx;
OK
Time taken: 1.986 seconds

返回顶部


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/6168.html

(0)
上一篇 2022-12-17 21:20
下一篇 2022-12-17 21:40

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信