10_hadoop之hive

10_hadoop之hive

什么是Hive

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。本质是将SQL转换为MapReduce程序

10_hadoop之hive

Hive的特点

•可扩展Hive可以自由的扩展集群的规模,一般情况下不需要重启服务

•延展性Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

•容错良好的容错性,节点出现问题SQL仍可完成执行

Hive与Hadoop的关系

10_hadoop之hive

hive环境搭建:

由于hive是基于Hadoop的。所以首先要保证你的hadoop环境是能够更正常运行的。对于haddop环境的搭建,请参照之前的文章。

1.hive的下载:http://mirror.bit.edu.cn/apache/hive/

10_hadoop之hive

2.上传


3.解压 tar -zxvf apache-hive-2.3.2-bin.tar /usr/local/hive

4.配置

① 配置环境变量

export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HIVE_HOME/bin

10_hadoop之hive

② 重新加载环境变量配置
source /etc/profile

③ 验证环境变量配置是否确 echo  $HIVE_HOME
10_hadoop之hive
④ 执行hive命令,验证hive运行是否正常,hive需要运行在hadoop上,所以在运行之前,请先启动你的hadoop
10_hadoop之hive

如果有相应的输出,则hive基本环境正常。

④ hive常用配置
 1 cd /usr/local/hive/conf
 2 cp hive-default.xml.template hive-site.xml
 3 修改  hive.metastore.schema.verification 设定为false

 <property>
    <name>hive.metastore.schema.verification</name>
    <value>false</value>
    <description>
      Enforce metastore schema version consistency.
      True: Verify that version information stored in is compatible with one from Hive jars.  Also disable automatic
            schema migration attempt. Users are required to manually migrate schema after Hive upgrade which ensures
            proper metastore schema migration. (Default)
      False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
    </description>

 4 创建/usr/local/hive/temp目录,替换${system:java.io.tmpdir}为该目录

 在hive的安装目录下创建一个tmp临时目录

mkdir tmp

10_hadoop之hive


5 替换${system:usr.name} 为root
6 schematool -initSchema -dbType derby 格式化hive内嵌derby数据库
会在当前目录下建立metastore_db数据库

注意:每次执行hive时应该还在同一目录,hive会默认到当前目录下寻找metostore,如果没有就会创建一个新的。那么之前的数据就不能正常使用了
遇到问题,将metastore_db删掉,重新执行命执行命令,实际工作中,经常使用mysql作为metastore的数据库存储

7、启动hive
10_hadoop之hive

8、观察hadoop fs -ls /tmp/hive中目录的创建

9、1 show databases;10_hadoop之hive
2 use default;10_hadoop之hive
10_hadoop之hive
3 create table wordcount(line string);
10_hadoop之hive
4 show tables;
10_hadoop之hive
5 des wordcount;

6 select * from wordcount;
7 drop table doc;
10、观察hadoop fs -ls /user
11、启动yarn

12、使用hive完成wordcount程序的功能:

1 load data inpath ‘/input’ overwrite into table wordcount #将hdfs将根目录下的input目录下的文件中的输入载入到wordcount表中。
10_hadoop之hive
2 select * from wordcount;#查询表中的数据
10_hadoop之hive
3 select split(line,’ ‘)from wordcount;#将数据库中的数据line字段按照空格进行分割
10_hadoop之hive
4 select explode(split(line,’ ‘))from wordcount;#将上边获取到的每一行中的数组数据中的每个单词单独读取作为一行输出
10_hadoop之hive

select explode(split(line,' '))from wordcount;
 为表添加一个新的列,使用上边的查询结果进行填充10_hadoop之hive
5  select word,count(1) as count from (select explode(split(line,’ ‘))as word from wordcount) w group by word;
执行过程
10_hadoop之hive
执行结果:
10_hadoop之hive
13 使用sougou搜索目录做实验 数据文件链接:https://pan.baidu.com/s/1dSqYuy 密码:bvtu
1将日志文件上传到hdfs系统,启动hive

