本文用到了hadoop2.7.4,xshell,xftp,hive2.3.9压缩包,驱动。
一个主机waq,两个从机s1,s2。本文仅供参考,请根据自己的实际情况进行修改。
hive的安装配置
1、启动hadoop服务
到hadoop安装目录下:cd /home/hadoop/hadoop-2.7.4
启动hadoop集群:sbin/./start-all.sh
jps命令查看服务是否启动成功:jps
2、查看mysql的版本
命令:mysql --version
查了一下发现虚拟机(centos7)自带的有一个Mariadb,百度了一下:mariadb数据库是MySQL数据库的分支...和MySQL数据库一样...感觉这俩好像一样,最终试了一下发现可以用(O0O)。
3、启动mariadb
到hive-2.3.9目录下:cd /home/hadoop/hive-2.3.9
启动命令:systemctl start mariadb
设置密码:mysql_secure_installation
4、解压Hive安装包
利用xftp7软件将提前准备好的hive安装包上传到waq服务器上,到/home/hadoop目录中。
到home/hadoop目录下 cd /home/hadoop
解压文件到当前目录 tar -xvzf apache-hive-2.3.9-bin.tar.gz
修改文件名 mv apache-hive-2.3.9-bin hive-2.3.9
5、修改hive-env.sh
在hive-2.3.9/conf目录下把hive-env.sh.template文件复制到hive-env.sh文件:cp hive-env.sh.template hive-env.sh
修改hive-env.sh文件,增加如下配置:
HADO0P HOME=/home/hadoop/hadoop-2.7.4
Bxport HIVE CONF DIR=/home/hadoop/hive-2.3.9/conf
6、新建授权hive数据库
登录mariadb:mysql -u root -p
使用mysql:use mysql
显示数据库:show database;
创建hive数据库:create database hive;
创建用户密码:create user hive@’%’ identified by ‘自己 的密码’;
授权:grant all privilegeson hive.* to hive;
刷新:flush privileges;
7、修改hive-site.xml
在hive-2.3.9/conf目录下,新建hive-site.xml文件,添加如下配置:
<?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://waq:3306/hive?createDataBaseIFNotExist=ture&useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>自己的密码</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
</configuration>
8、添加驱动
利用xftp7软件将提前准备好的jar包上传到waq服务器上,到/home/hadoop/hive-2.3.9/lib目录中
9、初始化hive
初始化hive:bin/schematool -initSchema -dbType mysql
10、启动hive
在hive-2.3.9目录下启动hive:bin/hive
hive的简单使用
1.创建数据库
创建数据库:
create database IF NOT EXISTS demo; |
2.指定使用数据库
输入:use demo
指定当前使用的数据库为demo
3.创建一张CSV文件类型的表
语句:
create table stock_data(Datel string, Open float, High float, Low float, Close float, Volume int, AdjClose float)row format delimited fields terminated by ',' stored as textfile; |
4.创建一张sequence文件类型的表
语句:
create table stock_data2(Datel string, Open float, High float, Low float, Close float, Volume int, AdjClose float) stored as sequencefile; |
5.准备sample.txt文件
利用xftp7软件将提前准备好的sample.txt文件上传到waq服务器上,到/home/hadoop目录中
6.将数据载入表中
加载本地文件到表中
load data local inpath '/home/hadoop/sample.txt' into table stock_data; |
插入完毕后取前5条记录查看:
select * from stock_data limit 5; |
7.向表插入数据
将stock_data表中数据插入到stock_data2表中
insert overwrite table stock_data2 select * from stock_data; |
查询stock_data2表中5条纪录:
select * from stock_data2 limit 5; |
结果如下: