Hive远程模式安装时server-client端配置

博客记录了查阅资料时找到的讲解较好的博客截图,目的是作为备忘录使用。

以下是在查阅资料时找到的讲解得比较好的博客截图,仅作备忘录使用:
在这里插入图片描述

我在完成Linux中的hive安装配置 请帮我根据文档要求完成操作,以下是我的虚拟机信息. 虚拟机版本:CentOS7 用户名为:root 虚拟机master IP为192.168.128.130 hive路径: /export/server/apache-hive-4.0.0-bin.tar.gz mysql路径: /export/server/mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz 目前我在master虚拟机,当前所在路径:/root 所有操作均在root下完成请给我最详细的操作步骤,我要现成的代码,包括配置文件路径vi /........等等,务必详细,谢谢 一、设置内嵌Derby模式 # 上传解压安装包 cd /export/server/ tar zxvf apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin hive #解决 hadoop、hive 之间 guava 版本差异 cd /export/server/hive rm -rf lib/guava-19.0.jar cp /export/server/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/ #修改 hive 环境变量文件 添加 Hadoop_HOME cd /export/server/hive/conf/ mv hive-env.sh.template hive-env.sh vim hive-env.sh export HADOOP_HOME=/export/server/hadoop export HIVE_CONF_DIR=/export/server/hive/conf export HIVE_AUX_JARS_PATH=/export/server/hive/lib #初始化 metadata cd /export/server/hive bin/schematool -dbType derby -initSchema #启动 hive 服务 bin/hive 二、设置直连数据库模式 略 三、设置远程服务器模式 1.安装MySQL 2.hive安装 # 上传解压安装包 cd /export/server/ tar zxvf apache-hive-3.1.2-bin.tar.gz mv apache-hive-3.1.2-bin hive #解决 hadoop、hive 之间 guava 版本差异 cd /export/server/hive rm -rf lib/guava-19.0.jar cp /export/server/hadoop-3.1.4/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/ #添加 mysql jdbc 驱动到 hive 安装包 lib/文件下 mysql-connector-java-5.1.32.jar #修改 hive 环境变量文件 添加 Hadoop_HOME cd /export/server/hive/conf/ mv hive-env.sh.template hive-env.sh vim hive-env.sh export HADOOP_HOME=/export/server/hadoop export HIVE_CONF_DIR=/export/server/hive/conf export HIVE_AUX_JARS_PATH=/export/server/hive/lib #新增 hive-site.xml 配置 mysql 等相关信息 vim hive-site.xml #初始化 metadata cd /export/server/hive bin/schematool -initSchema -dbType mysql -verbos #初始化成功会在 mysql 中创建 74 张表 3. hive-site.xml 配置 mysql 等相关信息 <configuration> <!-- 存储元数据 mysql 相关配置 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value> jdbc:mysql://Master:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</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>123456</value> </property> <!-- H2S 运行绑定 host --> <property> <name>hive.server2.thrift.bind.host</name> <value>Master</value> </property> <!-- 远程模式部署 metastore 服务地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://Master:9083</value> </property> <!-- 关闭元数据存储授权 --> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- 关闭元数据存储版本的验证 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> </configuration> 4.初始化 metadata cd /export/server/hive bin/schematool -initSchema -dbType mysql -verbos 若格式化失败 Hive 重新格式化 1. 删除用户目录:首先,需要删除用户目录中的所有内容。hdfs dfs -rm -r /user/ 2. 删除 Hive 数据库:接下来,删除 Hive 格式化过程中创建的 Hive 数据库。 mysql> drop database hive; 3. 重新格式化:最后,使用 schematool 命令重新初始化 Hive 的元数据。 5.远程模式 Metastore 服务手动启动 前台启动 关闭 ctrl+c /export/server/hive/bin/hive --service metastore #后台启动 进程挂起 关闭使用 jps + kill #输入命令回车执行 再次回车 进程将挂起后台 nohup /export/server/hive/bin/hive --service metastore & #前台启动开启 debug 日志 /export/server/hive/bin/hive --service metastore --hiveconf hive.root.logger=DEBUG,console 6.Hive Client 使用 /export/server/hive/bin/hive 7.其他机器上通过 bin/hive 访问 hive metastore 服务 如果需要在其他机器上通过 bin/hive 访问 hive metastore 服务,只需要在 该机器的 hive-site.xml 配置中添加 metastore 服务地址即可。 #前提步骤 将hive安装包发送各节点,并配置环境变量 scp -r /export/server/hive slave1:/export/server scp -r /export/server/hive slave2:/export/server #将环境变量发送到slave1、slave2,去对应节点source /etc/profile scp -r /etc/profile slave2:/etc scp -r /etc/profile slave3:/etc 修改salve1和slave2的配置文件 <configuration> <property> <name>hive.metastore.uris</name> <value>thrift://Master:9083</value> </property> </configuration> 测试是否能够访问 cd …/ /export/server/hive/bin/hive show databases
最新发布
11-05
# 题目重述 根据提供的文档要求,在 CentOS7 虚拟机(IP: 192.168.128.130,用户名:root)上完成 Apache Hive 4.0.0 的安装配置,包括设置 Derby 内嵌模式、MySQL 直连模式远程 Metastore 模式。需提供完整操作命令和配置文件路径。 --- # 详解 ### ✅ **1. 设置内嵌 Derby 模式** #### 步骤 1:解压 Hive 安装包 ```bash cd /export/server/ tar zxvf apache-hive-4.0.0-bin.tar.gz mv apache-hive-4.0.0-bin hive ``` #### 步骤 2:解决 Guava 版本冲突 ```bash cd /export/server/hive rm -rf lib/guava-*.jar cp /export/server/hadoop/share/hadoop/common/lib/guava-27.0-jre.jar ./lib/ ``` > ⚠️ 确保 Hadoop 已安装在 `/export/server/hadoop`,否则请修改路径或先安装 Hadoop。 #### 步骤 3:配置 `hive-env.sh` ```bash cd /export/server/hive/conf cp hive-env.sh.template hive-env.sh vim /export/server/hive/conf/hive-env.sh ``` 在文件末尾添加以下内容: ```bash export HADOOP_HOME=/export/server/hadoop export HIVE_CONF_DIR=/export/server/hive/conf export HIVE_AUX_JARS_PATH=/export/server/hive/lib ``` #### 步骤 4:初始化 Derby 元数据库 ```bash cd /export/server/hive bin/schematool -dbType derby -initSchema ``` #### 步骤 5:启动 Hive CLI ```bash bin/hive ``` 此将进入 Hive 命令行界面,Derby 模式仅支持单会话,不适用于生产环境。 --- ### ✅ **2. 安装 MySQL 并配置直连模式(基于 MySQL)** #### 步骤 1:安装 MySQL ##### 解压 MySQL ```bash cd /export/server/ tar -xzf mysql-5.7.43-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.43-linux-glibc2.12-x86_64 mysql ``` ##### 创建用户组和用户 ```bash groupadd mysql useradd -r -g mysql mysql ``` ##### 修改权限 ```bash chown -R mysql:mysql /export/server/mysql chmod -R 755 /export/server/mysql ``` ##### 初始化数据库 ```bash cd /export/server/mysql ./bin/mysqld --initialize --user=mysql --basedir=/export/server/mysql --datadir=/export/server/mysql/data ``` > 记录生成的临密码(如:`A temporary password is generated for root@localhost: abc123!`) ##### 启动 MySQL ```bash ./support-files/mysql.server start ``` ##### 添加到系统服务(可选) ```bash cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on ``` ##### 设置环境变量 ```bash echo 'export PATH=$PATH:/export/server/mysql/bin' >> /etc/profile source /etc/profile ``` ##### 登录并修改密码 ```bash mysql -u root -p ``` 输入临密码后执行: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; EXIT; ``` #### 步骤 2:下载并添加 MySQL JDBC 驱动 ```bash cd /export/server/ wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.49/mysql-connector-java-5.1.49.jar cp mysql-connector-java-5.1.49.jar /export/server/hive/lib/ ``` > 若无法 wget,请手动上传 `mysql-connector-java-5.1.32.jar` 或更高版本至 `/export/server/`。 --- ### ✅ **3. 配置远程 Metastore 模式(推荐)** #### 步骤 1:创建 Hive 元数据数据库 ```bash mysql -u root -p ``` 输入密码后执行: ```sql CREATE DATABASE IF NOT EXISTS hive CHARACTER SET utf8 COLLATE utf8_general_ci; GRANT ALL PRIVILEGES ON hive.* TO 'root'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; EXIT; ``` #### 步骤 2:配置 `hive-site.xml` ```bash vim /export/server/hive/conf/hive-site.xml ``` 写入以下内容: ```xml <configuration> <!-- 存储元数据 MySQL 相关配置 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.128.130:3306/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</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>123456</value> </property> <!-- Hiveserver2 绑定地址 --> <property> <name>hive.server2.thrift.bind.host</name> <value>192.168.128.130</value> </property> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> <!-- 远程 Metastore 服务地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://192.168.128.130:9083</value> </property> <!-- 关闭元数据存储验证 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <!-- 允许通过 JDBC 访问 --> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- 数据仓库目录 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> </configuration> ``` #### 步骤 3:初始化 MySQL 元数据 ```bash cd /export/server/hive bin/schematool -initSchema -dbType mysql -verbose ``` > 若提示连接失败,请检查 MySQL 是否允许远程访问、防火墙是否关闭、JDBC 驱动是否存在。 #### 步骤 4:启动 Metastore 服务(后台运行) ```bash nohup /export/server/hive/bin/hive --service metastore > /export/server/hive/logs/metastore.log 2>&1 & ``` > 日志输出至 `logs/metastore.log`,便于排查错误。 #### 步骤 5:启动 HiveServer2(可选,用于 JDBC 连接) ```bash nohup /export/server/hive/bin/hive --service hiveserver2 > /export/server/hive/logs/hiveserver2.log 2>&1 & ``` --- ### ✅ **4. 使用 Hive 客户** ```bash /export/server/hive/bin/hive ``` 测试: ```sql SHOW DATABASES; CREATE TABLE test(id INT); DROP TABLE test; ``` --- ### ✅ **5. 在其他节点使用 Hive(Slave 节点配置)** #### 将 Hive 安装包复制到从节点 ```bash scp -r /export/server/hive slave1:/export/server/ scp -r /export/server/hive slave2:/export/server/ ``` #### 同步环境变量 ```bash echo 'export HIVE_HOME=/export/server/hive' >> /etc/profile echo 'export PATH=$PATH:$HIVE_HOME/bin' >> /etc/profile source /etc/profile ``` 然后发送到从节点: ```bash scp /etc/profile slave1:/etc/ scp /etc/profile slave2:/etc/ ``` 在 `slave1` 和 `slave2` 上执行: ```bash source /etc/profile ``` #### 修改从节点 `hive-site.xml` 只需保留如下配置(指定 Metastore 地址): ```xml <configuration> <property> <name>hive.metastore.uris</name> <value>thrift://192.168.128.130:9083</value> </property> </configuration> ``` #### 测试连接 ```bash hive SHOW DATABASES; ``` --- # ❗常见问题处理 ### 🔹 初始化失败:`ClassNotFoundException: com.mysql.jdbc.Driver` - 原因:缺少 MySQL JDBC 驱动。 - 解决:确认已将 `mysql-connector-java-x.x.xx.jar` 放入 `$HIVE_HOME/lib/`。 ### 🔹 连接被拒绝:`Access denied for user 'root'@'ip'` - 解决:确保授权 `%` 用户: ```sql GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; ``` ### 🔹 格式化失败后重新初始化 ```bash # 删除 HDFS 上的元数据目录(如果存在) hdfs dfs -rm -r /user/hive # 删除 MySQL 中的数据库 mysql -u root -p -e "DROP DATABASE IF EXISTS hive; CREATE DATABASE hive CHARACTER SET utf8;" ``` 再重新运行: ```bash schematool -initSchema -dbType mysql -verbose ``` --- # 知识点 - **Hive 元数据管理机制**:Hive 使用 Metastore 存储表结构等元信息,可使用 Derby(本地)、MySQL(远程)等方式存储。 - **JDBC 驱动集成原理**:Java 应用通过 JDBC 驱动连接数据库,需将对应 jar 包放入 classpath(即 lib 目录)。 - **Metastore 远程服务模式**:通过 `thrift://host:port` 提供元数据服务,实现多客户共享元数据,适合集群部署。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值