Mac安装Hive

Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL语句转变成MapReduce任务来执行。Hive的优点是学习成本低,可以通过类似SQL语句实现快速MapReduce统计,使MapReduce变得更加简单,而不必开发专门的MapReduce应用程序。hive是十分适合数据仓库的统计分析和Windows注册表文件。

1. 安装

安装Hive之前先要安装Hadoop,请参考 Mac Hadoop安装

brew install hive

2. 配置环境变量

export HIVE_HOME=/usr/local/Cellar/hive/3.1.2
export PATH=$HIVE_HOME/bin:$PATH

3. 在命令行中输入hive命令

在命令行中输入hive直接回车,正常情况下会出现hive >表示成功,但很可能会报错:

  • Exception in thread “main” java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V 此问题是应为Hadoop中的Guava-xxx.jar和Hive中的Guava-xxx.jar版本不一致造成的,解决办法就是看Hadoop和Hive中的那个Guava-xxx.jar版本号高,将高版本的覆盖掉低版本的,让Hadoop和Hive的版本完全一致。版本号统一之后重新启动Hadoop。
  • Exception in thread “main” java.lang.ClassCastException: java.base/jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to java.base/java.net.URLClassLoader 这个是JDK版本的问题,不要使用jdk1.9+, 解决办法是配置hadoop中使用jdk1.8版本,需要在libexec/etc/hadoop/hadoop-env.sh 中配置JAVA_HOME export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_141.jdk/Contents/Home配置完需要重启Hadoop。

4. 创建数据库

在MySQL中创建metastore数据库, 可以通过终端、Navicat等数据库客户端来创建一个数据库。

mysql> create database metastore;

# 可以创建一个用户也可以直接使用root账号,此步骤可以省略
mysql> create user 'hive'@'localhost' identified by '123456';
mysql> grant select,insert,update,delete,alter,create,index,references on metastore.* to 'hive'@'localhost';
mysql> flush privileges;

5. 下载MySQL驱动包

打开MySQL官网选择 Platform Independent --> Download -> 解压 -> 将mysql-connector-java-8.0.19.jar放入到/usr/local/Cellar/hive/3.1.2/libexec/lib目录下
在这里插入图片描述

6. 配置 hive-site.xml

在/usr/local/Cellar/hive/3.1.2/libexec/conf目录下创建hive-site.xml文件(注意该文件并不存在,需要手动创建)。

<configuration>
  
  <property>
        <name>hive.metastore.local</name>
        <value>true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost:3306/metastore</value>
    </property>
 
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.cj.jdbc.Driver</value>
    </property>
  <!--mysql用户名-->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
  <!--mysql密码-->
  <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root123</value>
    </property>
 
	<!-- hive用来存储不同阶段的map/reduce的执行计划的目录,同时也存储中间输出结果
	,默认是/tmp/<user.name>/hive,我们实际一般会按组区分,然后组内自建一个tmp目录存>储 -->
 
    <property>
        <name>hive.exec.local.scratchdir</name>
        <value>/tmp/hive</value>
    </property>
    <property>
        <name>hive.downloaded.resources.dir</name>
            <value>/tmp/hive</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/data/hive/warehouse</value>
    </property>
    <property>
        <name>hive.server2.logging.operation.log.location</name>
        <value>/tmp/hive</value>
    </property>
 
</configuration>

7. 初始化metastore数据库

数据库初始化之后会生成很多张表。

cd /usr/local/Cellar/hive/3.1.2/libexec/bin
schematool -initSchema -dbType mysql

在这里插入图片描述

8. 运行hive

有些hql是需要启动metastore服务的,所以最好先启动metastore服务。

 ./hive --service metastore &

在终端中直接输入hive命令

hive> show databases;
OK
default
Time taken: 1.098 seconds, Fetched: 1 row(s)

在这里插入图片描述

### Hive 安装与配置教程 (适用于 MacOS) #### 准备工作 确保已安装 MySQL 数据库并创建好用于存储元数据的数据库实例。对于 Mac 用户来说,可以通过 DMG 或 Homebrew 来完成 MySQL 的部署[^1]。 #### 下载 Hive 前往 Apache 官方网站获取最新版本的 Hive 压缩包,并将其解压至合适位置: ```bash tar -xzvf apache-hive-x.x.x-bin.tar.gz -C /usr/local/ ``` #### 设置环境变量 编辑 `~/.bash_profile` 或者 `~/.zshrc` 文件来设置 HIVE_HOME 和 PATH 变量: ```bash export HIVE_HOME=/usr/local/apache-hive-x.x.x-bin export PATH=$PATH:$HIVE_HOME/bin source ~/.bash_profile # 如果使用的是 zsh,则 source ~/.zshrc ``` #### 创建必要的目录结构 进入 Hive 解压后的根目录,执行如下命令以建立所需的文件夹路径: ```bash mkdir -p ${HIVE_HOME}/logs chmod a+w ${HIVE_HOME}/logs ``` #### 修改配置文件 在 `${HIVE_HOME}/conf/` 路径下新建名为 `hive-site.xml` 的 XML 配置文档,并填入相应的 JDBC URL 地址以及认证信息以便于连接外部 MySQL 实例作为 Metastore 存储引擎[^3]: ```xml <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?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>hive</value> </property> </configuration> ``` 注意:上述 `<value>` 字段中的 "hive" 应替换为实际使用的用户名和密码组合;同时确认所指定端口号 (`3306`) 是否正确无误[^4]。 #### 初始化 Schema 启动 MySQL 并授予适当权限给 Hive 用户账户访问本地主机上的所有资源: ```sql grant all on *.* to hive@'%' identified by 'your_password'; flush privileges; exit; ``` 接着切换回终端界面,通过以下指令初始化 Hive 表结构定义语句集: ```bash schematool -dbType mysql -initSchema ``` 此时应当能够顺利地利用 Beeline CLI 工具测试新搭建的服务是否正常运作了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

风流 少年

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

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

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

打赏作者

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

抵扣说明:

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

余额充值