Hive数据仓库基于shell命令行基本操作(DDL/DML):
首先启动hive数据库仓库的shell脚本模式:
命令:/opt/mysoft/hive/bin/hive
1> 查看当前Hive中有哪些数据库
hive初始化后,会生成一个默认的default数据库;往往根据项目不同,会建立不同业务的hive数据库;
命令:show databases;
2> 创建数据库
命令:create database test;
3> 打开/使用数据库
命令:use test;
4> 查看数据库中的所有表
命令:show tables;
5> 基于打开的数据库建表
命令:create table stu (id int,name string) row format delimited fields terminated by ',';
查看创建成功后的表结构:
命令:desc stu;
6> 加载数据到表中
本地文件方式:
命令:load data local inpath '/opt/mysoft/stu.txt' into table stu;
HDFS远程服务器方式:
命令:load data inpath 'hdfs://hadoop:9000/output/*' into table stu;
Hive远程服务调用(选学):
借助 Thrift提供的服务(Thrift Server),通过开启Hive服务,其它机器上的Hive直接访问这个服务进行远程调用。其它用户的每一步操作,都会在HIVE服务端看到。
开启服务前置配置:
1:在作为Hive服务的机器上,修改hive/conf/hive-site.xml文件:
//设置服务绑定的IP地址,供其它客户端访问
hive.server2.thrift.bind.host :192.168.248.100(hive服务器地址)
hive/conf/hive-site.xml文件中添加配置:
<property>
<name>hive.server2.thrift.bind.host</name>
<value>192.168.248.100</value>
<description>Bind host on which to run the HiveServer2 Thrift service.</description>
</property>
2:在其它机器上访问远端的hive服务,需要间接的操作HDFS文件,涉及到远程访问权限,所以需要修改:/hadoop/core-site.xml
增加如下配置(修改hadoop集群中所有机器上的core-site.xml):
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
3:因为要间接的连接HIve元数据库,所以设置允许任意IP访问数据库
进入mysql命令行: mysql -u root -p 输入密码:123456
use hive数据库,命令:use myHive;
//授权
grant all privileges on *.* to 'root'@'%' identified by '123456';