hive启动命令以及hive介绍(个人总结)

                                           hive启动命令

首先启动 zookeeper : bin/zkServer.sh restart

启动zookeeper以后查看是否启动成功 : bin/zkServer.sh status

在启 NameNode 和 DataNode 守护进程。sbin/start-all.sh

hive服务器启动命令:
启动 : nohup bin/hive --service metastore &

查看运行过程: tail -f nohup.out

客户端启动命令:bin/hive

如果连接.Beeline

启动服务器命令以后在启动: nohup bin/hiveserver2 &

启动客户端:bin/beeline

查看运行过程: tail -f nohup.out

连接客户端:
Jdbc的url;

/木有跟上数据库,一定要切换数据库(use 数据库的名字);默认是default;

!connect jdbc:hive2://node-4:10000 root 123456
!connect jdbc:hive2://node-4:10000/mydata root 123456

  • hive命令

  • 查看数据库 : show databases ;

  • 创建数据 : create database (要创建的数据库名字) ;

  • 创建了一张表 :
    create table psn_1
    (
    id int,
    name string
    ) ;

  • 插入一条数据 : insert into psn_1 (id,name) values (1,‘aa’);

  • 除数据库 : drop databases (要删除的数据库名字) ;

  • 在mysql中可以,在hive中不可以 : show databases like '%da%'

  • 数据库更改:数据一旦创建,不可更改,想要更改,先删除,再创建;(除了数据库名字以外的,都可以修改)

  • 修改数据库属性 : alter database my_2 set location ‘hdfs://jh/mr/my_2’;

  • 进入数据库 : Use 数据库的名字: use mydata ;

  • 我在哪个数据库 : select current_database() ;

  • 查看所有表 :show tables;

  • 删除表格 : drop table (要删除的名字)

  • 查看单张表 : desc (要查看的表名字) ;

  • 查询记录 : select * from psn_1 ;

  • 修改表名 : alter table psn_1 rename to psn_11 ;

  • 修改表的列 :
    alter table psn_11
    change age age_1 int ;

  • 添加新列,和替换列:
    alter table psn_11
    add columns
    (
    sex smallint,
    updateTime timestamp
    );

  • 向表里面导入数据 : load data inpath ‘/hw/multi_data.txt’ into table psn_10 partition (sex=‘boy’);

  • 先导出 : export table psn_1 to ‘/hw/psn_1’ ;

  • 可以在node-1上面查看导出的内容 : bin/hdfs dfs -cat /hw/psn_1/data/000000_0

  • 再导入 : import table psn_1 from ‘/hw/psn_1’ ;

hive 官网:http://hive.apache.org/

hadoop中的mr有缺点;

  • Mapper:的输出,就是把键相同的合并起来;sql:语句,groupby
  • Reduce:诊对一个键相同的多个值,进行处理;聚合函数;(词频:sum);(order by),
  • 需要你编程;
  • 渴望:
    诊对开发人员,只需要写sql语句,递给一个XX,XX会把sql语句转换成mr;
    XX:就是hive;
    存储过程:就是把多条sql语句放到一个文件中,一块执行;顺序,选择,循环;要么使用底层的mr来写,通过jdbc一次发送多条sql语句(流程控制交给java)

Hive的三种模式

数据库:access,virtutal fox,sqlserver,mysql,sqlite,postgresql,oracle;

  • Local模式.此模式连接到一个In-Memory的数据库Derby,一般用于UnitTest.
  • 单用户模式.通过网络连接到一个数据库中,是最常使用到的模式.
  • 多用户模式:远程服务器模式.用于非java客户端访问元数据库(metastore),在服务器端启动metaStoreServer,客户端利用thrift协议通过metaStoreServer访问元数据库

结构图
在这里插入图片描述

hive的组成部分

Metastore:元数据的存储;元数据(数据库和表结构,列);mysql中
一个文件:除了文件内容以外的叫做元数据;(放到了namenode上)
Cli:client:客户端;hive的黑窗口
Jdbc:连接的
Webgui:
在这里插入图片描述

  • 用户接口主要有三个:Cli,Client和WebGUI,其中最常用的是cli,cli启动的时候会同时启动一个hive副本,client是hive客户端,用户连接到hiveServer.在启动client模式的时候,需要指出hiveServer所在的节点,并且在该节点启动hiveServer.WUI是通过浏览器也能访问Hive

  • Hive将元数据(数据库,表,记录)存储在数据库表(真实的数据库,mysql)中,如mysql,derby.hive中元数据包含表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在的目录等.数据库(Mysql)中并不存储Hive的记录;

  • 解释器,编译器,优化器完成sql查询语句从词法分析,语法分析,编译,优化以及查询计划的生成.生成的查询计划存储在hdfs中,并在随后有mapreduce调用执行.

  • Hive数据存储在hdfs中,大部分数据查询,计算由mapreduce完成(包含的查询,比如select from tbl不会生成mapreduce任务)

  • 元数据(hive中看到的库,表)存储到真实的数据库(mysql);记录存储到了hdfs上; 经常使用的mysql:表,记录,库都存储到文件系统中(NTFS)

  • hive的客户端连接服务器走的是thrift协议;==httphttps;传输的内容大小比较小;

在这里插入图片描述

Hive架构

  • 用户在hive中输入了一个SQL语句;要么转成Mr执行,要么直接查询文件;
    编译器:将一个hive Ql转换操作符(在hive中写的sql语句;hive QL,hql)
    操作符是Hive的最小处理单元
    每个操作符代表hdfs一个操作或者一道mapreduce作业.

  • Operator:
    Operator都是Hive定义的一个处理过程
    Operato都定义有
    Protected List<Operator<? extends Serializable>> childOperators
    Protected List<Operator<? extends Serializable>> parentOperators
    Protected boolean done;//初始化值为false

在这里插入图片描述
在这里插入图片描述
原来的Mysql数据库的sql语句可以满足任何需求;jdbc(java连接数据库)(数据库管理员),servlet–jsp(方便一些不懂程序的人对数据库进行操作);用户在网页上所做的第一个操作其实都是转换成了sql语句操作数据库

  • 5
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值