Hive之[Hive]详细安装步骤

hive 是依赖hadoop中的hdfs作为存储,依赖mysql管理元数据

master节点

集群环境
text 复制代码
master  192.168.204.130
slave1  192.168.204.131
slave2  192.168.204.132
组件下载地址
text 复制代码
https://archive.apache.org/dist/hive/hive-1.2.2/
或
链接: https://pan.baidu.com/s/1DrvGTGn4_OFxO9WLmljJ_g 提取码: 1234 

下载完后上传至虚拟机master的/usr/local/src文件夹下;解压:

text 复制代码
tar -zxvf apache-hive-1.2.2-bin.tar.gz
修改hive运行环境配置文件:hive-env.sh
text 复制代码
cd /usr/local/src/apache-hive-1.2.2-bin/conf
mv hive-env.sh.template hive-env.sh
vim hive-env.sh

添加如下内容:

text 复制代码
export JAVA_HOME=/usr/local/src/jdk1.8.0_172
export HADOOP_HOME=/usr/local/src/hadoop-2.6.1
export HIVE_HOME=/usr/local/src/apache-hive-1.2.2-bin
export HIVE_CONF_DIR=/usr/local/src/apache-hive-1.2.2-bin/conf
创建hive-site.xml文件
text 复制代码
touch hive-site.xml
vim hive-site.xml

添加如下内容:

text 复制代码
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>hdfs://master:9000/hive/warehouse</value>
    </property>
    <property>
        <name>hive.exec.scratchdir</name>
        <value>hdfs://master:9000/hive/tmp</value>
    </property>
    <property>
        <name>hive.querylog.location</name>
        <value>/usr/hive/log</value>
        <description>设置hive job日志存储位置</description>
    </property>
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
        <description>设置显示列名</description>
    </property>
    <property>
        <name>hive.resultset.use.unique.column.names</name>
        <value>false</value>
        <description>增加列名可读性</description>
    </property>
    <property>
        <name>hive.exec.dynamic.partition</name>
        <value>true</value>
        <description>开启动态分区</description>
    </property>
    <property>
        <name>hive.exec.dynamic.partition.mode</name>
        <value>nonstrict</value>
        <description>设置动态分区模式为非严格模式</description>
    </property>
    <property>
        <name>hive.enforce.bucketing</name>
        <value>true</value>
        <description>是否启用bucketing,写入table数据</description>
    </property>
<!--
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://master:9083</value>
        <description>元数据服务</description>
    </property>
-->
<!--test flume to hive 
    <property>
        <name>hive.support.concurrency</name>
        <value>true</value>
        <description>是否支持并发,默认是false</description>
    </property>
    <property>
        <name>hive.txn.manager</name>
        <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value>
        <description>打开一部分事务支持协同配置</description>
    </property>
    <property>
        <name>hive.compactor.initiator.on</name>
        <value>true</value>
        <description>运行启动程序和清除线程,用于打开所需参数的完整列表事务</description>
    </property>
    <property>
        <name>hive.compactor.worker.threads</name>
        <value>1</value>
        <description>增加工作线程的数量将减少花费的时间</description>
    </property>
-->
<!--设置hiveserver2链接参数-->
	<property>
	    <name>yarn.app.mapreduce.am.command-opts</name>
	    <value>-Djava.net.preferIPv4Stack=true -Xmx200m</value>
	</property>
	<property>
	    <name>mapreduce.map.java.opts</name>
	    <value>-Djava.net.preferIPv4Stack=true -Xmx200m</value>
	</property>
	<property>
	    <name>mapreduce.reduce.java.opts</name>
	    <value>-Djava.net.preferIPv4Stack=true -Xmx200m</value>
	</property>
</configuration>
增加环境变量

Master节点

text 复制代码
vim ~/.bashrc

添加以下两行:

text 复制代码
export HIVE_HOME=/usr/local/src/apache-hive-1.2.2-bin
export PATH=$PATH:${HIVE_HOME}/bin

刷新环境变量,让配置生效:

text 复制代码
source ~/.bashrc
修改文件夹所属权限(包含master、slave1和slave2三个节点)

