欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    HIVE安装使用说明.docx

    • 资源ID:4410335       资源大小:271.76KB        全文页数:14页
    • 资源格式: DOCX        下载积分:12金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    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


    注意事项

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

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开