centos7 Hive2.3.6安装与配置

一.简介

• Hive 由 Facebook 实现并开源,是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据映射为一张数据库表,并提供 HQL(Hive SQL)查询功能,底层数据是存储在 HDFS 上。
• Hive 本质: 将 SQL 语句转换为 MapReduce 任务运行,使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,是一款基于 HDFS 的 MapReduce 计算框架
主要用途:用来做离线数据分析,比直接用 MapReduce 开发效率更高。

二.安装与配置

基于<<Hadoop2.7.7 HA完全分布式集群搭建>>

1.下载 Hive2.3.6
cd /usr/local
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-2.3.6/apache-hive-2.3.6-bin.tar.gz

tar -zxvf apache-hive-2.3.6-bin.tar.gz
2.配置hive环境变量
# 编辑 /etc/profile 文件, 在其中添加以下内容 
vim /etc/profile
export HIVE_HOME=/usr/local/apache-hive-2.3.6-bin
export PATH=$PATH:$HIVE_HOME/bin
# 激活配置
source /etc/profile
3.在hadoop下创建hive所用文件夹
$HADOOP_HOME/bin/hadoop fs -mkdir  -p     /usr/local/apache-hive-2.3.6/tmp
$HADOOP_HOME/bin/hadoop fs -mkdir  -p     /usr/local/apache-hive-2.3.6/warehouse
$HADOOP_HOME/bin/hadoop fs -chmod g+w   /usr/local/apache-hive-2.3.6/tmp
$HADOOP_HOME/bin/hadoop fs -chmod g+w   /usr/local/apache-hive-2.3.6/warehouse
4.下载对应的mysql连接jar

https://dev.mysql.com/doc/connector-j/5.1/en/connector-j-versions.html
https://dev.mysql.com/downloads/connector/j/

在这里插入图片描述
在这里插入图片描述
将目标文件移动到 hive的lib文件夹下

mv mysql-connector-java-5.1.48.jar $HIVE_HOME/lib

创建数据库,配置用户和权限

create database metastore;
grant all on metastore.* to hive@'%'  identified by 'hive';
grant all on metastore.* to hive@'localhost'  identified by 'hive';
flush privileges;

5.配置 Hive
cd apache-hive-2.3.6-bin/conf/
cp hive-env.sh.template hive-env.sh 
cp hive-default.xml.template hive-site.xml 
cp hive-log4j2.properties.template hive-log4j2.properties 
cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

修改 vim hive-env.sh

#Java路径
export JAVA_HOME=/usr/local/java
#Hadoop安装路径
export HADOOP_HOME=/usr/local/hadoop-2.7.7
#Hive安装路径
export HIVE_HOME=/usr/local/apache-hive-2.3.6-bin
#Hive配置文件路径
export HIVE_CONF_DIR=/usr/local/apache-hive-2.3.6-bin/conf
# hive存放外部jar包的位置
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-2.3.6-bin/bin

修改hive-site.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<configuration>

<!-- Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI -->
<property>
    <name>hive.exec.scratchdir</name>
    <value>/usr/local/apache-hive-2.3.6/tmp</value>