查看文件夹所属权限

text 复制代码
cd /usr/local/src/
[root@master src]# ll
总用量 0
drwxr-xr-x  8 root  root  159 2月  10 19:00 apache-hive-1.2.2-bin
drwxr-xr-x 12 10011 10011 183 2月   8 16:51 hadoop-2.6.1
drwxr-xr-x  7    10   143 245 7月   7 2018 jdk1.8.0_181

修改

text 复制代码
[root@master src]# chown -R root:root hadoop-2.6.1 jdk1.8.0_181
[root@master src]# ll
总用量 0
drwxr-xr-x  8 root root 159 2月  10 19:00 apache-hive-1.2.2-bin
drwxr-xr-x 12 root root 183 2月   8 16:51 hadoop-2.6.1
drwxr-xr-x  7 root root 245 7月   7 2018 jdk1.8.0_181
替换掉Hadoop的jline包

删除Hadoop下的jline包

text 复制代码
cd /usr/local/src/hadoop-2.6.1/share/hadoop/yarn/lib/
rm -rf jline-0.9.94.jar

复制hive下的jline包到hadoop的lib文件夹

text 复制代码
cd /usr/local/src/apache-hive-1.2.2-bin/lib
cp jline-2.12.jar $HADOOP_HOME/share/hadoop/yarn/lib/
安装MySQL连接工具

master节点

下载安装包

text 复制代码
链接: https://pan.baidu.com/s/1ZJsntsUqIxd8HuJibLlPdw 提取码: 1234 

找到mysql-connector-java-5.1.44.tar,

下载之后上传到虚拟机/usr/local/src文件夹下, 解压:

text 复制代码
tar xvf mysql-connector-java-5.1.44.tar

复制链接库文件:

text 复制代码
cd mysql-connector-java-5.1.45
cp mysql-connector-java-5.1.45-bin.jar $HIVE_HOME/lib/
初始化元数据库
text 复制代码
$HIVE_HOME/bin/schematool -dbType mysql -initSchema
启动Hive服务

hadoop集群启动之后,需要等待一会,等待hadoop退出安全模式,退出之后才可以启动hive

检查hadoop集群状态:

text 复制代码
hadoop dfsadmin -report
如果有:Safe mode is ON的时候,不可以启动hive,需要等待一会

启动hive

text 复制代码
[root@master hadoop-2.6.1]# hive

Logging initialized using configuration in jar:file:/usr/local/src/apache-hive-1.2.2-bin/lib/hive-common-1.2.2.jar!/hive-log4j.properties
hive> show databases;
OK
database_name
default
Time taken: 0.666 seconds, Fetched: 1 row(s)
hive> exit;
[root@master hadoop-2.6.1]# 

参考1
参考2

相关推荐
君不见,青丝成雪4 小时前
Flink双流join
大数据·数据仓库·flink
超级迅猛龙8 小时前
保姆级Debezium抽取SQL Server同步kafka
数据库·hadoop·mysql·sqlserver·kafka·linq·cdc
青云交9 小时前
Java 大视界 -- Java 大数据分布式计算在基因测序数据分析与精准医疗中的应用(400)
java·hadoop·spark·分布式计算·基因测序·java 大数据·精准医疗
Lx35213 小时前
Hadoop小文件处理难题:合并与优化的最佳实践
大数据·hadoop
君不见,青丝成雪18 小时前
Hadoop技术栈(四)HIVE常用函数汇总
大数据·数据库·数据仓库·hive·sql
最初的↘那颗心1 天前
Flink Stream API 源码走读 - print()
java·大数据·hadoop·flink·实时计算
君不见,青丝成雪1 天前
hadoop技术栈(九)Hbase替代方案
大数据·hadoop·hbase
晴天彩虹雨1 天前
存算分离与云原生:数据平台的新基石
大数据·hadoop·云原生·spark
yatingliu20191 天前
HiveQL | 个人学习笔记
hive·笔记·sql·学习
SelectDB技术团队1 天前
Apache Doris 在菜鸟的大规模湖仓业务场景落地实践
数据库·数据仓库·数据分析·apache doris·菜鸟技术