Hadoop HIVE

 

  

数据仓库工具。构建在hadoop上的数据仓库框架,可以把hadoop下的原始结构化数据变成Hive中的表。(主要解决ad-hoc query,即时查询的问题)

支持一种与SQL几乎完全相同的语言HQL。除了不支持更新,索引和事务,几乎SQL其他的特性都支持。

可以看成是SQL到Map-reduce的映射器

提供shell,JDBC/ODBC,Thrift,Web等接口

 

HIVE组件与体系结构

用户接口:shell,thrift,web

Thrift 服务器

元数据库 (Derby是hive内嵌db 用于本地模式,一般都用mysql,所谓metadata,因为Hive本身不存储数据,完全依赖于HDFS和MapReduce,Hive可以将结构化的数据文件映射为一张数据库表,Hive中表纯逻辑,这些有关逻辑的表的定义数据就是元数据)

HIVE QL(compiler,optimizer,executor)

Hadoop 

 

 

 

 

HIVE数据放在哪里?

在hdfs下的warehouse下面,一个表对应一个子目录

桶与reducer

本地的/tmp目录存放日志和执行计划

 

HIVE安装:

内嵌模式:元数据保持在内嵌的Derby,只允许一个会话连接(hive服务和metastore服务运行在同一个进程中,derby服务也运行在该进程中)

本地独立模式:hive服务和metastore服务运行在同一个进程中,mysql是单独的进程,可以在同一台机器上,也可以在远程机器上。
该模式只需将hive-site.xml中的ConnectionURL指向mysql,并配置好驱动名、数据库连接账号即可

远程模式:hive服务和metastore在不同的进程内,可能是不同的机器。
该模式需要将hive.metastore.local设置为false,并将hive.metastore.uris设置为metastore服务器URI,如有多个metastore服务器,URI之间用逗号分隔。metastore服务器URI的格式为thrift://host port
<property>
<name>hive.metastore.uris</name>
<value>thrift://127.0.0.1:9083</value>
</property>

 

Hive2.1.1:

(1)内嵌模式

cp apache-hive-2.1.1-bin.tar.gz /home/hdp/
cd /home/hdp/
tar -zxvf apache-hive-2.1.1-bin.tar.gz

root修改/etc/profile

export HIVE_HOME=/home/hdp/hive211
export PATH=$PATH:$HIVE_HOME/bin
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib:$HIVE_HOME/conf
export HIVE_AUX_JARS_PATH=/home/hdp/hive211/lib

切换hdp修改/home/hdp/hive211/conf 下的

hive-env.sh

cp hive-env.sh.template hive-env.sh
vi hive-env.shHADOOP_HOME=/home/hdp/hadoop
export HIVE_CONF_DIR=/home/hdp/hive211/conf

hive-site.xml

cp hive-default.xml.template hive-site.xml
vi hive-site.xml 

 

