Linux环境下Hive4.0.0(最新版本)部署

 前置依赖部署

Linux环境下Hadoop3.4.0(最新版本)集群部署-CSDN博客

Linux环境下部署MySQL8数据库-CSDN博客

官方地址:Apache Hive

重大变化:Hive4.0.0中,HiveCLI已经被弃用了,代替它的是Beeline。所以,启动Hive4.0.0时,会默认进入Beeline命令行界面,而不是HiveCLI

1、下载安装包:apache-hive-4.0.0-bin.tar.gz

下载路径:Index of /hive/hive-4.0.0

2、解压软件

将apache-hive-4.0.0-bin.tar.gz上传至linux系统/usr/local/soft/路径下

cd /usr/local/soft/
tar -zxvf apache-hive-4.0.0-bin.tar.gz

3、修改系统环境变量

vim /etc/profile

添加内容:

export HIVE_HOME=/usr/local/soft/apache-hive-4.0.0-bin
export PATH=$PATH:$HADOOP_HOME/sbin:$HIVE_HOME/bin

保存:

source /etc/profile

4、修改hive环境变量

cd /usr/local/soft/apache-hive-4.0.0-bin/bin/

编辑hive-config.sh文件

vi hive-config.sh

新增内容:

export JAVA_HOME=/usr/local/soft/jdk1.8.0_381
export HIVE_HOME=/usr/local/soft/apache-hive-4.0.0-bin
export HADOOP_HOME=/usr/local/soft/hadoop-3.4.0
export HIVE_CONF_DIR=/usr/local/soft/apache-hive-4.0.0-bin/conf

5、拷贝hive配置文件

cd /usr/local/soft/apache-hive-4.0.0-bin/conf/
cp hive-default.xml.template hive-site.xml

6、修改Hive配置文件,找到对应的位置进行修改

可以直接全部替换

<configuration>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.cj.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>root123</value>
    <description>password to use against metastore database</description>
  </property>
<property>
    <name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.1.5:3306/hive?useUnicode=true&amp;characterEncoding=utf8&amp;useSSL=false&amp;serverTimezone=GMT</value>
    <description>
      JDBC connect string for a JDBC metastore.
      To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
      For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
    </description>
  </property>
  <property>
    <name>datanucleus.schema.autoCreateAll</name>
    <value>true</value>
    <description>Auto creates necessary schema on a startup if one doesn't exist. Set this to false, after creating it once.To enable auto create also set hive.metastore.schema.verification=false. Auto creation is not recommended for production use cases, run schematool command instead.</description>
  </property>
<property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>
  </property>
