威尼斯人线上娱乐

【威尼斯人线上娱乐】学学笔记,hive数据仓库

10 4月 , 2019  

一、hive概述

一、Hive介绍

第1片段

什么是Hive:

Hive是依照Hadoop之上的数据仓库,数据存放在HDFS上,它一样可以通过ETL来进展数据的抽取、转换和加载。同时Hive可以团结开发Mapreduce程序来达成本身不可能提供的数目处理操作。Hive本人正是1个SQL的分析引擎,他将SQL
语句转成Mapreduce义务在hadoop之上执行。

怎么样是数据仓库:

数据仓库是二个面向大旨的,集成的,不可更新的,随时间不扭转的多少集合,它用来协理公司或集团的决策分析处理。

本着数据仓库的概念的诠释:首先数据仓库中的数据是面向主旨的,也正是那几个数量的都以为了描述同1类作业,同时它的数据首要用以查询操作,不会对数据仓库中的数据开始展览删减和换代操作。

OLTP: 联机事务处理(面向的是业务,须要实时的换代操作,银行转化)
OLAP:
联机分析处理(面向历史数据,进行数量的分析与发掘,首要面向查询,不会做立异和插入数据,推荐系统)

注意:

在搭建数据仓库的经过最常用的二种模型正是:正方形模型和冰雪模型,雪花模型是在椭圆形模型上进步出来的。什么是纺锤形模型,比如3个商品的引入系统,大旨应该是货物,但是围绕商品的有客户消息、厂家音讯、优惠新闻等居多音信,那样就重组了三个长方形模型。然而客户音讯中也存在客户的家园的消息、地址音讯等。那样再涉及的话正是一个雪花模型了。


离线数据解析平台实战——110Hive介绍和Hive环境搭建

威尼斯人线上娱乐 1

  Hive是依据Hadoop的二个数据仓库,Hive能够将SQL语句转化为MapReduce义务进展运作。

其次局地

Hive的体系布局:

Hive将元数据存款和储蓄在数据库中(metastore),那些数据库援助mysql、derby等数据库中。Hive私下认可是储存在derby数据库中。
Hive的元数据有哪些?
包含表的名字、表的列和分区及其天性,表的性质包罗是不是为外部表等,表的多少所在目录等。
首先Hive是依据Hadoop的,所以hive的数码会利用HDFS进行封存,同时hive的查询操作也是转载成hadoop的MapReduce操作,所以在hive中会存在1个Hive
Driver:包含编写翻译器、解析器和优化器。
在Hive的驱动此前有访问接口、jdbc以及WebConsole等艺术展开操作。当然hive的元音信是存放在在关系型数据库中的。
HQL的实施进度:
解释器、编写翻译器、优化器完结HQL查询语句从词法分析、语法分析、编写翻译、优化以及查询安顿的变化。生成的询问布署存储在HDFS中,并在随着的Mapreduce调用实践。


Hive介绍

Hive是营造在Hadoop之上的数据仓库平台,设计指标正是将hadoop上的数额操作同SQL结合,让纯熟SQL编制程序的开发职员能够轻松的向Hadoop平台上转换。

Hive能够在HDFS上营造数据仓仓库储存储结构化数据,这几个数据来自便是hdfs上,hive提供了三个类似sql的询问语言HiveQL来进展询问、变换数据等操作。
本来HiveQL语句的平底是更换为对应的mapreduce代码进行实践的。

       Hive是基于
Hadoop
的1个【数据仓库工具】,能够将结构化的数据文件映射为一张数据库表,并提供不难的
sql 查询功用,能够将 sql 语句转换为 MapReduce
任务实行运作。使用SQL来快捷完结简单的MapReduce
计算,不必支付专门的MapReduce
应用,学习花费低,十三分顺应数据仓库的总结分析。

  Hive架构图分为以下4某个。

其三有的

Hive的安装:

Hive的官网地址: hive.apache.org apache 的野史工程发布页面在:
archive.apache.org,在这么些页面下能够找到hive工程。这里运用的是0.1叁本子。

Hive的安装在此之前必要先将hadoop安装好,hive有二种安装格局:嵌入方式、本地方式、远程方式。