2 根据搜狗日志文件 创建数据表

create table sqr(qtime string,qid string,qword string,a string, url string) row format delimited fields terminated by ',';

10_hadoop之hive

 3 查看表结构

desc sqr; 

10_hadoop之hive

4 载入数据

load data inpath '/sogou.dic' into table sqr;

10_hadoop之hive

5 计算统计结果
create table sql_result as select keyword,count(1) as count from (select qword as keyword from sqr) t group by keyword order by count desc;

6 查询统计结果

10_hadoop之hive



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111285.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pytorch loss反向传播出错

    pytorch loss反向传播出错在使用pytorch进行训练代码时,在运行loss.backward()误差反向传播时出错:RuntimeError:gradcanbeimplicitlycreatedonlyforscalaroutputsFile”train.py”,line143,intrainloss.backward()File”/usr/local/lib/python3.6/dist-packages/torch/tensor.py”,line198…

    2022年5月20日
    34
  • Maven安装与配置

    Maven安装与配置一、需要准备的东西JDKEclipseMaven程序包二、下载与安装前往https://maven.apache.org/download.cgi下载最新版的Maven程序:2.将文件解压到D:\ProgramFiles\Apache\maven目录下:新建环境变量MAVEN_HOME,赋值D:\ProgramFiles\Apache\mave…

    2022年6月11日
    33
  • python编写淘宝秒杀脚本

    python编写淘宝秒杀脚本最近想抢冰墩墩的手办和钥匙圈,但是同志们抢的速度太快了,无奈,还是自己写脚本吧。添加火狐浏览器插件Omnibug是一个插件,可以简化web度量实现的开发。检查每个传出请求(由浏览器发送)的模式;如果出现匹配,URL将显示在开发人员工具面板中,并进行解码以显示请求的详细信息。在火狐浏览器的插件中直接搜索、下载即可安装geckodriver在python中使用selenium爬取动态渲染网页,这个过程之中需要安装浏览器驱动geckodrivergeckodrivergithub链接将下载后到

    2022年6月9日
    29
  • SVN服务器部署「建议收藏」

    SVN服务器部署「建议收藏」1,关闭防火墙或者开放对应端口3690,2,Yum下载安装subversion检查SVN是否安装成功svnserve–version3,建立SVN版本库3.1因为大磁盘挂载在/home下,所以我是在/home下创建的版本库,mkdir/home/svn创建一个文件夹(所有项目库都在此目录下创建)3.2创建svn版本库svnadmincreate/home/svn/liangz_artliangz_art才是项目版本库的名字,后面开发人员checkout时就要用这个名称,项

    2022年7月19日
    19
  • mac navicat premium15激活码【永久激活】[通俗易懂]

    (mac navicat premium15激活码)最近有小伙伴私信我,问我这边有没有免费的intellijIdea的激活码,然后我将全栈君台教程分享给他了。激活成功之后他一直表示感谢,哈哈~IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月21日
    168
  • 价值3888开源企业发卡网源码/全网对接/全新UI风格/完美运营

    价值3888开源企业发卡网源码/全网对接/全新UI风格/完美运营介绍:系统是全开源的,功能很多就不一一介绍了,喜欢就拿走,互站上卖3888免费开源,100%能搭建!老米发卡系统功能亮点介绍:1:已接入易支付接口/支持qq/微信/支付宝2:全网商品对接,店铺对接一秒完成对接,!3:商品池系统/供货系统/代理系统/对接码对接商品4:店铺音乐支付接口/缩我短网址接口/销售模版主题设置5:后台新增一键添加支付接口/商品池权限/推荐商品权限/商家保证金6:平均有15套pc售卡模版,3套手机售卡模版7:一些系统还带有后门,我这个系统完全无后门8:本系统不敢说全

    2022年7月14日
    20

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号