环境如下
linux版本:CentOS 7.5.1804
jdk版本:jdk1.8.0_201
hadoop版本:hadoop-2.6.0-cdh5.10.0
hive版本:hive-1.1.0-cdh5.10.0
一、JDK
请参考文章 JDK1.8安装
二、安装Hadoop
请参考文章 安装hadoop2.6.0(伪分布式)
三、Mysql安装
本质上,hive只是个工具,包括它的数据分析,依赖于mapreduce,它的数据管理,依赖于外部系统。
这一步其实不是必须的,因为Hive默认的metadata(元数据)是存储在Derby里面的,但是有一个弊端就是同一时间只能有一个Hive实例访问,这仅适合做开发程序时做本地测试,无法多用户同时访问。
为此,Hive提供了增强配置,可将数据库替换成mysql等关系型数据库,将存储数据独立出来在多个服务示例之间共享。
具体安装步骤请参考文章 Centos7 Yum安装 MySQL 5.7
四、Hive安装
Hive我选用了hive-1.1.0-cdh5.10.0的版本
下载地址直接去官方下载就行
官方地址:https://archive.cloudera.com/cdh5/cdh/5/
或是直接点击此链接进行下载 hive-1.1.0-cdh5.10.0.tar.gz
下载后将压缩包上传到服务器的制定路径(如果不清楚如何操作的可查看文章:通过 Xshell 上传文件到服务器 rzsz)
解压
tar -zxvf hive-1.1.0-cdh5.10.0.tar.gz
配置环境变量
修改 /etc/profile
文件:
vim /etc/profile
在文件中加入以下内容:
export HIVE_HOME=~/lib/hive-1.1.0-cdh5.10.0
修改 PATH,添加hive操作路径
例如:
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin
注:HIVE_HOME是你的 hive安装的根目录
跟新配置
source /etc/profile
上传JDBC包
cp mysql-connector-java-5.1.40-bin.jar ~/lib/hive-1.1.0-cdh5.10.0/lib
配置Hive
进入hive-1.1.0-cdh5.10.0/conf目录
1. 根据模板文件创建 hive-env.sh
文件
cp hive-env.sh.template hive-env.sh
2. 修改 hive-env.sh
文件
新增:
export HADOOP_HOME=~/lib/
export HIVE_CONF_DIR=/root/hive-1.1.0-cdh5.10.0/conf
3. 设置 hive-site.xml
文件
创建文件
touch hive-site.xml
配置文件
vim hive-site.xml
设置为
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.server2.thrift.port</name>
<value>10000</value>
</property>
<property>
<name>hive.server2.thrift.bind.host</name>
<!--172.16.12.160是Hive部署节点的IP,不是Hadoop集群master的IP -->
<value>172.16.12.160</value>
</property>
<property>
<name>hive.server2.long.polling.timeout</name>
<value>5000</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value><!-- 数据库连接用户名 -->
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value><!-- 数据库连接密码 -->
</property>
<property>
<name>hive.hwi.listen.host</name>
<value>0.0.0.0</value>
</property>
<property>
<name>hive.hwi.war.port</name>
<value>9999</value>
</property>
<property>
<name>hive.hwi.war.file</name>
<value>/lib/hive-hwi-1.0.1.war</value>
</property>
</configuration>
注:如果你的数据库不和hive在同一节点,请配置mysql远程连接用户的账号和密码
验证hive
在命令行输入 hive
hive
(1). 建表
create table t1(a int, b int, c int) row format delimited fields terminated by '\t';
查看表信息
desc t1;
注:还可以通过mysql查看t1表的meta信息
(2). 加载本地数据
load data local inpath '/soft/t1.txt' overwrite into table t1;
没有报错,显示正常,安装完成
青冥有晓月