1.启动hiveserver2服务器,监听端口是10000,启动名令:hive --service hiveserver2 &;//将其放在后台进行运行,判断启动是否成功的标志是:jps,是否有RunJar进程,或者netstat -anop |grep 10000查看10000端口是否连接
,如果可以连接,那么就可以使用beeline通过$>hive service hiveserver2这个命令连接进来
2.通过beeline的命令行连接到hiveserver2,可以直接写$>beeline 等价于:$>hive --service beeline,连接到数据库:$beeline>!connect jdbc:hive2://localhost/mydb1连接到数据库hive数据库mydb1
3.!help,打印出帮助汇总
4.beeline下面的命令:!tables
hive命令
//创建表
$hive>create table if not exists t1(name string) comment 'xx' row format delimited fields terminated by ',' stored as textfile;
//创建外部表
$hive>create external table if not exists t1(name string) comment 'xx' row format delimited fields terminated by ',' stored as textfile;
//查看数据
$hive>desc t2 ;
$hive>desc formatted t2;
$hive>load data local inpath '/home/centos/customers.txt' into table t2 ;//从本地文件上传到hive表中,local是上传文件,
//复制表
$mysql>create table tt as select * from users ; //复制表,携带数据和表结构
$mysql>create table tt like users ; //复制表,只携带表结构,不带数据
hive>create table tt as select * from users;
hive>create table tt like users ;
hive>select count(*) from users; //这个需要转成mr进行处理,count(*) 查询要转成mr查询
hive>select id,name from t2 order by id desc ;//order by是全排序,要转成mr,以内需要进行聚合
分区表
hive的优化手段之一:创建分区表
在hive中数据库是目录,表是目录,分区表还是目录,表下的分区仍然是目录,从目录层面控制搜索数据的范围
创建分区表
$hive>create table t3(id int,name string ,age int) partitioned by (year int,month int) row format delimited fields terminated by ","
//显示分区表的分区信息
hive>show partitions t5;
//添加分区修改表
$hive>altertable t3 add partition (year=2014,month=1) partition(year =2015,month=2);
hdfs -lsr /;//添加完成之后查看目录
//加载数据到指定分区
$hive>load data local inpath '/home/centos/customers.txt' into table t5 partition(year=2015,month=3);