#该参数指定了 Hive 的数据存储目录,默认位置在 HDFS 上面的 /user/hive/warehouse 路#径下<property><name>hive.metastore.warehouse.dir</name><value>/user/hive/warehouse</value><description>location of default database for the warehouse</description></property>#该参数指定了 Hive 的数据临时文件目录,默认位置为 HDFS 上面的 /tmp/hive 路径下<property><name>hive.exec.scratchdir</name><value>/tmp/hive</value><description>HDFS root scratch dir for Hive jobs which gets created with write all (733) permission. For each connecting user, an HDFS scratch dir: ${hive.exec.scratchdir}/&lt;username&gt; is created, with ${hive.scratch.dir.permission}.</description></property><property>
<name>hive.querylog.location</name>
<value>/home/hdp/hive211/iotmp</value>
<description>Location of Hive run time structured log file</description>
</property><property>
<name>hive.exec.local.scratchdir</name>
<value>/home/hdp/hive211/iotmp</value>
<description>Local scratch space for Hive jobs</description>
</property><property>
<name>hive.downloaded.resources.dir</name>
<value>/home/hdp/hive211/iotmp</value>
<description>Temporary local directory for added resources in the remote file system.</description>
</property><property><name>hive.server2.logging.operation.log.location</name><value>/home/hdp/hive211/iotmp/operation_logs</value><description>Top level directory where operation logs are stored if logging functionality is enabled</description>
</property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:derby:;databaseName=metastore_db;create=true</value><description>JDBC connect string for a JDBC metastore.To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.</description>
</property><property><name>javax.jdo.option.ConnectionDriverName</name><value>org.apache.derby.jdbc.EmbeddedDriver</value><description>Driver class name for a JDBC metastore</description>
</property><property><name>javax.jdo.option.ConnectionUserName</name><value>APP</value><description>Username to use against metastore database</description>
</property><property><name>javax.jdo.option.ConnectionPassword</name><value>mine</value><description>password to use against metastore database</description>
</property><property><name>hive.exec.reducers.bytes.per.reducer</name><value>256000000</value><description>size per reducer.The default is 256Mb, i.e if the input size is 1G, it will use 4 reducers.</description>
</property><property><name>hive.exec.reducers.max</name><value>1009</value><description>max number of reducers will be used. If the one specified in the configuration parameter mapred.reduce.tasks isnegative, Hive will use this one as the max number of reducers when automatically determine number of reducers.</description>
</property>

 

根据上面的参数创造必要的文件夹

[hdp@hdp265m conf]$ hadoop fs -mkdir -p /user/hive/warehouse
[hdp@hdp265m conf]$ hadoop fs -mkdir -p /tmp/hive
[hdp@hdp265m conf]$ hadoop fs -chmod 777 /tmp/hive
[hdp@hdp265m conf]$ hadoop fs -chmod 777 /user/hive/warehouse
[hdp@hdp265m conf]$ hadoop fs ls /
[hdp@hdp265m hive211]$ pwd
/home/hdp/hive211
[hdp@hdp265m hive211]$ mkdir iotmp
[hdp@hdp265m hive211]$ chmod 777 iotmp

把hive-site.xml 中所有包含 ${system:java.io.tmpdir}替换成/home/hdp/hive211/iotmp

用vi打开编辑全局替换命令 先按Esc键  再同时按shift加: 把以下替换命令粘贴按回车即可全局替换

%s#${system:java.io.tmpdir}#/home/hdp/hive211/iotmp#g

运行hive

./bin/hive

hive <parameters> --service serviceName <serviceparameters>启动特定的服务

[hadoop@hadoop~]$ hive --service  help  
Usage ./hive<parameters> --service serviceName <service parameters>  
Service List: beelinecli help hiveserver2 hiveserver hwi jar lineage metastore metatool orcfiledumprcfilecat schemaTool version  
Parametersparsed:  --auxpath : Auxillary jars  --config : Hive configuration directory  --service : Starts specificservice/component. cli is default  
Parameters used:  HADOOP_HOME or HADOOP_PREFIX : Hadoop installdirectory  HIVE_OPT : Hive options  
For help on aparticular service:  ./hive --service serviceName --help  
Debug help:  ./hive --debug --help  

 

 

 
报错

解决办法:./bin/schematool -initSchema -dbType derby

报错

解决方法:删除

/home/hdp/hive211/metastore_db

目录下 rm -rf metastore_db/ 在初始化:./bin/schematool -initSchema -dbType derby
重新运行

./bin/hive

Logging initialized using configuration in jar:file:/home/hdp/hive211/lib/hive-common-2.1.1.jar!/hive-log4j2.properties Async: true
Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. tez, spark) or using Hive 1.X releases.
hive> 

 

HIVE远程模式

在hdp265dnsnfs上安装mysql

编译hive-site.html

 

<configuration>  <property>  <name>javax.jdo.option.ConnectionURL</name>  <value>jdbc:mysql://192.168.56.108:3306/hive?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>111111</value>  </property>  <property>    <name>hive.metastore.schema.verification</name>    <value>false</value>    <description>    Enforce metastore schema version consistency.    True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic    schema migration attempt. Users are required to manully 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>    </property>   
</configuration> 

报错:Caused by: MetaException(message:Version information not found in metastore. )