置于方式:Hive将元音信存款和储蓄在Hive自带的Derby数据库中。不过那种操作方式存在一些缺点:

  1. 【威尼斯人线上娱乐】学学笔记,hive数据仓库。只同意成立三个连接,也便是只允许贰个用户操作hive 2. 多用于德姆o

在装置hive以前要求先安装hadoop,然后把hive的回落包解压,在bin目录下执行./hive进入hive的运转脚本,那种方式正是选取的嵌入式格局运维hive,会在当前目录下生成五个metastore_db的目录,那一个就是元音讯目录。

地面情势:Hive将元信息囤积在mysql数据库中,mysql数据库与hive运维在壹如既往台物理机上。那种情势得以允许四个用户操作hive,可以用于支付和测试。

远程格局:(推荐应用那种格局)hive将元音讯囤积在mysql数据库中,mysql数据库与hive运行在差别的大体机上。

元消息存款和储蓄在长距离的mysql中。进入远程mysql中,mysql -u … -p … ,
进入后使用create database hive创设一个hive数据库来保存元数据。
在hive解压后,把mysql的驱动jar包上传到hive的lib目录中。那样hive才能操作mysql数据库。然后须要变更hive的布局文件。在conf中创立一个hive-site.xml文件,文件的始末如下:

<configuration>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://ip:3306/hive</value>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>root</value>
    </property>
</configuration>

当配置文件设置完后之后,就能够运转hive了。


Hive组成

Hive包罗用户接口、元数据库、解析器和数据仓库等零件组成,当中用户接口包罗shell客户端、JDBC、ODBC、Web接口等。
元数据库重点是内定义在hive中的表结构音讯,一般保存到关系型数据库中,暗许是derby,1般选取mysql举办保存。
解析器首要作用是将HQL语句转换为mapreduce代码。
数据仓库正是由hdfs组成的多少存款和储蓄容器。

    【数据仓库】英文名为Data Warehouse,可简写为 DW 或
DWH。数据仓库,是为铺面持有级其余决策制定进程,提供具有类型数据支撑的战略性集合。它是单个数据存款和储蓄,出于分析性报告和决策补助指标而创办。为急需工作智能的小卖部,提供指导业务流程革新、监视时间、费用、品质以及控制。一句话回顾:
 数据仓库是用来做 查询分析的数据库,
基本不用来做插入,修改,删除操作。

  威尼斯人线上娱乐 2 

第5部分

Hive的管理

运用hive的剧本直接进入hive,大概 hive –service cli

cli常用的指令:

  1. 清屏:ctrl + l 或者 !clear;
  2. 查阅数据仓库中的表: show tables;
  3. 翻开数据仓库中的函数:show functions;
  4. 查看表结构: desc 表名;
  5. 翻开hdfs上的公文列表: dfs -ls /user 查看hadoop上/user上的文件
  6. 执行linux命令: !命令
  7. 执行HQL语句:select * from
    test;当执行那几个讲话的时候是不会张开1个MapReduce义务的,因为那么些是获得全体的数额,获取全体的多少只供给把持有的多寡读取出来就能够了,并不需求运行一个职务。可是在实践select
    name from
    test;查询某三个字段的音信的时候就必要运营叁个MapReduce任务了。
  8. 能够实施三个sql脚本:source /root/test.sql
    这几个讲话正是开发银行一个进行sql脚本。那种办法正是和mysql执行外部的新闻1致。
  9. hive -S 进入hive运转职务不会产生调节和测试新闻,直接产生MapReduce的结果。
  10. hive -e 执行sql语句。hive -e ‘show
    tables’;那样的履行就径直在linux的命令行操作就行,并不需求进入hive的交互式中执行。

Web界面格局:

启航格局: #hive –service hwi &
在0.1叁.0中并从未包罗web管理的war包,供给协调编写翻译。

下载hive源码包,并且解压源码包,然后进入源码路径下的hwi目录,使用:jar
cvfM0 hive-hwi-0.1三.0.war -C web/ .
那样就会打成一个war包,把这几个war包拷贝到hive的lib目录下,同时要求修改hive-site.xml
配置文件,那一个修改能够在wiki上见到。

<property>
  <name>hive.hwi.listen.host</name>
  <value>0.0.0.0</value>
  <description>This is the host address the Hive Web Interface will listen on</description>
