三十六、centos安装hive3.1.2(精讲篇)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 三十六、centos安装hive3.1.2(精讲篇)

环境准备:


centos 7


centos可以上网


Hadoop正常运行          详情见:Hadoop完全分布式


MySQL正常运行           详情见:Centos安装MySQL


前言:下文操作均以图文形式展现,对照自己的路径进行配置


案例目标:


1.安装Hive  3.1.2版

2.搭建Hive环境

3.配置MySQL jar包驱动  5.1.37版

4.关联MySQL 和 Hive


案例实施:


一、下载

       由于使用wget命令下载直接会下载到此目录,且我的安装全部都在 /opt/software目录下,所以先进入下载目录再进行下载,省麻烦移动。


       1、下载Hive 3.1.2包:


wget https://mirrors.bfsu.edu.cn/apache/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz


       2、下载MySQ 5.1.37驱动包(虚拟机地址栏):


https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.37

1.png


二、安装

        1、解压:


2.png


       2、重命名:


3.png


 

       3、移动MySQL驱动包到  /...../hive/lib目录下:


4.png


三、环境配置

       1、环境变量:


vim /etc/profile

5.png

       2、 使环境变量立即生效:


source /etc/profile

       3、配置  hive-env.sh


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


cp hive-env.sh.template hive-env.sh

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


       原文件:


6.png


       现文件:


7.png


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


       4、配置hive-site.xml


               (1)新建hive-site.xml:


8.png


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


<configuration>    
    <!-- jdbc 连接的 URL -->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&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>dang</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各节点:


9.png


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



10.png

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


11.png


       5、配置log日志文件


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


cp hive-log4j2.properties.template hive-log4j2.properties

       (2)修改日志文件:


vim hive-log4j2.properties


12.png

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


       6、MySQL进行远程连接:


               (1)登录MySQL


               (2)使用mysql数据库


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


               (4)退出MySQL


         (5)重启MySQL服务:


                       systemctl stop mysqld.service


                       systemctl start mysqld.service


13.png


14.png      




四、初始化元数据库

     

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


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


schematool -dbType mysql -initSchema

15.png


16.png

        如图所示即为初始化成功


五、检查

   

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


17.png


 

         显示数据库:

18.png


       创建表,插入数据:


19.png


centos安装Hive3.1.2完成


六、问题

   

1、第一次进入hive发现:


20.png


       解决: NameNode在启动的时候首先进入安全模式,如果datanode丢失的block达到一定的比例,则系统会一直处于安全模式状态即只读状态,直接关闭安全模式即可:  hdfs dfsadmin -safemode leave


       2、执行查看表命令报错:


Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.mapred.FileInputFormat

Exception in thread "main" java.lang.IllegalAccessError: tried to access method com.google.common.base.Stopwatch.<init>()V from class org.apache.hadoop.mapred.FileInputFormat


21.png


   

       解决:进入/...../hive/lib 目录下将  guava-19.0.jar  换为   gua-13.0.jar

22.png

                 


链接:https://mvnrepository.com/artifact/com.google.guava/guava/13.0


23.png


     


       3、初始化报错:Failed to load driverFailed to load driver:


Metastore connection URL:     jdbc:mysql://cit-server2-s2-120:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8

Metastore Connection Driver :     com.mysql.jc.jdbc.Driver

Metastore connection User:     root

org.apache.hadoop.hive.metastore.HiveMetaException: Failed to load driver

Underlying cause: java.lang.ClassNotFoundException : com.mysql.jc.jdbc.Driver


       解决:驱动jar包版本不对应,没放在正确的位置(/....../hive/lib下);


       4、Hadoop未启动导致hive链接失败:


Exception in thread "main" java.lang.RuntimeException: java.net.ConnectException: Call From master.hadoop/192.168.140.138 to master.hadoop:9000 failed on connection exception: java.net.Connect


       解决:启动Hadoop集群


       5、multiple SLF4J bindings


      SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/usr/local/hive/apache-hive-3.1.1-bin/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/usr/local/hadoop/hadoop-3.2.0/share/hadoop/common/lib/slf4j-log4j12-1.7.25.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和Hadoop的slf4j-log4j包冲突,删除/....../hive/lib 下的slf4j-log4j包(Hive的包)


       6、expansion character


Exception in thread "main" java.lang.RuntimeException: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8

at [row,col,system-id]: [3210,96,"file:/usr/local/hive/apache-hive-3.1.1-bin/conf/hive-site.xml"]


Caused by: com.ctc.wstx.exc.WstxParsingException: Illegal character entity: expansion character (code 0x8

at [row,col,system-id]: [3210,96,"file:/usr/local/hive/apache-hive-3.1.1-bin/conf/hive-site.xml"]

at org.apache.hadoop.conf.Configuration$Parser.parseNext(Configuration.java:3277)

   at org.apache.hadoop.conf.Configuration$Parser.parse(Configuration.java:3071)


       解决:hive-site.xml文件第3210行有特殊字符,删除特殊字符 for


vim hive-site.xml +3210

       7、not allowed to connect to this MySQL server


         原因:服务器不允许远程连接


         解决:   进行本文第二大点第6小点操作


       8、Access denied for user ‘root’@‘DW1’


org.apache.hadoop.hive.metastore.HiveMetaException: Failed to get schema version.
Underlying cause: java.sql.SQLException : Access denied for user 'root'@'DW1' (using password: YES)
SQL Error code: 1045


       原因:创建用户的时候为root登录localhost


       解决:进入MySQL端执行        alter user 'root'@'localhost' identified by '123456';


       注意: 修改主机名及其密码



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
Linux 网络安全 数据安全/隐私保护
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
如何在 VM 虚拟机中安装 CentOS Linux 9 操作系统保姆级教程(附链接)
170 0
|
2月前
|
关系型数据库 MySQL Linux
centos7.0环境下安装MySql_8.0.12
centos7.0环境下安装MySql_8.0.12
|
1月前
|
存储 JavaScript Linux
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
Linux环境下安装nmp(Centos环境)保姆级教学 一步到位
|
3天前
|
Linux
centos 6.5安装yum
centos 6.5安装yum
22 0
|
3天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
15 0
|
3天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
10 0
|
3天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
9 0
|
4天前
|
存储 Linux 网络安全
centos7使用yum网络安装
这些是使用Yum进行网络安装的基本步骤。根据你的需求,你可以重复步骤3和4来安装其他软件包。请注意,执行Yum操作需要root或具有sudo权限的用户。
16 1
|
10天前
|
关系型数据库 MySQL Linux
centos7安装mysql-带网盘安装包
centos7安装mysql-带网盘安装包
60 2
|
17天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
32 0

热门文章

最新文章