目录
一、下载 Hive3.0.0
二、配置环境变量
三、添加MySQL依赖包
四、HDFS添加Hive目录
五、解决依赖包冲突
六、修改配置文件
七、初始化 Hive 元数据
八、启动 Hive 服务
七、注意事项
win10安装Hadoop3.0.0:https://cloud.tencent.com/developer/article/1818630 win10安装Hive3.0.0:https://cloud.tencent.com/developer/article/1818598
一、下载 Hive3.0.0
下载地址: http://archive.apache.org/dist/hive/hive-3.0.0/ 下载文件:apache-hive-3.0.0-bin.tar
二、配置环境变量
配置hive环境变量
代码语言:javascript复制变量名:HIVE_HOME 变量值:D:HadoopHiveapache-hive-3.0.0-bin 变量名:HIVE_CONF_DIR 变量值:D:HadoopHiveapache-hive-3.0.0-binconf
%HIVE_HOME%bin
%HIVE_CONF_DIR%
三、添加MySQL依赖包
下载 mysql-connector-java-5.1.47.jar ,添加到 lib目录下
四、HDFS添加Hive目录
1、启动hadoop集群:执行 D:HadoopHDFShadoop-3.0.0properties 目录下的 start-all.cmd 脚本
2、cmd 命令行执行以下命令,在 hdfs 上创建目录以及赋权
代码语言:javascript复制hadoop fs -mkdir /tmp
hadoop fs -mkdir -p /user/hive/warehouse
hadoop fs -chmod g w /tmp
hadoop fs -chmod g w /user/hive/warehouse
http://localhost:9870/explorer.html#/
五、解决依赖包冲突
删除与hadoop冲突的log4j jar包
将 %HIVE_HOME%lib 目录下的 log4j-slf4j-impl-2.4.1.jar 改名为 log4j-slf4j-impl-2.4.1.jar.template
六、修改配置文件
1、备份配置文件
将 %HIVE_HOME%bin 目录改名为 bin.template
将 apache-hive-3.0.0-bin/conf 文件复制一份,改名为 conf.template
2、配置 Hive bin 目录
Hive 3.0.0 bin.zip:https://github.com/AlEinstein/BigData/blob/main/Hive/Hive 3.0.0/bin.zip
将下载的 Hive 3.0.0 bin.zip 文件解压到 Hive 根目录下
官方网址:https://cwiki.apache.org/confluence/display/Hive/AdminManual Metastore Administration
3、修改配置文件
hive-env.sh
代码语言:javascript复制# hive hsell 启动JVM的堆栈大小
export HADOOP_HEAPSIZE=2048
# hadoop的安装目录
HADOOP_HOME=D:HadoopHDFShadoop-3.0.0
# hive的配置目录
export HIVE_CONF_DIR=D:HadoopHiveapache-hive-3.0.0-binconf
# hive的lib库目录
export HIVE_AUX_JARS_PATH=D:HadoopHiveapache-hive-3.0.0-binlib
hive-site.xml
代码语言:javascript复制 <!-- Hive临时文件,用于存储每个查询的临时/中间数据集,通常在完成查询后由配置单元客户端清除 -->
<property>
<name>hive.exec.local.scratchdir</name>
<value>D:/Hadoop/Hive/apache-hive-3.0.0-bin/tmp/${system:user.name}</value>
</property>
<!-- hive添加资源时的临时目录 -->
<property>
<name>hive.downloaded.resources.dir</name>
<value>D:/Hadoop/Hive/apache-hive-3.0.0-bin/tmp/${hive.session.id}_resources</value>
</property>
<!-- Hive运行时结构化日志文件的位置 -->
<property>
<name>hive.querylog.location</name>
<value>D:/Hadoop/Hive/apache-hive-3.0.0-bin/tmp/${system:user.name}</value>
</property>
<!-- 用于验证metastore和hivejar包是否一致问题,默认为true。false:hive升级版本不一致只会警告 -->
<property>
<name>hive.metastore.schema.verification</name>
<value>false</value>
</property>
<!-- 初始化数据库自动创建schema -->
<property>
<name>datanucleus.schema.autoCreateAll</name>
<value>true</value>
</property>
<!-- 使用MySQL作为hive的元数据Metastore数据库 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<!-- <value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&characterEncoding=latin1&useSSL=false</value> -->
<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=true&useSSL=false</value>
</property>
<!-- MySQL JDBC驱动程序类 -->
<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>123456</value>
</property>
<!-- hive server2 thrift ip -->
<property>
<name>hive.server2.thrift.bind.host</name>
<value>localhost</value>
</property>
<!-- hive server2 thrift 端口 -->
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<!-- Thrift Metastore服务器的主机和端口 默认 <value/> -->
<property>
<name>hive.metastore.uris</name>
<value>thrift://localhost:9083</value>
</property>
<!-- 如果启用了日志功能,则存储操作日志的顶级目录 -->
<property>
<name>hive.server2.logging.operation.log.location</name>
<value>D:/Hadoop/Hive/apache-hive-3.0.0-bin/tmp/${system:user.name}/operation_logs</value>
</property>
七、初始化 Hive 元数据
初始化 Hive 元数据到 MySQL 数据库
将 D:HadoopHiveapache-hive-3.0.0-binscriptsmetastoreupgrademysql 目录下的 hive-schema-3.0.0.mysql.sql 导入MySQL
代码语言:javascript复制hive --service schematool -dbType mysql -initSchema --verbose
初始化后 hive 在 MySQL metastore数据库生成的表数据
八、启动 Hive 服务
1、启动 Hive 元数据
代码语言:javascript复制hive --service metastore
2、启动 Hive server2 服务
代码语言:javascript复制hive --service hiveserver2
3、 启动 hive 命令行
代码语言:javascript复制hive
七、注意事项
- Hive的log4j和Hadoop的log4j包冲突
- Hive初始化之前必须先启动HDFS
- Hive数据库的元数据编码 latin1
hive官方文档:https://cwiki.apache.org/confluence/display/Hive/GettingStarted#GettingStarted-RunningHiveServer2andBeeline