</property>

<property>
  <name>hive.hwi.listen.port</name>
  <value>9999</value>
  <description>This is the port the Hive Web Interface will listen on</description>
</property>

<property>
  <name>hive.hwi.war.file</name>
  <value>lib/hive-hwi-0.13.0.war</value>
  <description>This is the WAR file with the jsp content for Hive Web Interface</description>
</property>

本条就足以接纳hive –service
hwi运行web服务了,可是在造访那一个web应用的时候,浏览器照旧报出了500的荒谬。那一个标题亟需拷贝jdk的tools.jar
拷贝到hive的lib目录下。

其一时半刻候就足以打开那么些web界面了。

hive的长距离服务

开始hive的中远距离服务的一声令下如下: hive –service hiveserver &
假若要利用jdbc连接hive进行操作,这年就要求开启hive的远程服务。


Hive架构

威尼斯人线上娱乐 3

image.png

 一、数据处理分类

  一、用户接口

第陆部分

Hive的数据类型

  • 主干数据类型:
    tinyint/smallint/int/bigint 整数类型
    float/double 浮点类型
    boolean 布尔项目
    string/varchar/char 字符串类型

  • 复杂数据类型:
    array:数组类型,由一名目繁多壹样的数据类型的因素构成
    map:集合类型,包括key->value键值对,能够透过key来访问元素。
    struct:结构类型,能够分包不一致数据类型的要素,那几个成分得以通
    过“点语法”的法子来获得所须求的因素。

create table student (
age int,
name string,
grade array<float>);

插入的时候就是: {1, wangmin, [10,20,30]};

create table student1 (
sid int,
sname string,
grade map<string, float>);

插入数据的时候: {1,wangmin,<'大学语文', 85>}

create table studnet3(
sid int,
sname string,
grades array<map<string, float>>);

插入数据的时候:{1, wangmin, [<'大学语文‘, 12>,<'大学英语’,23>]}

create table student4(
sid int,
info struct<nname:string, age:int, sex:string>);

插入数据的时候:{1, {'wangmin', 23, ‘男’}}
  • 日子项目:
    Date: 日期(年月日)
    Timestamp: 是unix的三个时刻偏移量
    select unix_timestamp(); 查看系统的年月偏移量

Hive安装

Hive依据metastore的囤积地点差别,分为二种安装模式:
内嵌形式,本地情势,远程情势。
内嵌方式正是应用derdy存款和储蓄元数据;
威尼斯人线上娱乐,地面情势是将hvie.metastore.local设置为true,正是说metastore和hive客户端安装在相同台机械上;
长途形式指的是我们强烈钦点metastore安装的机械地点,而且能够钦点四个,需求加以参数hive.metastore.uris并且hive.metastore.local必须设置为false。
Hive远程形式安装,使用mysql举行元数据的贮存。

安装步骤:

  1. 安装mysql数据库。
  2. hive当地方式安装。

(一)联机事务处理
OLTP(on-linetransaction processing)  

    Hive有多个用户接口:

第陆部分

Hive的多寡存储

依据HDFS,未有专门的数目存款和储蓄格式
Hive的数据模型:

表可以分为以下三种:

  • Table 内部表
  • Partition 分区表
  • External Table 外部表
  • Bucket Table 桶表

create table t1
(tid int, tname string, age int);

create table t2
(tid int, tname string age int);
localtion '/mytable/hive/t2';

create table t3
(tid int, tname string, age int)
row format delimited fields terminated by ',';

create table t4
as
select * from sample_date;

create table t5
row format delimited fields terminated by ','
as
select * from sample_data;

分区表:

create table partition_table
(sid int, sname string)
partitioned by (gender string)
row format delimited fields terminated by ',';

成立那张表的时候就算以gender实行分区 分区表可以加速查询功能

Hive安装–Mysql安装

设置步骤:

  1. 运用root用户设置mysql。
  2. 修改/etc/my.cnf文件中的配置音信。
  3. 启动mysql
  4. 设置root用户密码
  5. root用户登录
  6. 始建hive元数据的mysql用户并授权。
  7. 使用新用户登录,然后创造数据库,并修改数据库的连天格局。

  OLTP是观念的关系型数据库的重大行使,主即使基本的、平常的事务处理,例如银行交易。OLTP系统强调数据库内部存款和储蓄器功能,强调内部存款和储蓄器种种指标的命令率,强调绑定变量,强调并发操作;

    • 指令行接口(CLI):以命令行的款型输入SQL语句实行数据数据操作
    • Web界面:通过Web格局展开访问。     
    • Hive的中远距离服务措施:通过JDBC等方法展开走访。              