解决:hive-site.xml加入

<name>hive.metastore.schema.verification</name>    <value>false</value>  

报错:缺少mysql jar包

解决:将其(如mysql-connector-java-5.1.42-bin.jar)拷贝到$HIVE_HOME/lib下即可

报错:

Exception in thread "main" java.lang.RuntimeException: Hive metastore database is not initialized.   Please use schematool (e.g. ./schematool -initSchema -dbType ...) to create the schema. If needed,   don't forget to include the option to auto-create the underlying database in your JDBC connection string (e.g. ?createDatabaseIfNotExist=true for mysql)  

解决:

#数据库的初始化。  bin/schematool -initSchema -dbType mysql  

启动:

bin/hive

启动后mysql 多了hive 数据库

 

 

测试

 

创建数据库

create database db_hive_test;

创建测试表

 

use db_hive_test;

create table student(id int,name string) row format delimited fields terminated by '\t';



 

加载数据到表中

 

新建student.txt 文件写入数据(id,name 按tab键分隔)

vi student.txt

 

[html] view plaincopy
在CODE上查看代码片派生到我的代码片
  1. 1001    zhangsan  
  2. 1002    lisi  
  3. 1003    wangwu  
  4. 1004    zhaoli  

load data local inpath '/home/hadoop/student.txt' into table  db_hive_test.student

 

 

查询表信息

select * from student;

 

 

查看表的详细信息

desc formatted student;

 

通过Mysql查看创建的表

 

查看hive的函数 

show functions;

查看函数详细信息 

desc function sum; 
desc function extended

 

配置hiveserver2

 

Hive从2.0版本开始,为HiveServer2提供了一个简单的WEB UI界面
<property>
<name>hive.server2.webui.host</name>
<value>192.168.56.104</value>
</property><property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>

 

启动hiveserver2

hive --service hiveserver2

 

http://192.168.56.104:10002/

 

配置hwi

https://cwiki.apache.org/confluence/display/Hive/HiveWebInterface#HiveWebInterface-WhatIstheHiveWebInterface

http://www.cnblogs.com/xinlingyoulan/p/6025692.html

 

http://apache.fayea.com/hive/hive-2.1.1/

下载源码apache-hive-2.1.1-src.tar.gz

tar -xzf apache-hive-2.1.1-src.tar.gz
[hdp@hdp265m web]$ pwd
/home/hdp/apache-hive-2.1.1-src/hwi/web
[hdp@hdp265m web]$ jar -cvf hive-hwi-2.1.1.war *
[hdp@hdp265m web]$ cp hive-hwi-2.1.1.war $HIVE_HOME/lib 

下载安装ant

http://ant.apache.org/bindownload.cgi

如果你的jdf是7则不要安装最新的ant

 

tar -zxvf apache-ant-1.9.7-bin.tar.gz
mv apache-ant-1.9.7 ant110

su root修改/etc/profile

export ANT_HOME=/home/hdp/ant197
export PATH=$PATH:$ANT_HOME/bin

 

验证ant是否安装成功

[hdp@hdp265m ~]$ ant -version
Apache Ant(TM) version 1.9.7 compiled on April 9 2016

启动hwi

hive --service hwi

 

如果有下面的错误

The following error occurred while executing this line:
jar:file:/home/linux/application/hive2.1.0/lib/ant-1.9.1.jar!/org/apache/tools/ant/antlib.xml:37: Could not create task or type of type: componentdef.

根据错误信息,HIVEHOME/libant.jar1.9.1ant1.9.7HIVEHOME/lib下的ant.jar版本为1.9.1,但是我装的ant版本为1.9.7,因此该错误是因为版本不一致导致的。因此,需要把{ANT_HOME}/lib下的ant.jar包copy到${HIVE_HOME}/lib下,并修改权限为777。使用的命令如下:

cp ${ANT_HOME}/lib/ant.jar  ${HIVE_HOME}/lib/ant-1.9.7.jar
cd ${HIVE_HOME}/lib
chmod 777 ant-1.9.7.jar

 

 

如果前面问题都解决了可以每次多刷新几遍

