Hive与Hadoop的版本选择很关键,千万不能选错,否则各种报错。
本篇安装版本
Hadoop版本为:2.7.2
Hive版本为:2.3.5
请严格按照版本来安装。
Hive 是一种底层封装了Hadoop 的数据仓库处理工具,使用类SQL 的HiveSQL 语言实现数据查询,所有Hive 的数据都存储在Hadoop 兼容的文件系统(例如,Amazon S3、HDFS)中。Hive 在加载数据过程中不会对数据进行任何的修改,只是将数据移动到HDFS 中Hive 设定的目录下,因此,Hive 不支持对数据的改写和添加,所有的数据都是在加载的时候确定的。Hive 的设计特点如下。
主要分为以下几个部分:
Hive中包含以下四类数据模型:表(Table)、外部表(External Table)、分区(Partition)、桶(Bucket)。
https://dlcdn.apache.org/hive/
如果嫌慢,可以网盘下载:链接:
https://pan.baidu.com/s/1axk8C4Zw7CUuP1b1SGPyPg?pwd=yyds
解压安装包到(D:\bigdata\hive\2.3.5),注意路径不要有空格。
下载和拷贝一个 mysql-connector-java-5.1.47-bin.jar 到 $HIVE_HOME/lib 目录下。
官网下载地址:https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-5.1.47.zip
或者网盘下载:https://pan.baidu.com/s/1X6ZGyy3xNYI76nDoAjfVVA?pwd=yyds
配置文件目录(%HIVE_HOME%\conf)有4个默认的配置文件模板拷贝成新的文件名
原文件名 | 拷贝后的文件名 |
---|---|
hive-log4j.properties.template | hive-log4j2.properties |
hive-exec-log4j.properties.template | hive-exec-log4j2.properties |
hive-env.sh.template | hive-env.sh |
hive-default.xml.template | hive-site.xml |
后面Hive的配置文件用到下面这些目录:
先在Hive安装目录下建立 data 文件夹,
然后再到在这个文件夹下建
op_logs
query_log
resources
scratch
这四个文件夹,建完后如下图所示:
编辑 conf\hive-env.sh 文件:
根据自己的Hive安装路径(D:\bigdata\hive\2.3.5),添加三条配置信息:
1 2 3 4 5 6 7 8 |
# Set HADOOP_HOME to point to a specific hadoop install directory HADOOP_HOME=D:\bigdata\hadoop\2.7.2 # Hive Configuration Directory can be controlled by: export HIVE_CONF_DIR=D:\bigdata\hive\2.3.5\conf # Folder containing extra libraries required for hive compilation/execution can be controlled by: export HIVE_AUX_JARS_PATH=D:\bigdata\hive\2.3.5\lib |
编辑 conf\hive-site.xml 文件:
根据自己的Hive安装路径(D:\bigdata\hive\2.3.5),修改下面几个参数的配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<property> <name>hive.exec.local.scratchdir</name> <value>D:/bigdata/hive/2.3.5/data/scratch</value> <description>Local scratch space for Hive jobs</description> </property> <property> <name>hive.server2.logging.operation.log.location</name> <value>D:/bigdata/hive/2.3.5/data/op_logs</value> <description>Top level directory where operation logs are stored if logging functionality is enabled</description> </property> <property> <name>hive.downloaded.resources.dir</name> <value>D:/bigdata/hive/2.3.5/data/resources/${hive.session.id}_resources</value> <description>Temporary local directory for added resources in the remote file system.</description> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> <description>Driver class name for a JDBC metastore</description> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> <description>Username to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> <description>password to use against metastore database</description> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3307/hive?createDatabaseIfNotExist=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8</value> <description> JDBC connect string for a JDBC metastore. To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL. For example, jdbc:postgresql://myhost/db?ssl=true for postgres database. </description> </property> |
修改后的 hive-site.xml 下载地址:https://pan.baidu.com/s/1PvTCc_6Cu-1HJ44E2vEFQg?pwd=yyds
Hadoop安装及启动,请看这篇博文:Windows下安装Hadoop(手把手包成功安装)
可以通过访问namenode和HDFS的Web UI界面(http://localhost:50070)
以及resourcemanager的页面(http://localhost:8088)
使用命令:
1 2 3 4 5 6 |
hadoop fs -mkdir /tmp hadoop fs -mkdir /user/ hadoop fs -mkdir /user/hive/ hadoop fs -mkdir /user/hive/warehouse hadoop fs -chmod g+w /tmp hadoop fs -chmod g+w /user/hive/warehouse |
或者使用命令:
1 2 |
hdfs dfs -mkdir /tmp hdfs dfs -chmod -R 777 /tmp |
在Hadoop管理台(http://localhost:50070/explorer.html#/)可以看相应的情况:
在%HIVE_HOME%/bin目录下执行下面的脚本:
1 |
hive --service schematool -dbType mysql -initSchema |
可以发现,Hive会自动连接MySQL去创建schema hive,并执行脚本。
输入hive,进入hive:
至此,Hive在Windows下安装成功了!
Hive 的Hive_x.x.x_bin.tar.gz 高版本在windows 环境中缺少 Hive的执行文件和运行程序。
解决方法:
下载地址:http://archive.apache.org/dist/hive/hive-2.0.0/apache-hive-2.0.0-bin.tar.gz
或者网盘下载:https://pan.baidu.com/s/1exyrc51P4a_OJv2XHYudCw?pwd=yyds
替换后:
1 2 3 |
SLF4J: Class path contains multiple SLF4J bindings. SLF4J: Found binding in [jar:file:/datafs/hive/lib/log4j-slf4j-impl-2.10.0.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/datafs/hadoop/hadoop-3.1.1/share/hadoop/common/lib/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] |
报错:类路径包含了多个SLF4J的绑定。
这个报错是因为hive里面的slf4j的包跟hadoop里面的包冲突了。
把hive里面的这个包删掉即可。
即删除hive安装目录lib下的log4j-slf4j-impl-x.x.x.jar这个jar包。
from:https://blog.csdn.net/tttzzzqqq2018/article/details/132001921