Hive安装–Hive安装

设置步骤:

  1. 下载hive,下载地址:http://archive.cloudera.com/cdh5/cdh/5/hive-0.13.1-cdh5.3.6.tar.gz
  2. 解压下载的压缩包。
  3. 安顿环境变量hive-site.xml。
  4. 将mysql-connector-java-5.1.3一.jar运动到hive的lib文件夹下。
  5. 将bin目录添加到$PATH环境变量中去。
  6. 启动metastore服务。hive –service metastore &.
  7. 跻身hive的shell客户端,验证是不是安装成功。

 

  二、元数据存款和储蓄

Hive Web界面安装

Hive提供了叁个Web的操作客户端,一般大家经过该页面查看hive的音讯,配置新闻包罗:
hive.hwi.listen.host钦命监听ip(暗许0.0.0.0),
hive.hwi.listen.port监听端口(默许9999),
hive.hwi.war.file=xxx。

除此以外索要将java的tool.jar文件移动到hive的lib文件夹中。

运转命令为:
hive --service hwi &

一、 安装mysql
    1. 使用root用户: su root
    2. 安装
        yum install mysql
        yum install mysql-server
        yum install mysql-devel(可选)
    3. 修改配置信息,添加: vim /etc/my.cnf
        [mysql]
        default-character-set=utf8
        [mysqld]
        character-set-server=utf8
        lower_case_table_names=1
    4. 启动mysql:service mysqld restart/stop/start
    5. 配置超级用户名和密码, mysqladmin -u root password 123456
    6. root用户登录mysql -u root -p 123456
    7. 创建mysql用户:create user 'hive' identified by 'hive';
    8. 授权:grant all privileges on *.* to 'hive'@'%' with grant option
    9. 重启一下这个mysql服务。
    10. 使用hive用户创建数据库并修改连接信息。
       create database hive;
       alter database hive character set latin1;


二、 安装hive
    1. 下载hive:http://archive.cloudera.com/cdh5/cdh/5/hive-0.13.1-cdh5.3.6.tar.gz
    2. hive的帮助文档位置:https://cwiki.apache.org/confluence/display/Hive/LanguageManual,
        hive官网:http://hive.apache.org
    3. 参考hive-site.xml文件
    4. 将bin目录添加到path目录中,
        vim ~/.bash_profile
            export HIVE_HOME=/home/hadoop/bigdater/hive-0.13.1-cdh5.3.6/
            export PATH=$PATH:$HIVE_HOME/bin
        source ~/.bash_profile
    5. 移动mysql驱动jar到hive的lib文件夹下。
    6. 启动metastore服务(启动hdfs+yarn服务)
        hive --service metastore &
    7. 进入hive的客户端
        hive



<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://hh:9083</value>
  </property>
  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/hive</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hh:3306/hive?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
  </property>
  <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>hive</value>
  </property>
</configuration>

(贰)联机分析处理P
OLAP(On-Line AnalyticalProcessing)

   
将元数据存款和储蓄在关周详据库中(MySql、Derby),元数据包含表的性质、表的称呼、表的列、分区及其性质以及表数据所在的目录等。

  OLAP是数据仓库系统的基本点运用,援助复杂的剖析操作,侧重决策辅助,并且提供直观易懂的询问结果。OLAP系统则强调数据解析,强调SQL执行市镇,强调磁盘I/O,强调分区等。

  3、解释器、编译器、优化器

 

   
分别形成SQL查询语句从词法分析、语法分析、编写翻译、优化以及查询安插的转移。生成的询问布署存款和储蓄在HDFS中,并在紧接着由MapReduce调用实践。

 

  四、数据存款和储蓄

—类比表

   
Hive未有特别的数据存储格式,也从不为数据建立目录,Hive中保有数据都存款和储蓄在HDFS中。