</property>
<property>
    <name>hive.exec.local.scratchdir</name>
   
    <!-- Relative path in absolute URI: ${system:user.name%7D -->
    <!--  去掉system: -->
    <value>/usr/local/apache-hive-2.3.6/tmp/${user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
<property>
    <name>hive.downloaded.resources.dir</name>
    <value>/usr/local/apache-hive-2.3.6/tmp/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

<property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/usr/local/apache-hive-2.3.6/warehouse</value>
</property>
<property>
    <name>hive.querylog.location</name>
    <value>/usr/local/apache-hive-2.3.6/logs/${user.name}</value>
</property>
 
<property>
  <name>hive.server2.logging.operation.log.location</name>
  <!-- Relative path in absolute URI: ${system:user.name%7D -->
    <!--  去掉system: -->
  <value>/usr/local/apache-hive-2.3.6/logs/${user.name}/operation_logs</value>
  <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property>

<!-- 配置 MySQL 数据库连接信息 -->
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=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>hive</value><!-- 指定mysql用户名 -->
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value><!-- 指定mysql密码 -->
  </property>
</configuration>
6.初始化hive
cd $HIVE_HOME/bin
./schematool -dbType mysql -initSchema hive hive

7.启动 hive的metastore元数据服务
hive --service metastore
8.启动hive
hive
Exception in thread "main" org.apache.thrift.transport.TTransportException:
# 查看端口情况
lsof -i:9083 
# 再关闭端口即可
kill -9 pid

参考:https://blog.youkuaiyun.com/wodedipang_/article/details/72718138
参考:https://blog.youkuaiyun.com/baixf/article/details/101052279
参考:https://www.cnblogs.com/xibuhaohao/p/11772481.html

<think>好的,我需要帮用户找到在CentOS 7安装配置Hive的教程。首先,根据用户提供的引用内容,有三个引用链接,可能涉及安装Hive、MySQL以及配置过程中遇到的问题。 首先,我应该整理安装步骤。用户提到的引用[1]提到了安装前提、Hive安装、MySQL安装Hive配置和问题处理。这可能是一个分步骤的指南。引用[2]给出了安装MySQL的rpm命令,说明用户可能需要先安装MySQL作为Hive的元数据库。引用[3]涉及配置Hive的环境变量、初始化元数据库以及启动Hive的步骤。 接下来,我需要按照逻辑顺序组织这些步骤。通常,安装Hive前需要安装Java和Hadoop,因为Hive依赖它们。然后安装MySQL作为元数据存储,接着安装Hive并进行配置,最后处理可能出现的问题。 用户的问题是关于CentOS 7的,所以需要确保所有命令和配置都适用于该版本。例如,使用yum安装Java,下载特定版本的Hive配置hive-site.xml等。同时,需要注意配置文件的位置,比如/etc/profile和Hive的conf目录。 另外,用户提供的引用中有初始化元数据库的命令schematool,这一步很关键,容易出错,需要详细说明。可能还需要处理权限问题,比如在MySQL中为Hive创建用户并授权。 在回答中,需要引用用户提供的三个引用,正确标注来源,比如安装步骤参考引用[1],MySQL安装命令参考引用[2],配置和初始化步骤参考引用[3]。同时,确保使用正确的格式,数学表达式用$...$,独立公式用$$...$$,但在这个问题中可能用不到数学公式,但要注意代码块的使用。 最后,生成相关问题,可能涉及性能优化、错误处理、其他组件的集成等,确保问题安装配置相关,帮助用户深入理解。</think>### CentOS 7 Hive安装配置教程 #### 一、安装前提 1. **系统要求**:CentOS 7操作系统,已配置Java环境(建议JDK 8+),安装Hadoop并完成基础配置[^1]。 2. **依赖检查**: - 验证Java版本:`java -version` - 确认Hadoop状态:`hadoop version` #### 二、安装MySQL(Hive元数据库) 1. **下载MySQL RPM包**: ```bash wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm ``` 2. **安装MySQL服务**: ```bash rpm -ivh mysql-community-server-8.0.26-1.el7.x86_64.rpm # 参考引用[2] systemctl start mysqld systemctl enable mysqld ``` 3. **配置MySQL**: - 获取临时密码:`grep &#39;temporary password&#39; /var/log/mysqld.log` - 登录并修改密码: ```sql ALTER USER &#39;root&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;NewPassword123!&#39;; ``` - 创建Hive元数据库及用户: ```sql CREATE DATABASE metastore; CREATE USER &#39;hive&#39;@&#39;%&#39; IDENTIFIED BY &#39;HivePassword123!&#39;; GRANT ALL PRIVILEGES ON metastore.* TO &#39;hive&#39;@&#39;%&#39;; FLUSH PRIVILEGES; ``` #### 三、安装Hive 1. **下载Hive安装包**(以3.1.3版本为例): ```bash wget https://downloads.apache.org/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz tar -xzvf apache-hive-3.1.3-bin.tar.gz -C /opt/ mv /opt/apache-hive-3.1.3-bin /opt/hive ``` 2. **配置环境变量**: ```bash echo &#39;export HIVE_HOME=/opt/hive&#39; >> /etc/profile echo &#39;export PATH=$PATH:$HIVE_HOME/bin&#39; >> /etc/profile source /etc/profile # 参考引用[3] ``` #### 四、Hive配置 1. **修改配置文件`hive-site.xml`**: ```xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.cj.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>HivePassword123!</value> </property> </configuration> ``` 2. **拷贝MySQL驱动到Hive的lib目录**: ```bash cp /path/to/mysql-connector-java-8.0.26.jar $HIVE_HOME/lib/ ``` #### 五、初始化元数据库 ```bash schematool -initSchema -dbType mysql -verbose # 参考引用[3] ``` 若初始化成功,会显示`schemaTool completed`。 #### 六、启动Hive ```bash hive # 直接进入Hive CLI ``` #### 常见问题处理 1. **驱动版本不兼容**:需确保MySQL驱动版本MySQL服务匹配。 2. **权限错误**:检查MySQL用户权限及防火墙设置。 3. **HDFS路径权限**:需在Hadoop中创建`/tmp`和`/user/hive/warehouse`目录并赋权。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Cocktail_py

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值