ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:271.76KB ,
资源ID:4410335      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4410335.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(HIVE安装使用说明.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

HIVE安装使用说明.docx

1、HIVE安装使用说明HIVE安装使用说明一、 Hive简介1.1. Hive是什么Hadoop作为分布式运算的基础架构设施,统计分析需要采用MapReduce编写程序后,放到Hadoop集群中进行统计分析计算,使用起来较为不便,Hive产品采用类似SQL的语句快速实现简单的MapReduce统计,很大程度降低了Hadoop的学习使用成本。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供基础的SQL查询功能,可以将SQL语句转换为MapReduce任务运行,而不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。1.2. 部署架构 Hiv

2、e中的Driver为核心驱动部分,包括SQL语句的解释、编译为MapReduce任务,并进行优化、执行。 Hive用户访问包括4种运行和访问方式,一是CLI客户端;二是HiveServer2和Beeline方式;三是HCatalog/WebHCat方式;四是HWI方式。其中CLI、Beeline均为控制台命令行操作模式,区别在于CLI只能操作本地Hive服务,而Beeline可以通过JDBC连接远程服务。HiveServer2为采用Thrift提供的远程调用接口,并提供标准的JDBC连接访问方式。HCatalog是Hadoop的元数据和数据表的管理系统,WebHCat则提供一条Restful的

3、HCatalog远程访问接口,HCatalog的使用目前资料很少,尚未充分了解。HWI是Hive Web Interface的简称,可以理解为CLI的WEB访问方式,因当前安装介质中未找到HWI对应的WAR文件,未能进行使用学习。Hive在运行过程中,还需要提供MetaStore提供对元数据(包括表结构、表与数据文件的关系等)的保存,Hive提供三种形式的MetaStore:一是内嵌Derby方式,该方式一般用演示环境的搭建;二是采用第三方数据库进行保存,例如常用的MySQL等;三是远程接口方式,及由Hive自身提供远程服务,供其他Hive应用使用。在本安装示例中采用的第二种方式进行安装部署。

4、备注:在本文后续的安装和说明中,所有示例均以HiverServer2、Beeline方式进行。另:因Hive在查询时性能较差,后期拟计划采用SPARK或Presto进行替代,因此本安装手册不对Hive的集群方案进行描述。1.3. 环境说明本安装示例在Ubuntu 14.04.3的虚拟器中进行安装,并提前安装配置Hadoop。机器名IP地址安装软件启用服务hdfs110.68.19.184HiveHadoophdfs210.68.19.182Hadoophdfs310.68.19.183MySQLHadoop二、 MySQL安装配置2.1. MySQL安装登录到hdfs3中,安装MySQL服务器

5、。$ sudo apt-get install mysql-server修改my.cfg的配置文件$ sudo vi /etc/mysql/my.cfg修改内容如下:bind-address = 10.68.19.183:wq重新启动mysql服务$ sudo service mysql restart2.2. 创建Hive需要的数据库和用户$ mysql -uroot -p依次输入以下命令:# 创建hive用户insert into mysql.user(Host,User,Password) values(localhost,hive,password(hive);# 创建数据库creat

6、e database hive;# 授权grant all on hive.* to hive% identified by hive;grant all on hive.* to hivelocalhost identified by hive;flush privileges;# 退出exit三、 Hive安装3.1. 下载Hive 从官网(http:/hive.apache.org/downloads.html)上下载最新的稳定版本地址,并上传到服务器上。 本安装示例采用的版本为apache-hive-1.2.1-bin.tar.gz。3.2. 解压并配置环境变量解压安装文件到/opt目

7、录$ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /opt修改环境变量$ sudo vi /etc/profile修改如下内容export HIVE_HOME=/opt/hive-1.2.1export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin:$PATH:wq启用配置$ source /etc/profile3.3. 修改配置文件$ cd $HIVE_HOME$ cp conf/hive-default.xml.template conf/hive-site.xml$ vi conf/hiv

8、e-site.xml修改以下内容的值 javax.jdo.option.ConnectionURL jdbc:mysql:/10.68.19.183:3306/hive JDBC connect string for a JDBC metastore javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver Driver class name for a JDBC metastore javax.jdo.option.ConnectionPassword hive password to use against metastore

9、database javax.jdo.option.ConnectionUserName hive Username to use against metastore database hive.exec.local.scratchdir /data/hive/scratach Local scratch space for Hive jobs hive.downloaded.resources.dir /data/hive/download Temporary local directory for added resources in the remote file system. hiv

10、e.querylog.location /data/hive/querylog Location of Hive run time structured log file hive.server2.logging.operation.log.location /data/hive/operation_logs Top level directory where operation logs are stored if logging functionality is enabled .3.4. 创建需要的目录$ mkdir /data/hive$ mkdir /data/hive/scrata

11、ch$ mkdir /data/hive/download$ mkdir /data/hive/querylog$ mkdir /data/hive/operation_logs3.5. 上传MySQL驱动将mysql-connector-java-5.1.36.jar上传到$HIVE_HOME/lib目录下。3.6. 启动$ hiveserver23.7. 基本操作验证$ beeline!connect jdbc:hive2:/hdfs1:10000输入当前用户名,密码为空或者直接输入$ ./bin/beeline u jdbc:hive2:/hdfs1:10000# 查看当前数据库show

12、 databases;# 查看所有表show tables;# 创建表create table users(user_id int, fname string,lname string );# 插入数据INSERT INTO users (user_id, fname, lname) VALUES (1, john, smith);INSERT INTO users (user_id, fname, lname) VALUES (2, john, doe);INSERT INTO users (user_id, fname, lname) VALUES (3, john, smith);# 查

13、询数据select * from users limit 2;select count(1) from users;3.8. 数据导入示例示例场景说明:先将输入导入到tmp_sell_day_corp_cig,再将数据写入sell_day_corp_cig中。创建表create table tmp_sell_day_corp_cig( sell_d string, cig_code string, stat_code string, statyear smallint, halfyear smallint, quarter smallint, statmonth smallint, statt

14、enday smallint, statdate smallint, cig_province string, cig_factory string, trademark_code string, cig_inside string, cig_grade string, cig_famous string, cig_hundred string, cig_kind string, cig_low string, cig_seizure string, sell_amount double, sell_total_money double, gross_profit double, demand

15、_amount double)partitioned by (corp_code string)ROW FORMAT DELIMITED FIELDS TERMINATED BY ,;create table sell_day_corp_cig( sell_d string, cig_code string, stat_code string, statyear smallint, halfyear smallint, quarter smallint, statmonth smallint, stattenday smallint, statdate smallint, cig_provin

16、ce string, cig_factory string, trademark_code string, cig_inside string, cig_grade string, cig_famous string, cig_hundred string, cig_kind string, cig_low string, cig_seizure string, sell_amount double, sell_total_money double, gross_profit double, demand_amount double)partitioned by (corp_code stri

17、ng)clustered by(sell_d) sorted by(cig_code) INTO 16 BUCKETSSTORED AS orcfile;导入数据到临时表LOAD DATA LOCAL INPATH /home/whcyit/data.txt OVERWRITE INTO TABLE tmp_sell_day_corp_cig partition(corp_code=11420101);启用分桶,写入正式表set hive.enforce.bucketing = true;INSERT OVERWRITE TABLE sell_day_corp_cig partition(co

18、rp_code=11420101)select sell_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_amount from tmp_sell_day_corp_ci

19、g WHERE corp_code=11420101;显示分区SHOW PARTITIONS sell_day_corp_cig;查询数据select count(1) from sell_day_corp_cig;select sum(a.sell_amount),sum(a.sell_total_money),a.cig_code,a.corp_code from sell_day_corp_cig a group by a.cig_code,a.corp_code;建立索引create index idx_sell_day_corp_cig on table sell_day_corp_

20、cig(cig_code)as pact.CompactIndexHandler with deferred rebuild IN TABLE idx_sell_day_corp_cig_table;alter index idx_sell_day_corp_cig on sell_day_corp_cig rebuild;四、 HIVE集群配置在Hive上述的安装配置中MetaStore和HiverServer2(ThriftServer)两个部分存储单点问题,对于MetaStore因采用数据库进行保存,需要使用数据库本身的方式实现高可用。对于HiverServer2的集群方式一般可以采用两

21、种模式:一是采用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. 启动HiveSer

22、ver2$ $HIVE_HOME/bin/hiveserver24.3. 验证集群启用$ zkCli.sh$ ls /hiveserver24.4.集群的使用JDBC或ODBC采用以下方式进行连接jdbc:hive2:/;serviceDiscoveryMode=zooKeeper; zooKeeperNamespace=其中: ZooKeeper地址和端口例如:String url = jdbc:hive2:/hdfs1:2181, hdfs2:2181, hdfs3:2181/;serviceDiscoveryMode=zooKeeper;zooKeeperNamespace=hivese

23、rver2;Connection con = 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语言实现了数据的统计分析功能,但其与传统关系型数据库有着

24、很大区别。但Hive同样在飞速发展中,越来越多的传统数据库特性在Hive中得到了支持,例如:ACID事务特性、索引、视图等。 不支持删除操作Hive默认情况下不支持数据删除操作,如需要删除单条记录需要启动hive的测试模式,对于实际数据仓库类应用中应不存在类似应用。对于大批量删除,只能采用重新导入数据的方式进行覆盖。 不支持存储过程Hive没有提供存储过程的支持,对于复杂汇总依旧不能采用SQL进行有效处理。第三方提供了HPL/SQL的支持(http:/www.hplsql.org/download)还需要进一步的学习。 不支持部分SQL特性不支持主外键、条件约束;不支持类似SQL中in的用法(

25、子查询),可以采用left semi join(半连接)进行替代;5.2. Hive支持的数据模型Hive 中所有的数据都存储在 HDFS 中,Hive 中包含以下数据模型:Table(表),External Table(外部表),Partition(分区),Bucket(桶)。Hive 中的 Table 和数据库中的 Table 在概念上是类似的,每一个 Table 在 Hive 中都有一个相应的目录存储数据。例如,一个表 app,它在 HDFS 中的路径为:/user/hive/warehouse/app。Partition(分区)对应于数据库中的 Partition 列的密集索引,但是

26、Hive 中 Partition 的组织方式和数据库中的很不相同。在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中。Buckets (桶)对指定列计算 hash,根据 hash 值切分数据,目的是为了并行,每一个 Bucket 对应一个文件。External Table指向已经在 HDFS 中存在的数据,可以创建 Partition。它和Table在元数据的组织上是相同的,而实际数据的存储则有较大的差异。Table(内部表)的创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数据会被

27、移动到数据仓库目录中;之后对数据对访问将会直接在数据仓库目录中完成。删除表时,表中的数据和元数据将会被同时删除。External Table只有一个过程,加载数据和创建表同时完成(CREATE EXTERNAL TABLE LOCATION),实际数据是存储在 LOCATION 后面指定的 HDFS 路径中,并不会移动到数据仓库目录中。当删除一个 External Table 时,仅删除hive的元数据,不会删除hdfs上对应的文件。5.3. Hive的数据存储格式 Hive支持以下存储格式: TextFile 文本格式(默认)。 SequenceFile SequenceFile是Hadoop API 提供的一种二进制文件,它将数据以的形式序列化到文件中 RCFile RCFile是Hive推出的一种专门面向列的数据格式。 它遵循“先按列划分,再垂直划分”的设计理念。当查询过程中,针对它并不关心的列时,它会在IO上跳过这些列。 ORCFile 全称为Optimized Row Columnaer file,针对RCFile存储格式进行一些优化。 Avro Avro是一种用于支持数据密集型的二进制文件格式。它的文件格式更为紧凑,若要读取大量数据时,Avro能够提供更好的序列化和反序列化性能。5.4. Hi

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

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