威尼斯人线上娱乐 4

    Hive包含以下数据模型:表、外部表、分区和桶

 

二、Metadata,Metastore 的作用

 

  Metadata即元数据:  
元数据包蕴用Hive制造的database、tabel等的元音信。元数据存款和储蓄在关系型数据库中。如Derby、MySQL等。

2.hive架构原理

  Metastore的效果是:
 客户端连接metastore服务,metastore再去老是MySQL数据库来存取元数据。

用户接口主要有三个:CLI命令行,Client 和 WUI。

  有了metastore服务,就足以有五个客户端同时连接,而且那么些客户端不必要领会MySQL数据库的用户名和密码,只须求再而三metastore
服务即可。

威尼斯人线上娱乐 5

三、Hive的元数据存款和储蓄(Metastore二种配备格局)

(1)最常用的是
CLI 命令行,Cli运营的时候,会同时起步一个Hive副本;
Client是Hive的客户端,用户连接至Hive Server。

  出于元数据持续地修改、更新,所以Hive元数据不吻合储存在HDFS中,一般存在ENVISIONDBMS中。

在运维Client形式的时候,须求提出Hive
Server所在节点,并且在该节点运转Hive Server。
WUI是经过浏览器访问Hive。

  
一、内嵌形式(Embedded)

(二)Hive将
元数据存款和储蓄在数据库中,如mysql、 derby 。
Hive中的元数据包蕴表的名字,表的列和分区及其性质,表的品质(是不是为外

   
 hive服务和metastore服务运营在同3个经过中,derby服务也运营在该进度中.

 部表等),表的数量所在目录等。

   
 内嵌情势应用的是内嵌的Derby数据库来储存元数据,也不须求格外起Metastore服务。

(叁)解释器、编写翻译器、优化器完结HQL查询语句从词法分析、语法分析、编写翻译、优化以及询问计划的成形。生成的询问安排存款和储蓄在HDFS中,

   
 这么些是默许的,配置不难,不过三遍只可以二个客户端连接,适用于用来试验,不适用于生产环境。

并在随后有MapReduce调用实践。

   二、本地方式(Local):本地安装mysql 替代derby存款和储蓄元数据

(四)Hive的多寡存款和储蓄在HDFS中,当先3/6的查询、总计由MapReduce完成(包含*的查询,比如select
* from tbl不会生成MapRedcue职务)

    那种装置格局和嵌入式的界别在于,不再行使内嵌的Derby作为元数据的存储介质,而是使用其余数据库比如MySQL来存储元数据。

 

    hive服务和metastore服务运作在同3个进度中,mysql是独立的经过,能够一如既往台机器,也足以在长距离机器上。

 二、hive搭建及三种形式

    那种方式是多个多用户的形式,运维四个用户client连接受三个数据库中。那种方法壹般作为集团内部同时接纳Hive。

 1.hive的搭建

    每3个用户须要求有对MySQL的拜访职务,即每多少个客户端使用者须求驾驭MySQL的用户名和密码才行。

 

  <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://127.0.0.1:3306/hive? createDatabaseIfNotExit=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>root</value>
    </property>
    <property>
      <name>hive.metastore.uris</name>
      <value></value>
      <description>指向的是运行metastore服务的主机,这是hive客户端配置,metastore服务不需要配置</description>
   </property>
    <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/user/hive/warehouse</value>
      <description>hive表的默认存储路径,为HDFS的路径location of default database for the warehouse</description>
    </property>

 一.一、安装
Hive安装环境以及前提表明:首先,Hive 是借助于 hadoop 系统的,因而在运转Hive 之前须要确定保障已经搭建好 hadoop 集群环境。

 

—安装多个关系型数据
mysql

  叁、远程形式(Remote): 远程安装mysql 替代derby存款和储蓄元数据

威尼斯人线上娱乐 6

    Hive服务和metastore在分裂的历程内,大概是例外的机械,该形式需求将hive.metastore.local设置为false,将hive.metastore.uris设置为metastore服务器U凯雷德L,

 

    假设有两个metastore服务器,将U帕杰罗L之间用逗号分隔,metastore服务器U哈弗L的格式为thrift://12七.0.0.一:90八三。

