安装Hive/Hive基本操作<一>
来源:互联网 发布:数据字典设计文档模板 编辑:程序博客网 时间:2024/06/07 19:28
安装Hive
(一)Linux安装MySQL
1)首先卸载自带的MySQL数据库
# rpm -qa | grep mysql
# rpm -e mysql-libs-5.1.71-1.el6.x86_64 --nodeps
2)通过yum安装mysql
# yum install -y mysql-server mysql mysql-devel
3)启动mysql服务(mysqld)
[zhoukuo@CentOS02 ~]$ service mysqld start
...
Please report any problems with the /usr/bin/mysqlbug script!
[ OK ]
Starting mysqld: [ OK ]
4)设置为开机启动
[zhoukuo@CentOS02 ~]$ sudo chkconfig mysqld on //设置开机启动
[zhoukuo@CentOS02 ~]$ sudo chkconfig --list | grep mysqld //查看是否为开机
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
5)登陆mysql数据库
# mysql -u root -p
6)设置密码
方式一:
[zhoukuo@CentOS02 ~]$ /usr/bin/mysqladmin -u root password '123456'
方式二:
set password for 'root'@'localhost' = password('123456')
7)授权root的权限
mysql> grant all privileges on *.* to 'root'@'%' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all privileges on *.* to 'root'@'CentOS02' identified by '123456';
Query OK, 0 rows affected (0.00 sec)
all privileges:添加所有权限
第一个*:所有数据库
第二个*:所有表
第一个'root':代表root用户
%:代表其他的外部主机
'123456' :代表root用户密码
## 刷新权限(一定要记得)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
进入数据库:
[zhoukuo@CentOS02 ~]$ mysql -h -uroot-p123456
(二)安装Hive
参考官网安装介绍:
https://cwiki.apache.org/confluence/display/Hive/GettingStarted
1.解压hive的tar包
[zhoukuo@CentOS02 software]$ tar -zxf hive-0.13.1-bin.tar.gz -C ../modules/
2.创建/tmp和hive数据仓库在HDFS之上的目录
[zhoukuo@CentOS02 hadoop-2.5.0]$ bin/hdfs dfs -mkdir -p /user/hive/warehouse
$ bin/hdfs dfs -mkdir /tmp //默认已经创建了
修改目录的权限(增加组用户的写权限)
[zhoukuo@CentOS02 hadoop-2.5.0]$ bin/hdfs dfs -chmod g+w /tmp
17/09/04 07:52:56 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[zhoukuo@CentOS02 hadoop-2.5.0]$ bin/hdfs dfs -chmod g+w /user/hive/warehouse
17/09/04 07:53:15 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
3.${HIVE_HOME}/conf/ 重命名生成配置文件
[zhoukuo@CentOS02 conf]$ cp hive-default.xml.template hive-site.xml
[zhoukuo@CentOS02 conf]$ cp hive-env.sh.template hive-env.sh
[zhoukuo@CentOS02 conf]$ cp hive-log4j.properties.template hive-log4j.properties
4.${HIVE_HOME}/conf/ 修改hive-env.sh
46 JAVA_HOME=/opt/modules/jdk1.8.0_144
48 HADOOP_HOME=/opt/modules/hadoop-2.5.0
51 export HIVE_CONF_DIR=/opt/modules/hive-0.13.1/conf
5)${HIVE_HOME}/conf/ 修改hive-site.xml
参考官网的介绍:
https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin
--JDBC连接的四要素:ConnectionURL DriverName UserName Password
=====================
<--!132-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://CentOS02:3306/metastore?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<--!138-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<--!162-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<--!168-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
<description>password to use against metastore database</description>
</property>
=====================
6)拷贝jdbc驱动包到${HIVE_HOME}/lib
$ cp mysql-connector-java-5.1.34-bin.jar ../modules/apache-hive/lib/
7)${HIVE_HOME}/conf/ 修改hive-log4j.properties
20 hive.log.dir=/opt/modules/hive-0.13.1/logs
Hive基本操作
一)启动Hive的条件
1.检查hadoop的相关进程
[zhoukuo@CentOS02 ~]$ jps
9461 JobHistoryServer
9013 ResourceManager
8886 NameNode
13095 RunJar
13820 Jps
9308 NodeManager
8941 DataNode
2.启动进入Hive CLI
${HIVE_HOME}/bin存放的hive的启动命令
[zhoukuo@CentOS02 hive-0.13.1]$ bin/hive
启动之后检查mysql数据库中metastore数据库是否自动创建成功
hive> show databases;
OK
default
mydb
Time taken: 0.151 seconds, Fetched: 2 row(s)
3.Hive表创建
//创建数据库
create databasemydb;
//创建表
create table student(
id int comment 'id of student',
name string comment 'name of student',
age int,
gender string,
addr string
)
comment 'studnet'
row format delimited fields terminated by '\t'; //指定表格字段的分隔符
//加载数据
hive> load data local inpath '/home/zhoukuo/student.txt' into table student; --加载本地数据到hive表中;
//查询数据
select * from student;
--表类型一:内部表/管理表:使用内部存储目录(/user/hive/warehouse)
create table dept(
deptid int comment 'id of dept',
name string comment 'name of dept',
addr string comment 'address of dept'
)
comment 'table of dept'
row format delimited fields terminated by '\t';
--查看表的元数据信息
hive> select name,age from student;
......
# Detailed Table Information
Database: default
Owner: zhoukuo
CreateTime: Mon Sep 04 10:16:53 CST 2017
LastAccessTime: UNKNOWN
Protect Mode: None
Retention: 0
Location: hdfs://CentOS02:8020/user/hive/warehouse/dept
Table Type: MANAGED_TABLE --内部表;
......
--加载HDFS上的数据到hive表中
load data inpath '/hive/input/dept.txt' into table dept;
--load如果加载的数据是HDFS之上的话,实际执行的是剪切或移动文件
--表类型二:外部表
create external table emp(
empid int,
empname string,
jobname string,
managerid int,
hiredate string,
salary float,
bonus float,
deptid int
)
row format delimited fields terminated by '\t'
location '/hive/table/emp';
......
Location: hdfs://CentOS02:8020/hive/table/emp
Table Type: EXTERNAL_TABLE
......
创建表
外部表创建表的时候,不会移动数到数据仓库目录中(/user/hive/warehouse),只会记录表数据存放的路径
内部表会把数据复制或剪切到表的目录下
删除表
外部表在删除表的时候只会删除表的元数据信息不会删除表数据
内部表删除时会将元数据信息和表数据同时删除
--删除内部表
drop table dept;
--删除外部表
drop table emp;
--清空表数据
truncate table student;
--表类型三:分区表(静态分区表 和 动态分区表)(一级分区表 二级分区表...)
create table dept_part(
deptid int comment 'id of dept',
name string comment 'name of dept',
addr string comment 'address of dept'
)
comment 'table of dept_part'
partitioned by (date string)
row format delimited fields terminated by '\t';
--向分区表的分区内加载数据(如果分区不存在,则自动创建分区)
hive (mydb)> load data local inpath '/home/zhoukuo/emp.txt' into table dept_part partition (date='2017-09-03');
--创建分区
hive (mydb)> alter table dept_part add partition(date='2017-09-03');
--删除分区
hive (mydb)> alter table dept_part drop partition(date='2017-09-02');
--向已经创建的分区加载数据
hive (mydb)> load data local inpath '/home/zhoukuo/emp.txt' into table dept_part partition (date='2017-09-03');
--创建分区并指定分区所在目录
hive (mydb)> alter table dept_part add partition(date='2017-09-01') location'/user/hive/warehouse/mydb.db/dept_part/2017-09-01';
--查看分区表的分区信息
hive (mydb)> show partitions dept_part;
--查询全表数据
select * from dept_part;
--查询分区字段表数据
hive (mydb)> select * dept_part where date='2017-09-04';
分区表创建表的时候需要指定分区字段,分区字段与普通字段的区别:分区字段会在HDFS表目录下生成一个分区字段名称的目录,而普通字段则不会,查询的时候可以当成普通字段来使用,一般不直接和业务直接相关。
外部分区表:
create external table dept_partt(
deptno int,
deptname string,
address string
)
partitioned by (province string)
row format delimited fields terminated by '\t'
location '/input/demo';
//手动增加分区字段及外部目录:
alter table dept_partt add partition (province='boston') location '/input/demo/boston';
//手动增加分区字段(自动生成分区目录)
alter table dept_partt add partition (province='new york');
二)与其他文件系统的交互
1.与Linux系统交互
hive (mydb)> !ls /opt/sofware/;
2.与hdfs文件系统的交互
hive (mydb)> dfs -ls /input
hive (mydb)> dfs -mkdir /hive
3. show databases --显示数据库; //可以直接使用--对语句进行注释
4.hive (mydb)>quit; 退出Hive
阅读全文
0 0
- 安装Hive/Hive基本操作<一>
- Hive基本操作(一)
- Hive基本操作(一)
- hive安装和基本操作
- HIVE安装和基本操作
- Hive中的安装和基本操作
- hive 基本操作
- hive 基本操作
- hive 基本命令操作
- Hive Shell 基本操作
- hive基本操作
- hive基本操作
- Hive 基本操作
- hive基本命令操作
- hive基本命令操作
- hive基本操作
- hive sql基本操作
- hive基本操作
- PHP大小写问题:函数名和类名不区分,变量名区分
- block 基本用法
- redhat Linux6下搭建Samba服务器
- Hibernate映射文件元素属性说明
- 微信小程序
- 安装Hive/Hive基本操作<一>
- JS 二维数组的定义及长度判断
- 理解卷积神经网络CNN中的特征图 feature map
- 简单使用DLL里的函数
- 7zip命令行工具
- 特殊字符的如何输入
- 错误120 enabled but missing——编译openVPN时
- redis操作命令整理
- Python基础-Threading