http://192.168.56.104:9999/hwi/

 

启动metastore服务

hive --service metastore  

 

 

 

 

 

 

 

 

 

Hive 快速入门

https://cwiki.apache.org/confluence/display/Hive/GettingStarted

Hive语言手册

https://cwiki.apache.org/confluence/display/Hive/LanguageManual

Hive指南

https://cwiki.apache.org/confluence/display/Hive/Tutorial

 

转载于:https://www.cnblogs.com/dadadechengzi/p/6721581.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252880.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Xcode9学习笔记67 - 打印查看程序沙箱结构中常用的几个目录

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//首先获得应用程序目录的路径&#xff0c;在该目录下有三个文件夹&#xff1a;文档目录、库目录、临时目录以及一个程序包。该目录就是应用程序的…

检测raid类型和磁盘坏道脚本

#!/bin/sh #脚本功能&#xff1a; #安装工具MegaCli64 #Host Information&#xff1a;主机名和ip地址 #Raid Information&#xff1a;raid信息和充电状态 #WARNING Information&#xff1a;MediaErrcount检测坏块和哪块盘 #Disk Information&#xff1a;磁盘信息 #上传MegaC…

《SpringBoot揭秘 快速构建微服务体系》读后感(三)

SpringApplication&#xff1a;SpringBoot程序启动的一站式解决方案 深入探索SpringApplication执行流程 因为书上的版本是1.2的&#xff0c;比较老&#xff0c;这里参考http://blog.csdn.net/zxzzxzzxz123/article/details/69941910 public ConfigurableApplicationContext ru…

装饰器函数

1.装饰器 ​ 装饰器&#xff1a;在不改变原函数的调用方式和函数&#xff0c;额外的增加功能 简单装饰器def timer(func):def inner():print(time.time())func() # 原来的函数return inner ​ timer # func1 timer(func1) def func1():print(func1) 函数带返回值def timer…

6G SDI/12G SDI 基带信号无压缩传输方案介绍

认知数字像素分辨率&#xff1a; 首先从分辨率(数字像素)角度来讲&#xff0c;从标清时代走到高清&#xff0c;从720x576到现在的1920x1080&#xff0c;宽高比从4:3到16:9&#xff0c;这个是我们比较熟悉的&#xff0c;4K实际上是建立在高清基础之上的&#xff0c;我们称之为“…

12.4日团队工作总结

今天团队的主要任务是注重于画图工具的设计&#xff0c;这就意味着我们首要的任务是将画图工具设置出来并可以完整运行&#xff0c;接下来才能顾及之前的改图软件&#xff0c;但今天在设计的过程中&#xff0c;遇到了两者无法无缝结合的问题&#xff0c;目前还没解决。 转载于:…

最短路径——Dijkstra算法以及二叉堆优化(含证明)

一般最短路径算法习惯性的分为两种&#xff1a;单源最短路径算法和全顶点之间最短路径。前者是计算出从一个点出发&#xff0c;到达所有其余可到达顶点的距离。后者是计算出图中所有点之间的路径距离。 单源最短路径 Dijkstra算法 思维 本质上是贪心的思想&#xff0c;声明一个…

linux shmget shmctl

shmgetint shmget(key_t key, size_t size, int flag);key: 标识符的规则size:共享存储段的字节数flag:读写的权限返回值&#xff1a;成功返回共享存储的id&#xff0c;失败返回-1key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_P…

伯克利开源工具库RLib现已支持大规模多智能体强化学习

AI前线导读&#xff1a;近日&#xff0c;UC伯克利的研究团队RISELab在其Github的项目Ray Rlib 0.6.0中添加了面向多智能体强化学习&#xff08;multi-agent Reinforcement Learning&#xff09;的支持。本文由团队成员Eric Liang首发于RISELab团队主页&#xff0c;AI前线翻译整…

如何简单理解光圈大小对手机摄影的影响?

