Hive远程模式

本文详细介绍如何在MySQL中创建数据库以存放Hive元数据,包括账号权限设置、Hive安装与配置步骤、环境变量设置及hive-site.xml配置等关键环节。


1下载并安装MySQL并启动服务(我的MySQL安装在宿主机Windows下)

2在MySQL中建立数据库用于存放Hive元数据,并为为数据库建立账号,并赋予需要的权限

3下载并解压Hive

4为Hive配置环境变量

5配置hive-config.sh文件

6配置hive-site.xml文件,并配置MySQL连接信息

7把mysql-connector-java-x.x.x.jar 复制到Hive的lib目录下

8启动Hive

9验证Hive是否启动成功


1下载并安装MySQL并启动服务(我的MySQL安装在宿主机Windows下)


2在MySQL中为Hive建立远程账号,并赋予需要的权限

bin/mysql -u root

新建数据库hive
create database hive;
验证
show databases;

为hive增加使用用户

格式:grant all privileges on 数据库.* to 用户名@登录主机 identified by "密码"
给远程权限
grant all privileges on *.* to hive@'%' identified by "hive" ;

给本地权限
grant all privileges on *.* to hive@localhost identified by "hive";

验证hive用户权限:

bin/mysql  -u hive

输入密码 hive
show datebases;

3下载并解压Hive

我是用的hive版本是 hive-0.9.0.tar.gz
tar -zxvf hive-0.9.0.tar.gz
rm -rf hive-0.9.0.tar.gz
cp hive-0.9.0 /home/hadoop/hive

4为Hive配置环境变量

我们把环境变量配置给 hadoop用户 而不再配置全局的,以免scp时切换用户麻烦

vi  ~/.bash_profile
加入下面两行
export  HIVE_HOME=/home/hadoop/hive
export
 PATH=$PATH:$HIVE_HOME/bin

source  ~/.bash_profile 使环境变量生效

5配置hive-config.sh文件

export  JAVA_HOME=/usr/local/jdk1.6.0_24
export  HADOOP_HOME=/home/hadoop/hadoop-1.1.2
export  HIVE_HOME=/home/hadoop/hive

6配置hive-site.xml文件,并配置MySQL连接信息

先复制默认的,然后再修改

cp  /home/hadoop/hive/conf/hive-default.xml.template  /home/hadoop/hive/conf/hive-site.xml

然后修改下列属性


<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.local</name> 
  <value>false</value> 
</property> 
   
<property> 
<name>javax.jdo.option.ConnectionURL</name> 
  <value>jdbc:mysql://192.168.80.100:3306/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;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>hive</value>  
</property>  
     
<property>  
  <name>javax.jdo.option.ConnectionPassword</name>  
  <value>hive</value>  
</property>

<property>
<name>hive.metastore.uris</name>
<value>thrift://127.0.0.1:9083</value>
</property>


<!--从这里开始下面的可以不要-->

<property>
<name>hive.stats.dbclass</name>
<value>jdbc:mysql</value>
<description>The default database that stores temporary hive statistics.</description>
</property>

<property>
  <name>hive.stats.jdbcdriver</name>
  <value>com.mysql.jdbc.Driver</value>
  <description>The JDBC driver for the database that stores temporary hive statistics.</description>
</property>

<property>
  <name>hive.stats.dbconnectionstring</name>
  <value>jdbc:mysql://192.168.80.1:3306/hivestat?useUnicode=true&characterEncoding=utf-8$amp;user=hive&password=hive$amp;createDatabaseIfNotExist=true</value>
  <description>The default connection string for the database that stores temporary hive statistics.</description>
</property>

7把mysql-connector-java-x.x.x.jar 复制到Hive的lib目录下

8启动Hive

bin/hive --service metastore &
bin/hive --service hiveserver &

然后启动hive

bin/hive

9验证Hive是否配置成功

hive>show tables; 

10遇到的问题。
下班了,有时间再补充。。

