hive笔记

1.hive:
 在hadoop生态圈中属于数据仓库的角色,它能够管理hadoop中的数据,同时可以查询hadoop中的数据。
本质上讲,hive是一个sql解析引擎,hive可以把sql查询转换为mapreduce中的job来运行。
hive有一套映射工具,可以把sql转化为mapreduce中的job,可以把sql中的表、字段转化为hdfs
中的文件(夹)以及文件中的列。
这套映射工具称之为metastore,一般存放在derby、mysql中。


hive安装:
1.tar -zxvf hive-0.9.0.tar.gz
2.mv hive-0.9.0 hive
3.vi /etc/profile设置hive环境变量
export HIVE_HOME=/usr/local/hive
:$HIVE_HOME/bin:
source /etc/profile
4.cd hive/
cd conf
mv hive-default.xml.templata hive-site.xml
mv hive-env.sh.template hive-env.sh
5.修改hadoop-env.sh
vi ../../hadoop/conf/hadoop-env.sh
修改hadoop的hadoop-env.sh(否则启动hive汇报找不到类的错误)
 
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:
$HADOOP_HOME/bin


6.vi hive-config.sh
export JAVA_HOME=/usr/local/jdk
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop




使用hive
进入hive的bin目录
hive
show databases;
use default;
show tables;
create table t1(id string);
show tables;
select * from tl;
----
hive在hdfs中的默认位置是
/user/hive/warehouse
--------在配置文件中修改
hive-conf.xml可以修改 hive.metastore.warehouse.dir决定的


3.安装mysql
  (1)删除linux上已经安装的mysql相关库信息。rpm  -e  xxxxxxx   --nodeps
     执行命令rpm -qa |grep mysql 检查是否删除干净
  (2)执行命令 rpm -i   mysql-server-********  安装mysql服务端  
  (3)启动mysql 服务端,执行命令  mysqld_safe &
  (4)执行命令 rpm -i   mysql-client-********  安装mysql客户端
  (5)执行命令mysql_secure_installation设置root用户密码


4.(1)把mysql的jdbc驱动放置到hive的lib目录下
cp mysql-jdbc.jar /usr/local/hive/lib/
  (2)修改hive-site.xml文件,修改内容如下:  
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://hadoop0: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>admin</value>
</property>
设置mysql允许远程连接:
grant all on hive.* to 'root'@'%' identified by 'admin';
fuush privileges;


5.内部表:
create table t1(id int);
增加数据:
load data local inpath '/root/id' into table t1;
创建表:
create table t2(id int, name string) row format delimited fields terminated by '\t';
hadoop fs -put stu /hive/t2


6.分区表
create table t3(id int) partitioned by (day int);
加载分区表的数据:
load data local inpath 'root/id' into table t3 partition (day='22');
select * from t3 where day='22'查询分区数据


7.桶表:
create table t4(id int) clustered by(id) into 4 buckets; 
   set hive.enforce.bucketing = true;
   insert into table t4 select id from t3;


8. 外部表
   create external table t5(id int) location '/external';


9.视图
CREATE VIEW v1 AS select * from t1;
service hiveserver >/dev/null  2>/dev/null &




10.udf
describe function pi


删除外部表的时候只会删除外部表信息,不会删除数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值