一.二、配置环境变量:(类似于上面那样,跟以前hadoop五成.x 配置一样)

    远程元存款和储蓄要求单独起metastore服务,然后每一种客户端都在安插文件里安插连接到该metastore服务。


HADOOP_HOME=/**/*

HIVE_HOME=$*/**/*

    将metadata作为四个独立的服务开展运维。各类客户端通过beeline来连接,连接以前无需理解数据库的密码。

一.三、替换和添加相关 jar
包–修改 HADOOP_HOME\share/hadoop/yarn/lib 目录下的
jline-*.jar将其替换成 脱肛E_HOME\lib 下的 jline-2.12.jar。

    仅连接远程的mysql并不可能称为“远程情势”,是还是不是远程指的是metastore和hive服务是还是不是在同壹进度内.

–将 hive 连接
mysql 的 jar 包:mysql-connector-java-伍.一.3二-bin.jar拷贝到 hive
解压目录的 lib 目录下

    hive metastore 服务端运转命令:
hive --service metastore -p <port_num>
    假设不加端口私下认可运营:hive --service metastore,则暗许监听端口是:90八3。

1.四、修改配置文件(接纳三 种方式里哪1种)见两种安装情势
1.5、启动
hive:bin/hive

    注意客户端中的端口配置须要和起步监听的端口一致。服务端运营寻常后,客户端就足以推行hive操作了。

 

      客户端连接metastore服务配置如下

二.三种方式: (内嵌方式/本地情势/远程形式)

 <property>
    <name>hive.metastore.uris</name>
    <value>thrift://127.0.0.1:9083,thrift://127.0.0.1:9084</value>
    <description>指向的是运行metastore服务的主机</description>
  </property>

 贰.一内嵌情势

  在劳务器端运行三个MetaStoreServer,客户端应用Thrift协议通过MetaStoreServer访问元数据库。如下图:    

那种装置格局的元数据是内嵌在Derby数据库中的,只好同意1个对话连接,数据会存放到HDFS上。

  威尼斯人线上娱乐 7

这种方法是最简便易行的存款和储蓄情势,只供给hive-site.xml做如下配置便可(注:使用
derby 存款和储蓄方式时,运行 hive 会在当

四、Thrift 服务 

前目录生成四个derby 文件和3个 metastore_db)

  通过hiveServer/hiveServer2运转Thrift服务,客户端连接Thrift服务走访Hive数据库(JDBC,JAVA等一连Thrift服务走访Hive)。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=metastore_db;creat
e=true</value> </property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
</configuration>
 <property>
    <name>hive.server2.thrift.port</name>
    <value></value>
    <description>Port number of HiveServer2 Thrift interface when hive.server2.transport.mode is 'binary'.</description>
  </property>

  <property>
    <name>hive.server2.thrift.bind.host</name>
    <value>127.0.0.1</value>
    <description>Bind host on which to run the HiveServer2 Thrift service.</description>
  </property>

  <property>
    <name>hive.server2.enable.doAs</name>
    <value>false</value>
    <description>
      Setting this property to true will have HiveServer2 execute
      Hive operations as the user making the calls to it.
    如果为True:Hive Server会以提交用户的身份去执行语句
    如果为False:会以hive server daemon的admin user来执行语句

    </description>
  </property>

 

  启动Thrift服务:**hive
–service hiveserver2**

 2.二 本地格局

   测试Thrift服务:

 那种设置格局和嵌入式的区分在于,不再选用内嵌的
Derby 作为元数据的存款和储蓄介质,而是选拔别的数据库比如 MySQL
来储存元数据且是二个多用户的形式

   新开1个指令行窗口,执行beeline命令:

运转多个用户
client 连接到三个数据库中。那种措施相似作为公司里面同时利用
Hive。那里有二个前提,每二个用户必要求有对 MySQL 的走访职务,即每