<think> 根据用户的问题,他需要Hive远程模式安装并集成MySQL的详细步骤。结合提供的引用内容,我将整理出一个清晰的步骤指南。注意,用户要求使用中文回答,并且按照系统级指令处理格式。 步骤将包括: 1. 环境准备:确保Hadoop集群正常运行,MySQL安装在某个节点上。 2. 安装Hive:在作为Hive服务器和客户端的节点上安装Hive。 3. 配置Hivehive-site.xml):设置远程模式,连接MySQL作为元数据存储。 4. MySQL配置:创建数据库和用户,并授权。 5. 启动Hive服务并验证。 由于引用中提供了多个来源,我将整合它们,确保步骤连贯。同时,我会在关键步骤后添加引用标识。 详细步骤如下: </think>### Hive远程模式安装及集成MySQL详细步骤 以下是Hive远程模式安装并集成MySQL作为元数据存储的完整流程,结合Hadoop集群环境(以三台节点为例:`master`(客户端)、`slave1`(Hive Server)、`slave2`(MySQL元数据库)): --- #### **1. 环境准备** - **Hadoop集群**:确保HDFS和YARN已启动(在`master`节点操作): ```bash start-dfs.sh && start-yarn.sh jps # 验证NameNode、DataNode、ResourceManager等进程 ``` - **MySQL安装**(在`slave2`节点操作): ```bash yum install mysql-server -y systemctl start mysqld mysql_secure_installation # 设置root密码(例如:123456) ``` --- #### **2. Hive安装(所有节点)** 1. 下载Hive(以1.2.1版本为例)并解压: ```bash tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /usr/local/ ln -s /usr/local/apache-hive-1.2.1-bin /usr/local/hive ``` 2. 配置环境变量(`/etc/profile`): ```bash export HIVE_HOME=/usr/local/hive export PATH=$PATH:$HIVE_HOME/bin source /etc/profile # 立即生效 ``` --- #### **3. 配置Hive远程模式(关键步骤)** > **目标**:`slave1`作为Hive Server,`slave2`存储元数据至MySQL,`master`作为客户端访问。 1. **修改`hive-site.xml`**(在`slave1`和`master`节点的`$HIVE_HOME/conf/`下配置): ```xml <configuration> <!-- 连接MySQL元数据库 --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://slave2:3306/hive_meta?createDatabaseIfNotExist=true</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> <!-- Hive数据在HDFS的存储路径 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> <!-- 启用远程模式,指定Hive Server地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://slave1:9083</value> </property> </configuration> ``` > 📌 注意:需将MySQL驱动包(如`mysql-connector-java-5.1.47.jar`)放入`$HIVE_HOME/lib/`目录[^2][^4]。 2. **在MySQL创建元数据库**(在`slave2`节点操作): ```sql CREATE DATABASE hive_meta; GRANT ALL PRIVILEGES ON hive_meta.* TO 'root'@'%' IDENTIFIED BY '123456'; FLUSH PRIVILEGES; ``` --- #### **4. 启动服务并验证** 1. **启动Hive元数据服务**(在`slave1`节点操作): ```bash hive --service metastore & # 后台启动 netstat -tunlp | grep 9083 # 确认端口监听 ``` 2. **客户端访问**(在`master`节点操作): ```bash hive # 进入Hive CLI > CREATE TABLE test (id INT); # 测试建表 > SHOW TABLES; # 验证表是否存在 ``` 3. **检查MySQL元数据**(在`slave2`节点操作): ```sql USE hive_meta; SHOW TABLES; # 应看到DBS、TBLS等元数据表 ``` --- #### **5. 常见问题解决** - **连接MySQL失败**:检查防火墙、MySQL远程访问权限(`GRANT`语句需包含`%`)。 - **HDFS权限问题**:手动创建仓库目录并授权: ```bash hadoop fs -mkdir -p /user/hive/warehouse hadoop fs -chmod g+w /user/hive/warehouse ``` - **驱动包不兼容**:使用与MySQL版本匹配的JDBC驱动[^2]。 --- > **核心要点**:远程模式的核心是分离元数据存储(MySQL)和Hive服务(thrift协议),实现多客户端访问[^3][^4]。安装后可通过`hive.metastore.uris`动态切换服务节点。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值