【Hive】Centos7安装单机版Hive

Hive依赖MySQL存储元数据信息,安装Hive前需要先安装MySQL

一、安装MySQL

  1. 下载mysql安装包
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm

在这里插入图片描述
2. 如果不是root用户需要先切换到root用户,安装第1步下载的rpm包

yum -y install mysql57-community-release-el7-10.noarch.rpm

【Hive】Centos7安装单机版Hive_第1张图片

  1. 安装mysql服务端
yum -y install mysql-community-server

【Hive】Centos7安装单机版Hive_第2张图片

  1. 如果安装报错(未安装公钥)
    【Hive】Centos7安装单机版Hive_第3张图片
    执行以下命令安装公钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

安装完后再次执行第3步操作就可以安装成功

  1. 启动MySql服务
systemctl start mysqld.service

启动后状态如下图所示
【Hive】Centos7安装单机版Hive_第4张图片

  1. 更改初始密码
    安装会未执行安装命令的系统用户(当前为root)创建一个同名数据库用户,有一个随机初始密码,更改密码便于后续使用
    使用以下命令查询初始密码
cat /var/log/mysqld.log | grep 'password'

在这里插入图片描述

  1. 登录到进MySQL shell更改初始密码
    执行以下命令登录到shell
mysql -u root -p

【Hive】Centos7安装单机版Hive_第5张图片
执行以下命令进行密码更改,注意密码有复杂度要求
在MySQL 5.7中,密码策略在安装时已默认启用,并定义了以下要求:

  • 密码长度至少为8个字符
  • 包含至少一个小写字母、一个大写字母、一个数字和一个特殊字符
alter user 'root'@'localhost' identified by '新密码';

exit;命令退出MySql shell

二、安装Hive(切换回普通用户,我这里使用的是hadoop)

  1. 下载安装包并解压
wget http://archive.apache.org/dist/hive/hive-3.1.0/apache-hive-3.1.0-bin.tar.gz

解压安装包

tar xvf apache-hive-3.1.0-bin.tar.gz -C /home/hadoop/software/

下载驱动

wget https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.47.tar.gz

解压驱动

tar xvf mysql-connector-java-5.1.47.tar.gz -C /home/hadoop/software
  1. 配置环境变量
    将解压后的得到的文件夹名称改为hive,便于以后使用
mv /home/hadoop/software/apache-hive-3.1.0-bin /home/hadoop/software/hive

由于环境变量配置文件只有root用户有权限更改,使用sudo命令获取超管权限,执行以下命令,将环境变量配置写入配置文件

sudo echo 'export PATH=$PATH:/home/hadoop/software/hive/bin' >> /etc/profile

执行以下命令使环境变量生效

source /etc/profile
  1. 添加MySQL驱动
    将驱动复制到hive的bin目录下(/home/hadoop/software/hive/bin/)
cp /home/hadoop/software/mysql-connector-java-5.1.47/mysql-connector-java-5.1.47-bin.jar /home/hadoop/software/hive/lib
  1. 添加配置文件hive-site.xml
    切换到hive存放配置文件的目录“/home/hadoop/software/hive/conf/”,编辑hive-site.xml文件(如果文件不存在会自动创建)
 vi hive-site.xml

将以下内容添加到文件中

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
 <configuration>
     <!-- MySQL配置 -->
     <property>
         <name>javax.jdo.option.ConnectionURL</name>
         <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&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>MySQL的root用户登录密码</value>
     </property>
     <property>
         <name>datanucleus.readOnlyDatastore</name>
         <value>false</value>
     </property>
     <property>
         <name>datanucleus.fixedDatastore</name>
         <value>false</value>
     </property>
     <property>
         <name>datanucleus.autoCreateSchema</name>
         <value>true</value>
     </property>
     <property>
         <name>datanucleus.schema.autoCreateAll</name>
         <value>true</value>
     </property>
     <property>
         <name>datanucleus.autoCreateTables</name>
         <value>true</value>
     </property>
     <property>
         <name>datanucleus.autoCreateColumns</name>
         <value>true</value>
     </property>
     <property>
         <name>hive.metastore.local</name>
         <value>true</value>
     </property>
     <!-- 显示表的列名 -->
     <property>
         <name>hive.cli.print.header</name>
         <value>true</value>
     </property>
     <!-- 显示数据库名称 -->
     <property>
         <name>hive.cli.print.current.db</name>
         <value>true</value>
     </property>
     <property>
         <name>hive.exec.local.scratchdir</name>
         <value>/home/hadoop/sofatware/hive</value>
         <description>Local scratch space for Hive jobs</description>
     </property>
     <!-- 自定义目录start -->
     <property>
         <name>hive.downloaded.resources.dir</name>
         <value>/home/hadoop/sofatware/hive/hive-downloaded-addDir/</value>
         <description>Temporary local directory for added resources in the remote file system.</description>
     </property>
     <property>
         <name>hive.querylog.location</name>
         <value>/home/hadoop/sofatware/hive/querylog-location-addDir/</value>
         <description>Location of Hive run time structured log file</description>
     </property>
     <property>
         <name>hive.server2.logging.operation.log.location</name>
         <value>/home/hadoop/sofatware/hive/hive-logging-operation-log-addDir/</value>
         <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
     </property>
 </configuration>
  1. 格式化数据库
schematool -dbType mysql -initSchema

【Hive】Centos7安装单机版Hive_第6张图片

  1. 启动hive(确保MySql是启动状态)
    hive依赖HDFS存储数据,启动那个hive前需要先启动HDFS或Hadoop
hive

在这里插入图片描述

你可能感兴趣的:(大数据组件,hive,硬件架构,hadoop)