shuwendeMBP:~ shuwen$ beeline
Beeline version 1.2.1.spark2 by Apache Hive
beeline> !connect jdbc:hive2://127.0.0.1:10000
Connecting to jdbc:hive2://127.0.0.1:10000
Enter username for jdbc:hive2://127.0.0.1:10000: shuwen
Enter password for jdbc:hive2://127.0.0.1:10000: ******
log4j:WARN No appenders could be found for logger (org.apache.hive.jdbc.Utils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Connected to: Apache Hive (version 1.2.2)
Driver: Hive JDBC (version 1.2.1.spark2)
Transaction isolation: TRANSACTION_REPEATABLE_READ
0: jdbc:hive2://127.0.0.1:10000> show databases;
+----------------+--+
| database_name  |
+----------------+--+
| db_2_1         |
| default        |
| netuml         |
+----------------+--+
3 rows selected (1.941 seconds)

二个客户端使用者必要知道
MySQL 的用户名和密码才行。那种存款和储蓄格局索要在地点运维1个 mysql
服务器,并作如下配置(下边三种采用 mysql 的章程,

 

内需将 mysql 的
jar 包拷贝到$目赤E_HOME/lib 目录下)。

伍、Hive的两种运维格局

注: mysql-connector-java-5.1.3二-bin.jar拷贝到
hive 解压目录的 lib 目录下

   1、hive 命令行形式

 (jar包 链接:
密码:4k6w)

    进入hive安装目录,输入bin/hive的施行顺序,或者输入 hive –service
cli,用于linux平台命令行查询,查询语句基本跟mysql查询语句看似

 vim hive-site-xml   配置如下:

   二、hive
web界面包车型客车开发银市场价格势

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
    <!--数据仓库的位置,默认是/user/hive/warehouse-->
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_rlocal/warehouse</value>
</property>
<property>
    <!--控制hive是否连接一个远程metastore服务器还是开启一个本地客户端jvm-->
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
    <!--JDBC连接字符串,默认jdbc:derby:;databaseName=metastore_db;create=true-->
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://node03/hive_remote?createDatabaseIfNotExist=t
rue</value>
</property>
<property>
    <!--JDBC的driver,默认org.apache.derby.jdbc.EmbeddedDriver-->
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
    <!--username,默认APP-->
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>

    Hive 二.0 现在才支撑Web
UI的

 

    bin/hive –service hwi (&
表示后台运营)

 

    用于通过浏览器来拜会hive,感觉没多大用场,浏览器访问地址是:12七.0.0.壹:9999/hwi

启动:

   三、hive 远程服务 (端口号10000)
运转方式 (Thrift服务)

一拉开集群(hive需求依靠集群);  service  iptables stop     zkServer.sh
start   start-all.sh

     bin/hive –service hiveserver2&(&代表后台运维)

2打开mysql服务器:先在mysql中链接到客户端,本机成立的数据库名字为hive

   
 用java,python等程序达成通过jdbc等驱动的访问hive就用那种起动情势了,那么些是程序员最急需的措施了

威尼斯人线上娱乐 8

 

 

6、Hive两种内置服务 

 再到客户端:service  mysqld start    —–> mysql  -u root   -p  
(用户名/密码)

  执行bin/hive –service help 如下:

 威尼斯人线上娱乐 9

shuwendeMBP:~ shuwen$ hive --service help
Usage ./hive <parameters> --service serviceName <service parameters>
Service List: beeline cli help hiveburninclient hiveserver hiveserver2 hwi jar lineage metastore metatool orcfiledump rcfilecat schemaTool version 
Parameters parsed:
  --auxpath : Auxillary jars 
  --config : Hive configuration directory
  --service : Starts specific service/component. cli is default
Parameters used:
  HADOOP_HOME or HADOOP_PREFIX : Hadoop install directory
  HIVE_OPT : Hive options
For help on a particular service:
  ./hive --service serviceName --help
Debug help:  ./hive --debug --help

 

  我们得以看到上面输出项Server
List,里边展现出Hive帮忙的劳动列表,beeline cli help hiveserver二hiveserver hwi jar lineage metastore metatool orcfiledump rcfilecat。

 ③启动hive:  执行hive

  下边介绍最实惠的1些劳动

威尼斯人线上娱乐 10

  一、cli:是Command Line Interface
的缩写,是Hive的授命行界面,用的可比多,是暗中同意服务,直接能够在命令行里使用。

 

  3、hwi:其实就是hive web interface的缩写它是hive的web借口,是hive
cli的一个web替代方案。

小规模试制牛刀:

  2、hiveserver:这么些能够让Hive以提供Thrift服务的服务器方式来运营,能够允许许多个例外语言编写的客户端举办通信,使用供给运行HiveServer服务以和客户端联系,

创建一个数据库:zhangsan

hive> show databases;
OK
default
wuxiong
Time taken: 0.051 seconds, Fetched: 2 row(s)
hive> create  database  zhangsan;
OK
Time taken: 0.113 seconds
hive> show databases;
OK
default
wuxiong
zhangsan
Time taken: 0.046 seconds, Fetched: 3 row(s)
hive> 

    大家能够经过设置尖锐湿疣E_PO纳瓦拉T环境变量来安装服务器所监听的端口,在私下认可情况下,端口号为一千0,那几个能够经过以下办法来运维Hiverserver:

 

    bin/hive –service hiveserver -p 10002

是否见效:1查看集群对应的目录 :  
 hive-site-xml配置文件中已定义了目录的寄放地点:/user/hive/warehouse  
 ——>打开node0二节点(active)

    在那之中-p参数也是用来内定监听端口的
  
  四、jar:与hadoop jar等价的Hive接口,那是运作类路径中并且涵盖Hadoop
和Hive类的Java应用程序的便利方法

威尼斯人线上娱乐 11

  伍、metastore:在暗中同意的动静下,metastore和hive服务运作在同八个进程中,使用那些服务,能够让metastore作为2个独立的经过运维。

②本地mysql数据库hive中查看:hive_remote
 —–>dbs—–>会发现:

    我们可以透过METASTOE——PORT来钦点监听的端口号

 威尼斯人线上娱乐 12

 

 

 7、难题总计

 ok,数据库创制达成!存放地方也能找到!

Could not create ServerSocket on address 0.0.0.0/0.0.0.0:9083

碰着这种景况大家都找不到头绪,是因为您最先运转了hive的metastore,能够输入jps
翻开有没有RunJar
接下来再输入
hive –service metastore启动

接上述’zhangsan’数据库继续开创一张表:

 

 use   zhangsan;

style=”font-size: 15px; color: #000000;”>Hive在spark二.0.0运行时无法访问spark-assembly-*.jar的化解办法

ls:
/usr/local/share/spark-2.0.0-bin-hadoop2.7/lib/spark-assembly-*.jar:
No such file or directory
察觉重大原因是:在/<PathToHive>/bin/hive文件中,有诸如此类的授命:加载spark中相关的JA翼虎包

if [[ -n "$SPARK_HOME" ]]
then
sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar`
CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}"
fi

style=”font-family: 大篆; font-size: 1四px;”>不过spark升级到spark2以往,原有lib目录下的大JAHighlander包被分流成四个小JA奥德赛包,原来的spark-assembly-*.jar已经不设有,所以hive未有艺术找到那些JA奇骏包。

style=”font-family: 行书; font-size: 1肆px;”>消除情势:修改/<PathToHive>/bin/hive文件,将加载原来的lib/spark-assembly-*.jar`替换成jars/*.jar,就不会现出如此的难题。

 威尼斯人线上娱乐 13

 

查找:①mysql—>hive—–>hive_remote——>TBLS

 

威尼斯人线上娱乐 14

一.hive.metastore.uris针对性的是运维metastore服务的主机,并不是指向运营hiveserver的主机,那台主机不用运营hiveserver也ok;

二.平昔利用hive命令运维shell环境时,其实早就有意无意运营了hiveserver,所以远程方式下实际只须求独自运营metastore,然后就能够进来shell环境常规使用

三.hiveserver和metastore进度名都叫RunJar。

 ②集群中:

 

威尼斯人线上娱乐 15

 二.3 远程形式

     
 remote:那种存款和储蓄格局必要在远端服务器运营二个 mysql 服务器,并且必要在
Hive 服务器运营 meta服务。本机配置了

四个节点:node0一、node0贰、node0叁,node0壹季春布局了mysql,未来以node0二为服务端,node0三为客户端依次配置系统文件

hive-site.xml 

 node0二配置如下:

 

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://node01:3306/hive2?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>123456</value>
    </property>
</configuration>

 

 

node0三配置如下:

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>hive.metastore.local</name>
        <value>false</value>
        </property>
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://node01:9083</value>
    </property>
</configuration>

 

启动:

node02 (服务端):  hive –server  metastore

node03(客户端):启动 hive

 


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图