hive入门

本文档详细介绍了Hive的安装、配置、启动过程,以及如何操作表,包括DDL、外部表、分区表的管理。重点讲解了HiveQL在数据装载、查询和数据库管理中的应用,如数据分区、数据装载、表的创建与修改、数据库的删除与修改等,同时也探讨了一些Hive命令行的实用技巧和注意事项。
摘要由CSDN通过智能技术生成

install(cdh 下 yum安装)

yum install hive

配制mysql metastore

vim /etc/hive/conf/hive-site.xml

<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://127.0.0.1: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>root</value>
</property>
<property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hadoop</value>
</property>

配置mysql-java驱动包
cp mysql-connector-java-5.1.21-bin.jar /usr/lib/hive/lib/

mysql数据库中设置

#mysql -uroot -padmin
mysql>create database hive;
mysql>GRANT all ON hive.* TO root@'%' IDENTIFIED BY 'admin';
mysql>flush privileges;
mysql>set global binlog_format='MIXED';

启动

sudo -u hdfs hive

表操作

ddl

table_struct.sql

USE wifi_mc;
DROP TABLE IF EXISTS t_wifi_login_record;
CREATE TABLE t_wifi_login_record(
  id int,
  state smallint,
  memo string,
  set_id int,
  set_time timestamp
);

create table if not exists mydb.employees(
    name string comment 'employee name',
    salary float comment 'Employee salary',
    subordinates array<string>,
    deductions map<string,float>,
    address struct<street:string,city:string,zip:int>
)
comment 'Description of the table'
location '/user/hive/warehouse/mydb.db/employees';

describe extended mydb.empolyee; #查看表详情
使用formatted 替代extended,可提供更可读的信息。
如果只想看某一列信息,使用extended不会增加多的输出信息

hive (default)>show tables in mydb; 
              >create table if not exists mydb.t2
              > like t1;    #拷贝一张已存在的表
create table some_data(用户还可以使用'\t'
first float,
second float
)
row format delimited
fields terminated by ',';
#

增加列

hive (default)> alter table t1 add columns (
              > app_name string comment 'application name',
              > session_id int comment 'The current session id');
                #hive1.1 类型不支持long              

删除或替换列
hive (default)> alter table t1 replace columns(

hours_mins_secs int,
message string);
OK
Time taken: 0.222 seconds
hive (default)> describe t1;
OK
col_name data_type comment
hours_mins_secs int
message string

修改表存储属性

外部表

数据文件位于分布式文件系统的/data/stocks目录下。创建一个 外部表可以读取所有位于/data/stocks目录下的以逗号分隔的数据

 create external table if not exists dept(
  id int,
  dept_name string,
  pre_id int,
  hasChild int,
  d_level int COMMENT '级别',
  place_code string  COMMENT '场所代码(美国编号',
  member_id string,
  company_code string,
  market string  COMMENT '市场',
  local_code string  COMMENT '本地编号',
  dining_name string COMMENT '餐厅名',
  open_date TIMESTAMP COMMENT '开店日期',
  address string  COMMENT '地址',
  phone_tel string  COMMENT '电话',
  zip string  COMMENT '邮编',
  is_all_day string  COMMENT '是否全天',
  is_mds string COMMENT '是否MDS',
  sms_version string  COMMENT 'SMS版本',
  np6_date TIMESTAMP COMMENT 'NP6日期',
  e_mail string  COMMENT '邮箱',
  management_model string COMMENT '经营模式',
  memo st
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值