Hive学习(一)环境搭建

1、Hive 安装

搭建hive的开发环境
安装HIVE之前, 一定要保证hadoop集群启动正常

必须准备两个前提;

1、hadoop 集群

2、一个关系型数据库  推荐使用MySQL

            安装Mysql:https://blog.csdn.net/qq_41851454/article/details/79731930

找Hive安装包的方式:

进入官网:
https://hive.apache.org/
点击Downloads:

Hive学习(一)环境搭建_第1张图片

点击镜像网站下载:

Hive学习(一)环境搭建_第2张图片

任意选择一个镜像网站:

Hive学习(一)环境搭建_第3张图片

点击下载:

Hive学习(一)环境搭建_第4张图片

搭建Hive分为两种模式:

1.1、内嵌 Derby 版本

优点: 简单 使用方便

缺点: 管理不方便,数据没法迁移

1、 上传安装包 apache-hive-2.3.2-bin.tar.gz

2、 解压安装包 tar -zxvf apache-hive-2.3.2-bin.tar.gz -C /home/hadoop/apps/

3、 进入到 bin 目录,运行 hive 脚本:[hadoop@hadoop02 bin]$ ./hive

注意:

1、这时候一般会报错:Terminal initialization failed; falling back to unsupported,是因为hadoop(/root/apps/hadoop-2.6.5/share/hadoop/yarn/lib)集群的 jline-0.9.94.jar 包版本过低,替换成 hive/lib 中的 jline-2.12.jar 包即可。记住:所有 hdfs 节点都得替换hadoop-2.6.5/share/hadoop/yarn/lib/jline-0.9.4.jar 替换成 jline-2.12.jar

如果报错就按照此方式解决,没有报错就不用管,在使用新的 hadoop-2.7.5 版本中已经不存在这个问题。所以不用关注。


1.2、外置 MySQL 版本

1、 准备好 MySQL(请参考以下文档,或者自行安装 MySQL,或者一个可用的 MySQL)

2、 上传安装包 apache-hive-2.3.2-bin.tar.gz

3、 解压安装包 tar -zxvf apache-hive-2.3.2-bin.tar.gz -c ~/apps/

[potter@potter2 ~]$ tar -zxvf apache-hive-2.3.2-bin.tar.gz -C ~/apps/

4、 修改配置文件

[potter@potter2 conf]# touch hive-site.xml

[potter@potter2 conf]# vi hive-site.xml


javax.jdo.option.ConnectionURL
jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore



javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore


javax.jdo.option.ConnectionUserName
root
username to use against metastore database


javax.jdo.option.ConnectionPassword
root
password to use against metastore database

可选配置,该配置信息用来指定 Hive 数据仓库的数据存储在 HDFS 上的目录


hive.metastore.warehouse.dir
/user/hive/warehouse
hive default warehouse, if nessecory, change it

5、 一定要记得加入 MySQL 驱动包(mysql-connector-java-5.1.40-bin.jar)该 jar 包放置在 hive的根路径下的 lib 目录

[potter@potter2 ~]$ cp mysql-connector-java-5.1.40-bin.jar /home/potter/apps/apache-hive-2.3.3-bin/lib/

6、 安装完成,配置环境变量vi ~/.bashrc 添加以下两行内容:

[potter@potter2 ~]$ vi ~/.bashrc 
export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin

export PATH=$PATH:$HIVE_HOME/bin

保存退出。

最后不要忘记:

[potter@potter2 ~]$ source ~/.bashrc

7、 验证 Hive 安装

[potter@potter2 ~]$ hive --help
Usage ./hive  --service serviceName 
Service List: beeline cleardanglingscratchdir cli hbaseimport hbaseschematool help hiveburninclient hiveserver2 hplsql jar lineage llapdump llap llapstatus metastore metatool orcfiledump rcfilecat schemaTool version 
Parameters parsed:
  --auxpath : Auxiliary jars 
  --config : Hive configuration directory
  --service : Starts specific service/component. cli is default
Parameters used:
  HADOOP_HOME or HADOOP_PREFIX : Hadoop install directory
  HIVE_OPT : Hive options
For help on a particular service:
  ./hive --service serviceName --help
Debug help:  ./hive --debug --help
[potter@potter2 ~]$ 

8、 初始化元数据库注意:当使用的 hive 是 2.x 之前的版本,不做初始化也是 OK 的,当 hive 第一次启动的时候会自动进行初始化,只不过会不会生成足够多的元数据库中的表。在使用过程中会慢慢生成。但最后进行初始化。如果使用的 2.x 版本的 Hive,那么就必须手动初始化元数据库。使用命令:

[potter@potter2 ~]$ schematool -dbType mysql -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/potter/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
Metastore connection URL:        jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true
Metastore Connection Driver :    com.mysql.jdbc.Driver
Metastore connection User:       root
Starting metastore schema initialization to 2.3.0
Initialization script hive-schema-2.3.0.mysql.sql
Initialization script completed
schemaTool completed
[potter@potter2 ~]$

9、 启动 Hive 客户端

[potter@potter2 ~]$ hive --service cli
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/potter/apps/hadoop-2.7.5/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]

Logging initialized using configuration in jar:file:/home/potter/apps/apache-hive-2.3.3-bin/lib/hive-common-2.3.3.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>

10、退出 Hive

hive> quit;
或者
hive> exit;



你可能感兴趣的:(Hive)