HIVE安装使用说明Word文档格式.docx

上传人:b****6 文档编号:17335714 上传时间:2022-12-01 格式:DOCX 页数:14 大小:271.76KB
下载 相关 举报
HIVE安装使用说明Word文档格式.docx_第1页
第1页 / 共14页
HIVE安装使用说明Word文档格式.docx_第2页
第2页 / 共14页
HIVE安装使用说明Word文档格式.docx_第3页
第3页 / 共14页
HIVE安装使用说明Word文档格式.docx_第4页
第4页 / 共14页
HIVE安装使用说明Word文档格式.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

HIVE安装使用说明Word文档格式.docx

《HIVE安装使用说明Word文档格式.docx》由会员分享,可在线阅读,更多相关《HIVE安装使用说明Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。

HIVE安装使用说明Word文档格式.docx

Hive

Hadoop

hdfs2

10.68.19.182

hdfs3

10.68.19.183

MySQL

二、MySQL安装配置

2.1.MySQL安装

登录到hdfs3中,安装MySQL服务器。

$sudoapt-getinstallmysql-server

修改my.cfg的配置文件

$sudovi/etc/mysql/my.cfg

修改内容如下:

bind-address 

 

=10.68.19.183

:

wq

重新启动mysql服务

$sudoservicemysqlrestart

2.2.创建Hive需要的数据库和用户

$mysql-uroot-p

依次输入以下命令:

#创建hive用户

insertintomysql.user(Host,User,Password)values("

localhost"

"

hive"

password("

));

#创建数据库

createdatabasehive;

#授权

grantallonhive.*tohive@'

%'

identifiedby'

hive'

;

localhost'

flushprivileges;

#退出

exit

三、Hive安装

3.1.下载Hive

