Mac上的Hive安装和配置

懒人安装Hive大法,踩了n多坑...

1、安装Hadoop

因为Hadoop对伪程序猿(Java学的不够好)不友好,所以通过Hive来启动MapReduce任务,简单好上手。《Hive编程指南》是这么说的:

Hive所有命令和查询都会进入Driver(驱动模块),通过该模块对输入进行解析编译,对需求的计算进行优化,然后按照指定的步骤执行(通常是启动多个MapReduce的job来执行)。当需要启动MapReduce任务(job)时,Hive本身是不会生成Java MapReduce算法程序。相反,Hive通过一个表示“job执行计划”的XML文件驱动执行内置的、原生的Mapper和Reducer模块。

Mac上的Hive安装和配置_第1张图片

Hadoop具体安装方式见Mac安装hadoop--单机模式。

2、安装Hive

brew install hive

3、配置环境变量

我本地是安装zsh,所以配置文件是~/.zshrc

# hadoop_home跟hive_home
export HADOOP_HOME=/usr/local/Cellar/hadoop/3.3.1/libexec
# 日志记录可以不设置
export HADOOP_ROOT_LOGGER=DEBUG,console
export HIVE_HOME=/usr/local/Cellar/hive/3.1.2_3/libexec
export PATH=$PATH:${HADOOP_HOMOE}/bin:${HIVE_HOME}/bin

 4、JDBC和metastore

metastore是一个独立的关系型数据库,默认会使用Hive内置的Derby SQL服务。集群常用MySQL,可供多客户端使用。我本机测试也是装的MySQL。

(1)下载JDBC

通过MySQL :: Download Connector/J下载所需版本。我本地是5.7,Hive是3.1,Hadoop是3.3.

解压之后,将jdbc的jar放到hive目录下

sudo cp /Users/amber/opt/mysql-connector-java-5.1.29/mysql-connector-java-5.1.29-bin.jar /usr/local/Cellar/hive/3.1.2_3/libexec/lib

(2)创建metastore

登陆MySQL,创建metastore数据库。关于MySQL5.7有个巨坑:references权限必须显示赋予才行,不然后面初始化数据库会报错。

# 登陆数据库
mysql -u root -p 

# 进入数据库,开始创建用户hive,密码123456,远程可访问
mysql> CREATE DATABASE metastore;
mysql> USE metastore;
mysql> CREATE USER 'hive'@% IDENTIFIED BY '123456';
mysql> grant all on metastore.* to hive@% with grant option;

5、修改Hive配置文件

进入Hive路径,$HIVE_HOME/conf,将hive-default.xml.template复制为hive-site.xml

cd /usr/local/Cellar/hive/3.1.2_3/libexec/conf
cp hive-default.xml.template hive-site.xml

修改配置文件hive-site.xml。这里有坑:配置文件有一行带有异常字符,启动会报错,到时候根据报错的提示注释掉就可以。

 # 可以用sublime Text打开,搜索对应的配置项进行修改。如果熟悉vim的话,也可以直接在终端操作。
open hive-site.xml 

以下是具体修改内容,根据自己的设置对应调整:


  javax.jdo.option.ConnectionURL
  jdbc:mysql://localhost/metastore


  javax.jdo.option.ConnectionDriverName
  com.mysql.jdbc.Driver


  javax.jdo.option.ConnectionUserName
  hive


  javax.jdo.option.ConnectionPassword
  123456


  datanucleus.fixedDatastore
  false


    hive.exec.local.scratchdir
    /tmp/hive
    Local scratch space for Hive jobs


    hive.downloaded.resources.dir
    /tmp/hive
    Temporary local directory for added resources in the remote file system.


    hive.querylog.location
    /tmp/hive
    Location of Hive run time structured log file

6、启动Hive

(1)初始化metastore

schematool -dbType mysql -initSchema

(2)进入Hive的bin目录下,启动meta服务

./hive --service metastore &

以上两步是第一次启动Hive失败的操作,之后关闭重启Hive好像都没再操作过(记忆不好),没仔细去研究,可能metastore服务之后是默认启动的??有了解的欢迎评论告知~

(3)运行Hive

先启动Hadoop,等Hadoop同步完日志之后才启动Hive,否则会提示Hadoop是安全模式。进入Hive命令行界面,一定要能正常查询,这才说明Hive配置正确,而且MySQL数据库配置也正常。

Mac上的Hive安装和配置_第2张图片

到这里就OK啦,可以愉快的打HiveQL,完结撒花~ 

你可能感兴趣的:(Hive,hive,hadoop,big,data)