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