你&#xff0c;准备好参加今夏的朋友圈摄影大赛了吗&#xff1f; 现在的天气有多热&#xff0c;谁出门谁知道&#xff01;出去玩还要背一台单反&#xff0c;绝对可以说是一种折磨了。但是&#xff0c;如果你拥有一台大光圈的手机&#xff0c;一样可以在朋友圈脱颖而出。 那么…

基于centos6.7的docker私有仓库搭建

2019独角兽企业重金招聘Python工程师标准>>> 1 仓库配置https认证 cd /etc/docker/ mkdir certs [rootdocker01 docker]# openssl req -newkey rsa:4096 -nodes -sha256 -keyout certs/docker01.key -x509 -days 365 -out certs/docker01.crt 填好相应的简称及email…

第十周软件工程作业-每周例行报告

一、PSP T名称C内容ST开始时间ED结束时间中断时间/min实际时间/min会议第一次Scrum会议11月17日16:0011月17日16:30030第二次Scrum会议11月18日15:0011月18日15:30030第三次Scrum会议11月19日17:0011月19日17:30030第四次Scrum会议11月20日11:3511月20日12:15040第五次Scrum会议…

MAVEN下载和安装

1.maven的下载 下载链接http://maven.apache.org/download.cgi从该网站下载最新版本 2.maven的安装 电脑上需要安装JDK环境&#xff0c;需要安装JDK7以上的版本。下载之后进行解压&#xff0c;将maven解压到不含中文和空格的一个目录 maven目录结构bin目录&#xff1a;mvn.bat、…

CCD/CMOS靶面尺寸型号标准

传感器尺寸指的是感光器对角线尺寸&#xff0c;1/1.7英寸&#xff08;14.8毫米&#xff0d;&#xff0d;导向管尺寸&#xff09;大于1/2.3英寸&#xff08;10.95毫米&#xff0d;&#xff0d;&#xff0d;导向管尺寸&#xff09;.采用同种技术水平的感光器&#xff0c;肯定是单…

Linux课程笔记 Day09 课上内容总结 MySql,Php的安装及Apache,Nginx,Php的优化

一 MySql 1.1 如何选择MySql的版本 1.2 MySql单实例安装 &#xff08;1&#xff09; 建立mysql用户 首先以root身份登陆到linux系统&#xff0c;然后执行如下命令创建mysql用户及用户组 [roottest3 ~]# groupadd mysql [roottest3 ~]# useradd -s /sbin/nologin -g …

jenkins 通过自动拉取Gitlab上的代码实现自动更新NGINX

所需要用到的环境&#xff1a; Gitlab&#xff1a; 172.20.7.70Jenkins&#xff1a; 172.20.7.71nginx&#xff1a; 172.20.7.72 gitlab 和Jenkins安装自行百度 开始实验操作 首先通过网页访问nginx&#xff0c;nginx默认测试页我是改了的 &#xff0c;所以看到的不是它原…

Kylin工作原理、体系架构

核心思想&#xff1a;预计算。 对多维分析可能用到的度量进行预计算&#xff0c;将计算好的结果保存成Cube&#xff0c;并存在HBase中&#xff0c;供查询时直接访问 将高复杂度的聚合运算、多表连接……操作转换成对预计算结果的查询。决定了Kylin拥有很好的快速查询、高并发能…

PPT怎么在线转视频?

PPT在线转视频的方法有哪些&#xff1f;在PPT中有些播放上的问题还是可以进行文件的转换&#xff0c;下面就给大家简单的介绍一下方法。步骤一&#xff1a;PPT转视频的直接方法是进入迅捷PDF在线转换器网站中&#xff0c;点击导航栏中的视频音频转换中的PPT转视频&#xff1b; …

夜貓子”必需的!——融合夜視技術

融合夜視技術是一項正在發展中的前沿技術&#xff0c;通過將多個工作在不同波段的夜視傳感器獲得的圖像經過處理後生成高質量的融合圖像&#xff0c;融合圖像的分辨率更高&#xff0c;能夠揭示出那些很難被看到的特徵。按照融合的方式&#xff0c;融合夜視技術可以分為數字融合…

Vue中登录模块

转载于:https://www.cnblogs.com/DZzzz/p/8921783.html