从官网(http:

//hive.apache.org/downloads.html)上下载最新的稳定版本地址,并上传到服务器上。

本安装示例采用的版本为apache-hive-1.2.1-bin.tar.gz。

3.2.解压并配置环境变量

解压安装文件到/opt目录

$tar-zxvfapache-hive-1.2.1-bin.tar.gz-C/opt

修改环境变量

$sudovi/etc/profile

修改如下内容

exportHIVE_HOME=/opt/hive-1.2.1

exportPATH="

$JAVA_HOME/bin:

$HADOOP_HOME/bin:

$HIVE_HOME/bin:

$PATH"

启用配置

$source/etc/profile

3.3.修改配置文件

$cd$HIVE_HOME

$cpconf/hive-default.xml.templateconf/hive-site.xml

$viconf/hive-site.xml

修改以下内容的值

<

configuration>

<

property>

name>

javax.jdo.option.ConnectionURL<

/name>

value>

jdbc:

mysql:

//10.68.19.183:

3306/hive<

/value>

description>

JDBCconnectstringforaJDBCmetastore<

/description>

/property>

javax.jdo.option.ConnectionDriverName<

com.mysql.jdbc.Driver<

DriverclassnameforaJDBCmetastore<

javax.jdo.option.ConnectionPassword<

hive<

passwordtouseagainstmetastoredatabase<

javax.jdo.option.ConnectionUserName<

Usernametouseagainstmetastoredatabase<

hive.exec.local.scratchdir<

/data/hive/scratach<

LocalscratchspaceforHivejobs<

hive.downloaded.resources.dir<

/data/hive/download<

Temporarylocaldirectoryforaddedresourcesintheremotefilesystem.<

hive.querylog.location<

/data/hive/querylog<

LocationofHiveruntimestructuredlogfile<

hive.server2.logging.operation.log.location<

/data/hive/operation_logs<

Topleveldirectorywhereoperationlogsarestoredifloggingfunctionalityisenabled<

...

/configuration>

3.4.创建需要的目录

$mkdir/data/hive

$mkdir/data/hive/scratach

$mkdir/data/hive/download

$mkdir/data/hive/querylog

$mkdir/data/hive/operation_logs

3.5.上传MySQL驱动

将mysql-connector-java-5.1.36.jar上传到$HIVE_HOME/lib目录下。

3.6.启动

$hiveserver2

3.7.基本操作验证

$beeline

!

connectjdbc:

hive2:

//hdfs1:

10000

输入当前用户名,密码为空

或者直接输入

$./bin/beeline–ujdbc:

#查看当前数据库

showdatabases;

#查看所有表

showtables;

#创建表

createtableusers(user_idint,fnamestring,lnamestring);

#插入数据

INSERTINTOusers(user_id,fname,lname)VALUES(1,'

john'

'

smith'

);

INSERTINTOusers(user_id,fname,lname)VALUES(2,'

doe'

INSERTINTOusers(user_id,fname,lname)VALUES(3,'

#查询数据

select*fromuserslimit2;

selectcount

(1)fromusers;

3.8.数据导入示例

示例场景说明:

先将输入导入到tmp_sell_day_corp_cig,再将数据写入sell_day_corp_cig中。

创建表

createtabletmp_sell_day_corp_cig

sell_dstring,

cig_codestring,

stat_codestring,

statyearsmallint,

halfyearsmallint,

quartersmallint,

statmonthsmallint,

stattendaysmallint,

statdatesmallint,

cig_provincestring,

cig_factorystring,

trademark_codestring,

cig_insidestring,

cig_gradestring,

cig_famousstring,

cig_hundredstring,

cig_kindstring,

cig_lowstring,

cig_seizurestring,

sell_amountdouble,

sell_total_moneydouble,

gross_profitdouble,

demand_amountdouble

partitionedby(corp_codestring)

ROWFORMATDELIMITEDFIELDSTERMINATEDBY'

'

createtablesell_day_corp_cig

clusteredby(sell_d)sortedby(cig_code)INTO16BUCKETS

STOREDASorcfile;

导入数据到临时表

LOADDATALOCALINPATH'

/home/whcyit/data.txt'

OVERWRITEINTOTABLEtmp_sell_day_corp_cigpartition(corp_code='

11420101'

启用分桶,写入正式表

sethive.enforce.bucketing=true;

INSERTOVERWRITETABLEsell_day_corp_cigpartition(corp_code='

selectsell_d,cig_code,stat_code,statyear,halfyear,quarter,statmonth,stattenday,statdate,cig_province,cig_factory,trademark_code,cig_inside,cig_grade,cig_famous,cig_hundred,cig_kind,cig_low,cig_seizure,sell_amount,sell_total_money,gross_profit,demand_amountfromtmp_sell_day_corp_cigWHEREcorp_code='

显示分区

SHOWPARTITIONSsell_day_corp_cig;

查询数据

selectcount

(1)fromsell_day_corp_cig;

selectsum(a.sell_amount),sum(a.sell_total_money),a.cig_code,a.corp_codefromsell_day_corp_cigagroupbya.cig_code,a.corp_code;

建立索引

createindexidx_sell_day_corp_cigontablesell_day_corp_cig(cig_code)

as'

pact.CompactIndexHandler'

withdeferredrebuild

INTABLEidx_sell_day_corp_cig_table;

alterindexidx_sell_day_corp_cigonsell_day_corp_cigrebuild;

四、HIVE集群配置

在Hive上述的安装配置中MetaStore和HiverServer2(ThriftServer)两个部分存储单点问题,对于MetaStore因采用数据库进行保存,需要使用数据库本身的方式实现高可用。

对于HiverServer2的集群方式一般可以采用两种模式:

一是采用HAProxy(四层应用集群)进行流量分发,二是采用ZooKeeper实现Hive集群配置。

本安装仅说明采用ZooKeeper实现HiveServer2的高可用方式。

4.1.ZooKeeper高可用的原理

4.2.修改hive-site.xml配置

hive.zookeeper.quorum<

hdfs1:

2181,hdfs2:

2181,hdfs3:

2181<

hive.server2.support.dynamic.service.discovery<

true<

hive.server2.zookeeper.namespace<

hiveserver2<

4.3.启动HiveServer2

$$HIVE_HOME/bin/hiveserver2

4.3.验证集群启用

$zkCli.sh

$ls/hiveserver2

4.4.集群的使用

JDBC或ODBC采用以下方式进行连接

//<

zookeeper_ensemble>

serviceDiscoveryMode=zooKeeper;

zooKeeperNamespace=<

hiveserver2_namespace>

其中:

ZooKeeper地址和端口

例如:

Stringurl="

2181,hdfs2:

2181,hdfs3:

2181/;

zooKeeperNamespace=hiveserver2"

Connectioncon=DriverManager.getConnection(url,"

whcyit"

"

"

该连接方式不支持beeline客户端,当JDBC驱动能够正常运行识别。

五、Hive基础概念

5.1.Hive与传统数据库的区别

Hive作为基于Hadoop的数据仓库产品,虽然其采用类似数据库定义语言(DDL,create/drop/alter/truncate/show/describe)、数据库操作语言(DML:

load/insert/update/delete/import/export)、SQL语言实现了数据的统计分析功能,但其与传统关系型数据库有着很大区别。

但Hive同样在飞速发展中,越来越多的传统数据库特性在Hive中得到了支持,例如:

ACID事务特性、索引、视图等。

⏹不支持删除操作

Hive默认情况下不支持数据删除操作,如需要删除单条记录需要启动hive的测试模式,对于实际数据仓库类应用中应不存在类似应用。

对于大批量删除,只能采用重新导入数据的方式进行覆盖。

⏹不支持存储过程

Hive没有提供存储过程的支持,对于复杂汇总依旧不能采用SQL进行有效处理。

第三方提供了HPL/SQL的支持(http:

//www.hplsql.org/download)还需要进一步的学习。

⏹不支持部分SQL特性

不支持主外键、条件约束;

不支持类似SQL中in的用法(子查询),可以采用leftsemijoin(半连接)进行替代;

5.2.Hive支持的数据模型

Hive中所有的数据都存储在HDFS中,Hive中包含以下数据模型:

Table(表),ExternalTable(外部表),Partition(分区),Bucket(桶)。

Hive中的Table和数据库中的Table在概念上是类似的,每一个Table在Hive中都有一个相应的目录存储数据。

例如,一个表app,它在HDFS中的路径为:

/user/hive/warehouse/app。

Partition(分区)对应于数据库中的Partition列的密集索引,但是Hive中Partition的组织方式和数据库中的很不相同。

在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition的数据都存储在对应的目录中。

Buckets(桶)对指定列计算hash,根据hash值切分数据,目的是为了并行,每一个Bucket对应一个文件。

ExternalTable指向已经在HDFS中存在的数据,可以创建Partition。

它和Table在元数据的组织上是相同的,而实际数据的存储则有较大的差异。

Table(内部表)的创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数据会被移动到数据仓库目录中;

之后对数据对访问将会直接在数据仓库目录中完成。

删除表时,表中的数据和元数据将会被同时删除。

ExternalTable只有一个过程,加载数据和创建表同时完成(CREATEEXTERNALTABLE……LOCATION),实际数据是存储在LOCATION后面指定的HDFS路径中,并不会移动到数据仓库目录中。

当删除一个ExternalTable时,仅删除hive的元数据,不会删除hdfs上对应的文件。

5.3.Hive的数据存储格式

Hive支持以下存储格式:

⏹TextFile

文本格式(默认)。

⏹SequenceFile

SequenceFile是HadoopAPI提供的一种二进制文件,它将数据以<

key,value>

的形式序列化到文件中

⏹RCFile

RCFile是Hive推出的一种专门面向列的数据格式。

它遵循“先按列划分,再垂直划分”的设计理念。

当查询过程中,针对它并不关心的列时,它会在IO上跳过这些列。

⏹ORCFile

全称为OptimizedRowColumnaerfile,针对RCFile存储格式进行一些优化。

⏹Avro

Avro是一种用于支持数据密集型的二进制文件格式。

它的文件格式更为紧凑,若要读取大量数据时,Avro能够提供更好的序列化和反序列化性能。

5.4.Hi

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1