首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mac系统下安装hive

Mac系统下安装hive

作者头像
IT咸鱼
发布2025-05-20 18:08:16
发布2025-05-20 18:08:16
18000
代码可运行
举报
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
复制
Mac版本:10.13.6
Hadoop版本:3.1.1
Mac下面配置hadoop 3.1.1

在MAC上安装MySQL和Workbench

在安装hive之前需要安装hadoop,因为hive本身并没有提供数据存储功能。它的数据是存储在hadoop的HDFS上面的。安装hadoop的方法见上面的链接。

其次,hive的元数据是存储在数据库上面的,一般是MySql。数据库的安装方法见上面的链接。

brew install hive

在命令行中输入上面的代码就可以直接安装hive了。前提是要先安装了homebrew。

接着配置环境变量,在命令行中打开bash_profile文件

代码语言:javascript
代码运行次数:0
运行
复制
vim ~/.bash_profile

在里面添加下面几行:

代码语言:javascript
代码运行次数:0
运行
复制
export HIVE_HOME=/usr/local/Cellar/hive/3.1.1
export PATH=$HIVE_HOME/bin:$PATH

保存退出以后输入source ~/.bash_profile, 更新环境变量。然后在命令行中输入hive,就可以看到下面的信息了。

代码语言:javascript
代码运行次数:0
运行
复制
Logging initialized using configuration in jar:file:/usr/local/Cellar/hive/3.1.1/libexec/lib/hive-common-3.1.1.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X releases.
hive>

接下来就要配置MySQL作为hive的元数据存储数据库。

在数据库里面新建一个database

代码语言:javascript
代码运行次数:0
运行
复制
mysql> create database metastore;

然后进入/usr/local/Cellar/hive/3.1.1/libexec/conf 目录下,键入vim hive-site.xml, 将下面的代码粘贴进去。

代码语言:javascript
代码运行次数:0
运行
复制
<configuration>
  
  <property>
        <name>hive.metastore.local</name>
        <value>true</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://localhost/metastore</value>
    </property>
 
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.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>18883171984</value>
    </property>
 

<!-- hive用来存储不同阶段的map/reduce的执行计划的目录,同时也存储中间输出结果

,默认是/tmp/<user.name>/hive,我们实际一般会按组区分,然后组内自建一个tmp目录存>储 -->

代码语言:javascript
代码运行次数:0
运行
复制
  <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>/user/hive/warehouse</value>
    </property>
 
    <property>
        <name>hive.server2.logging.operation.log.location</name>
        <value>/tmp/hive</value>
    </property>
 
</configuration>

可以先在这里运行一下hive,看看粘贴的文件有没有问题。如果没有问题就可以进行下一步了。

在mysql的官网下载mysql-connector,选下面的操作系统。解压以后,再把jar文件复制到/usr/local/Cellar/hive/3.1.1/libexec/lib目录下面。

如果没有下载mysql-connector,就会出现

代码语言:javascript
代码运行次数:0
运行
复制
FAILED: Error in metadata: java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient问题。

最后执行schematool -initSchema -dbType mysql,出现下面的结果,就说明执行成功了。

代码语言:javascript
代码运行次数:0
运行
复制
Initialization script completed
schemaTool completed

运行hive,需要注意的是,在运行hive的情况下不能连接外网,否则不能成功运行!!!

输入下面的命令,如果成功了应该就是没有问题了 。

代码语言:javascript
代码运行次数:0
运行
复制
hive> show databases
    > ;
OK
default
Time taken: 0.675 seconds, Fetched: 1 row(s)
hive> 
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-01-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT咸鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档