<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/usr/local/soft/apache-hive-4.0.0-bin/tmp/${user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>
  <property>
<name>system:java.io.tmpdir</name>
<value>/usr/local/soft/apache-hive-4.0.0-bin/iotmp</value>
<description/>
</property>

  <property>
    <name>hive.downloaded.resources.dir</name>
<value>/usr/local/soft/apache-hive-4.0.0-bin/tmp/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>
<property>
    <name>hive.querylog.location</name>
    <value>/usr/local/soft/apache-hive-4.0.0-bin/tmp/${system:user.name}</value>
    <description>Location of Hive run time structured log file</description>
  </property>
  <property>
    <name>hive.server2.logging.operation.log.location</name>
<value>/usr/local/soft/apache-hive-4.0.0-bin/tmp/${system:user.name}/operation_logs</value>
    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  </property>
  <property>
    <name>hive.metastore.db.type</name>
    <value>mysql</value>
    <description>
      Expects one of [derby, oracle, mysql, mssql, postgres].
      Type of database used by the metastore. Information schema &amp; JDBCStorageHandler depend on it.
    </description>
  </property>
  <property>
    <name>hive.cli.print.current.db</name>
    <value>true</value>
    <description>Whether to include the current database in the Hive prompt.</description>
  </property>
  <property>
    <name>hive.cli.print.header</name>
    <value>true</value>
    <description>Whether to print the names of the columns in query output.</description>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>
<property>  
  <name>hive.metastore.uris</name>  
  <value>thrift://192.168.1.11:9083</value>  
</property>  
    <property>
        <name>hive.metastore.event.db.notification.api.auth</name>
        <value>false</value>
    </property>
    <property>
        <name>hive.server2.thrift.bind.host</name>
        <value>node11</value>
    </property>

    <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    </property>
</configuration>

7、上传mysql驱动包到/usr/local/soft/apache-hive-4.0.0-bin/lib/文件夹下

驱动包:mysql-connector-java-8.0.15.zip,解压后从里面获取jar包

8、确保 mysql数据库中有名称为hive的数据库,字符集须设置latin1,否则的话hive表删除会卡死

9、初始化初始化元数据库

schematool -dbType mysql -initSchema

10、确保Hadoop启动

node11上执行以下命令

start-all.sh

11、启动服务

重大变化:Hive4.0.0中,HiveCLI已经被弃用了,代替它的是Beeline。所以,启动Hive4.0.0时,会默认进入Beeline命令行界面,而不是HiveCLI

使用Beeline命令行连接Hive服务之前,需要确保以下服务已经启动和配置:

服务

说明

执行命令

Hadoop

Hive需要依赖Hadoop服务来运行,因此需要确保Hadoop服务已经启动,并且配置文件中的相关参数正确。

start-all.sh

Hive Metastore

Hive Metastore是Hive的元数据存储服务,需要确保Metastore服务已经启动,并且在Beeline的配置文件中正确配置了Metastore的地址。

hive --service metastore

HiveServer2

HiveServer2是Hive的查询服务,需要确保HiveServer2服务已经启动,并且在Beeline的配置文件中正确配置了HiveServer2的地址。

hive --service hiveserver2

启动元数据服务 

hive --service metastore

或(此种方式后续不需要另起Shell)

hive --service metastore 2>&1 &

启动hiveserver2服务(另起shell窗口)

hiveserver2

 或

hive --service hiveserver2

12、启动beeline客户端 

在新的窗口里面执行hive 或者beeline命令

输入: 

!connect jdbc:hive2://node11:10000

或者直接输入如下内容启动客户端 

beeline -u jdbc:hive2://node11:10000 -n root

FAQ

Exception in thread "main" MetaException(message:JDOFatalInternalException: Index/candidate part #0 for `CTLGS` already set
Root cause: org.datanucleus.exceptions.NucleusException: Index/candidate part #0 for `CTLGS` already set)

 

解决方案:

cp /usr/local/soft/hadoop-3.4.0/share/hadoop/hdfs/lib/guava-27.0-jre.jar /usr/local/soft/apache-hive-4.0.0-bin/lib/

或检查hadoop的core-site.xml是否有如下内容

  </property>
      <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>

beeline启动失败 

解决方案:可尝试多连接几次 

<think>好的,用户现在问的是“linux中下载hive”,我需要先确定用户指的是哪个Hive。之前用户已经问过Hive的镜像,我介绍了两种场景:Apache HiveHive区块链。现在用户可能是在继续探讨Apache Hive安装,或者是区块链相关的Hive节点下载。不过考虑到在Linux中下载Hive通常指的是大数据工具Apache Hive,所以应该先从这个角度入手。 首先,我需要回顾之前的对话,用户之前询问的是镜像,现在转到下载,可能需要更详细的步骤指导。用户可能是在Linux环境下需要安装Hive,所以需要分步骤说明如何下载和安装Apache Hive。同时,用户可能对Linux环境不熟悉,所以需要给出明确的命令和注意事项,比如Java环境、Hadoop的依赖等。 接下来,我应该考虑用户可能的场景。如果用户是开发者或数据工程师,可能需要在生产环境或测试环境中搭建Hive。这时候需要指导他们如何通过镜像源下载,比如使用阿里云或腾讯云的镜像加速,避免从官网下载速度慢的问题。同时,可能还需要提到依赖环境,比如安装Java、Hadoop,并配置环境变量。另外,用户可能不知道如何选择版本,需要给出建议,比如推荐稳定版本3.1.3。 另外,用户可能更倾向于使用Docker来快速部署,特别是对于测试环境,所以需要补充Docker的安装方法,比如使用bde2020/hive镜像,这样方便集成Hadoop和Hive,减少配置的麻烦。这时候需要给出具体的docker pull命令和运行示例,以及如何进入Hive命令行。 还需要注意,用户可能会遇到下载后的配置问题,比如hive-site.xml的配置,元数据库的设置(默认Derby,但生产环境用MySQL),所以需要简要提及这些步骤,并提供参考链接供用户进一步查阅。 另外,校验文件完整性也是一个重要步骤,特别是安全考虑,需要教用户如何使用sha256sum校验,避免下载到被篡改的文件。同时,提醒国内用户使用镜像源加速下载,这能提升用户体验,减少等待时间。 最后,需要总结不同方法的适用场景,比如生产环境推荐使用解压安装,测试环境用Docker,这样用户可以根据自己的需求选择合适的方式。同时,提供验证安装是否成功的命令,比如hive --version,让用户确认安装完成。 整个过程中,需要保持回答结构清晰,步骤详细,代码示例准确,并且给出注意事项和建议,帮助用户避免常见错误。同时,考虑到用户可能的后续操作,比如配置元数据库,可以提供进一步指导的提示,但不过于深入,保持回答的简洁性。</think>以下是在Linux系统中下载Apache Hive的详细指南,包含多种场景的解决方案: ### 一、基础环境准备 1. **依赖安装**: ```bash # 安装Java(需JDK 8+) sudo apt install openjdk-11-jdk # 安装Hadoop(需Hadoop 2.x/3.x) wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz ``` 2. **环境变量配置**: ```bash # 编辑 ~/.bashrc 添加: export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 export HADOOP_HOME=/path/to/hadoop export PATH=$PATH:$HADOOP_HOME/bin ``` ### 二、Hive下载与安装 #### 方法1:直接下载(推荐国内镜像) ```bash # 使用阿里云镜像(速度更快) wget https://mirrors.aliyun.com/apache/hive/hive-3.1.3/apache-hive-3.1.3-bin.tar.gz # 解压并重命名 tar -zxvf apache-hive-3.1.3-bin.tar.gz -C /opt/ mv /opt/apache-hive-3.1.3-bin /opt/hive ``` #### 方法2:Docker部署(适合快速测试) ```bash # 拉取集成Hadoop的Hive镜像 docker pull bde2020/hive:2.3.9-postgresql-metastore # 运行容器(自动启动HiveServer2) docker run -d --name hive \ -p 10000:10000 -p 10002:10002 \ bde2020/hive:2.3.9-postgresql-metastore ``` ### 三、配置与验证 1. **Hive环境配置**: ```bash # 创建配置文件 cd /opt/hive/conf cp hive-default.xml.template hive-site.xml # 编辑hive-site.xml,设置元数据存储: <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=metastore_db;create=true</value> </property> ``` 2. **初始化元数据库**: ```bash schematool -dbType derby -initSchema ``` 3. **启动验证**: ```bash # 启动Hive CLI hive > SHOW DATABASES; # 应显示default数据库 ``` ### 四、版本选择建议 | 版本类型 | 推荐版本 | 适用场景 | |------------|----------|-------------------------| | 稳定版 | 3.1.3 | 生产环境 | | 最新版 | 4.0.0 | 新特性测试 | | 兼容版 | 2.3.9 | 老旧Hadoop集群兼容 | ### 五、注意事项 1. **元数据存储**: - 开发环境可使用Derby(单用户模式) - 生产环境必须换用MySQL/PostgreSQL: ```bash # 示例MySQL配置 <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost/metastore?createDatabaseIfNotExist=true</value> </property> ``` 2. **权限管理**: ```bash # 创建Hive专用用户 sudo useradd -r -s /bin/false hiveuser sudo chown -R hiveuser:hiveuser /opt/hive ``` 3. **日志监控**: ```bash # 查看实时日志 tail -f /opt/hive/logs/hive.log ``` ### 六、下载校验(安全必备) ```bash # 获取官方校验码(需访问官网查看) # 计算下载文件的SHA256 echo "expected_sha256 *apache-hive-3.1.3-bin.tar.gz" | sha256sum -c - ``` > **生产环境建议**:通过CDN加速下载时,推荐使用华为云镜像 `https://mirrors.huaweicloud.com/apache/hive/`
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

源图客

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

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

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

打赏作者

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

抵扣说明:

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

余额充值