概述 官方地址http://hive.apache.org/ 简单,容易上手提供了类似SQL查询语言HQL 为超大数据集设计的计算、存储拓展能力 统一的元数据管理 体系架构 ? image.png 配置 设置环境变量 export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.7.0 export PATH=$HIVE_HOME/bin: $PATH 修改hive中config目录的配置 设置 hive-env.sh HADOOP_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.7.0 设置 hive-site.xml /hive 创建数据表 create table wordcount (count string); 查看表 show tables; 加载本地数据到表中 hive> load data local inpath '/home/hadoop/data/hello.txt' into table wordcount; 执行job select word,count(1) from wordcount lateral
hive是建立在hadoop之上的,也就是将海量的数据存储在HDFS之中,而对于数据的分析和计算则是借助mapreduce。 HIVE 1 hive的作用及组成部分 hive主要是将用户编写的SQL语句,进行词法分析,语法解析,最后将SQL转变成mapreduce程序在hadoop之中执行,最后拿到结果返回给用户。 //hive和hadoop的联系 [root@KEL1 conf]# grep hadoop hive-env.sh # Set HADOOP_HOME to point to a specific hadoop install directory HADOOP_HOME=/opt/module/hadoop-2.7.2 //hive连接元数据库配置 [root@KEL1 conf]# cat hive-site.xml org.apache.hadoop.util.RunJar /opt/module/apache-hive-1.2.2/lib/hive-service-1.2.2.jar org.apache.hive.service.server.HiveServer2
热卖云产品新年特惠,2核2G轻量应用服务器9元/月起,更多上云必备产品助力您轻松上云
Hive是什么 简单来说,通过 Hive 可以使用 SQL 来查询分析 Hadoop 中的大规模数据 Hive 的思路就是将结构化的数据文件映射为数据库表,然后把SQL语句转换为MapReduce任务来执行 Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1 Stage-1 map = 0%, reduce 包、在hadoop中运行jar,然后得到统计结果 后来又想统计某天的登录情况,还要走一遍 写程序、打包、运行 这个流程 当统计需求很多时,这个流程就非常低效了 这些统计如果用SQL的话则非常简单,而且SQL 的普及度高,学习成本很低 所以有人就会想,可不可以用SQL完成Hadoop中数据文件的分析统计呢? Hive 便产生了,把Hadoop数据文件映射成表,把SQL自动转为mapreduce程序 通用性的需求可以直接使用 SQL 来完成,对于特殊需求,可以结合自定义的mapreduce方法来处理 极大的提高了大规模数据的统计效率
,slave2(hive客户端) hive建立在hadoop的HDFS上,搭建hive前,先需搭建hadoop 远程模式: 101.201.81.34(Mysql server meta server安装位置 /lib:$HIVE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME /sbin:$HIVE_HOME/bin:$PATH export HADOOP_MAPARED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME /etc/hadoop source /etc/profile 3.修改hive/conf下的几个template模板并重命名为其他 cp hive-env.sh.template hive-env.sh cp hive-default.xml.template hive-site.xml 配置hive-env.sh文件,指定HADOOP_HOME安装位置 HADOOP_HOME=$HADOOP_HOME
hadoop、hbase、zookeeper、hive是大数据里面四个重要的产品,关于这四个产品的介绍,各种书籍和网站介绍得很多,在这里不再赘述,仅介绍在ubunt下如何安装和配置这三种产品。 /bin export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/ /usr/local/>mv apache-hive-2.3.4-bin/ hive /usr/local/>gedit ~/.bashrc export HIVE_HOME=/usr/local/hive export HCAT_HOME=$HIVE_HOME/hcatalog export HIVE_CONF=$HIVE_HOME/conf export PATH=$PATH:$HIVE_HOME/bin -phive mysql> create database hive; mysql> exit /usr/local/hive/>start-dfs.sh /usr/local/hive/>hive
存储命令: hadoop fs -put ./hadoop-2.7.5.tar.gz / 其中: . /hadoop-2.7.5.tar.gz 要存储的目标源文件 / 文件的存储的目标地址 查看文件命令: hadoop fs -ls 通过hadoop提供给的Browsing HDFS在浏览器查看文件存储情况。
配置HiveServer2,在hive-site.xml中添加如下的属性 <property> <name>hive.server2.thrift.bind.host</name> </description> </property> <property> <name>hive.server2.thrift.port</name> <value>10001 </description> </property> <property> <name>hive.server2.thrift.min.worker.threads</name> 启动HiveServer2 $HIVE_HOME/bin/hiveserver2 3. 修改kettle的配置文件 %KETTLE_HOME%/plugins/pentaho-big-data-plugin/plugin.properties 修改成下面的值 active.hadoop.configuration
Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构 化的数据文件映射为一张数据库表,并提供完整的 HIVE的特点:可伸缩(在Hadoop的集群上动态的添加设备),可扩展,容错,输入格式的松散耦合。 Hive 的官方文档中对查询语言有了很详细的描述,请参考:http://wiki.apache.org/hadoop/Hive/LanguageManual ,本文的内容大部分翻译自该页面,期间加入了一些在使用过程中需要注意到的事项 否则 •如果没有指定 schema 或者 authority,Hive 会使用在 hadoop 配置文件中定义的 schema 和 authority,fs.default.name request STRING, status STRING, size STRING, referer STRING, agent STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2
有如下hive记录表records,记录车辆的过车信息: create table records( id string, //记录编号 indate string, //过车记录时间
第11章 Hive:SQL on Hadoop 11.3 Hive快速入门 11.3.1 HQL介绍 Hive查询语言(Hive QL,可以简称HQL)的语法和SQL非常相似,实际上HQL基本上实现了SQL /org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/hadoop-2.7.3/share/hadoop -2.7.3/bin/hadoop job -kill job_1502371586068_0001 Hadoop job information for Stage-1: number of mappers -2.7.3/bin/hadoop job -kill job_1502371586068_0002 Hadoop job information for Stage-1: number of mappers -2.7.3/bin/hadoop job -kill job_1502371586068_0003 Hadoop job information for Stage-1: number of mappers
第11章 Hive:SQL on Hadoop 11.1 Hive 介绍 11.1.1 为什么需要Hive? Hadoop的出现,正如当年Java语言的出现,得到了极大的关注和广泛应用。 Hive的出现就是来解决这个问题,Hive让那些精通SQL而Java技术相对薄弱的数据分析师能够利用Hadoop进行各种数据分析。 在Hadoop生态圈中还有一个Pig组件,作用与Hive类似,但是Pig提供的不是SQL接口,而是一种叫做Pig Latin的语言接口,增加了学习成本。所以Pig没有Hive这么流行了。 掌握Hive对于使用Hadoop来说至关重要。 11.1.2 Hive架构 简单地说,Hive底层存储使用了HDFS,查询语句转变为MapReduce作业。 ? 与Hadoop的HDFS和MapReduce计算框架不同,Hive并不是分布式架构,它独立于集群之外,可以看做一个Hadoop的客户端。
=/usr/local/java18/jdk1.8.0_331export HADOOP_HOME=/usr/local/hadoop323/hadoop-3.2.3export HIVE_HOME=/ /share/hadoop/common/lib目录下的guava和/apache-hive-3.1.2-bin/lib目录下的guava版本不同。 需要将版本将hadoop高版本的guava拷贝到hive的目录下,删除hive低的版本。 cp /usr/local/hadoop323/hadoop-3.2.3/share/hadoop/common/lib/guava-27.0-jre.jar /usr/local/hive312/apache-hive 1.首先需要配置hadoop,从任何主机登录的root用户可以作为任意组的用户<property> <name>hadoop.proxyuser.root.hosts</name> <value
JAVA_HOME, JRE_HOME, 以及PATH 下载Hadoop(2.7.3) http://hadoop.apache.org/releases.html 下载地址 # hadoop-env.sh 需要在hive的 lib文件夹中,添加 “mysql-connector-java-xxx.jar” # hive-env.sh 配置 HADOOP_HOME=/usr/hadoop-2.7.3 =/usr/hadoop-2.7.3 export HIVE_HOME=/usr/hive-2.1.1 export HIVE_CONF=/usr/hive-2.1.1/conf/ export HCAT_HOME=/usr/hive-2.1.1/hcatalog/ export HBASE_HOME=/usr/hbase-1.3.0 export PATH=$HADOOP_HOME/bin :$HADOOP_HOME/sbin:$HIVE_HOME/bin:$HBASE_HOME/bin:$PATH export KYLIN_HOME=/usr/apache-kylin-1.6.0-hbase1
•配置Hive的配置文件路径 •export HIVE_CONF_DIR= your path •配置Hadoop的安装路径 •HADOOP_HOME=your hadoop home 我们按数据元的存储方式不同安装 由于我们下载的hive是基于hadoop1.3和hbase0.94的,所以必须进行替换,因为我们的hbse0.96是基于hadoop2.2的,所以我们必须先解决hive的hadoop版本问题,目前我们从官网下载的 0.12/conf •指定Hadoop路径 • HADOOP_HOME=/home/hadoop/hadoop-2.2.0 hive-site.xml <? .jar, file:///home/hadoop/hive-0.12.0/lib/hbase-client-0.96.0-hadoop2.jar, file:///home/hadoop/hive .jar, file:///home/hadoop/hive-0.12.0/lib/hbase-client-0.96.0-hadoop2.jar, file:///home/hadoop/hive
apache-hive-1.1.0-bin drwxr-xr-x 16 hadoop hadoop 275 Nov 23 06:52 hadoop-2.6.0 drwxr-xr-x 8 hadoop export HADOOP_HOME=/opt/module/hadoop-2.6.0 (b)添加配置 export HIVE_CONF_DIR=/opt/module/hive/conf 2.2.2 ]$ bin/hadoop fs -mkdir /tmp [hadoop@master1 hadoop-2.6.0]$ bin/hadoop fs -mkdir -p /user/hive/warehouse (重启后,别忘了启动 hadoop 集群) [hadoop@master1 hive]$ bin/hive 2.5.2 多窗口启动 Hive 测试 1.先启动 MySQL [hadoop@master1 > 2.7 Hive 常用交互命令 [atguigu@hadoop102 hive]$ bin/hive -help 1.
第11章 Hive:SQL on Hadoop 11.2 Hive安装与配置 11.2.1 安装元数据库 Hive的元数据和数据是分开存放的,数据存放在HDFS上,而元数据库默认是存储在Hive自带的Derby 选择stable-2 –> 下载apache-hive-2.1.1-bin.tar.gz 由于Hive是Hadoop的一个客户端,可以独立于集群之外。 (2)为了与其他组件保持一致,重命名Hive根目录 [root@node3 ~]# cd /opt [root@node3 opt]# ls apache-hive-2.1.1-bin data hadoop total 4 drwxr-xr-x 3 root root 25 Jul 12 10:13 data drwxr-xr-x 10 root root 161 May 14 09:14 hadoop /org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/opt/hadoop-2.7.3/share/hadoop
; USE hive; CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive'; GRANT ALL ON hive.* TO 'hive'@'localhost ' IDENTIFIED BY 'hive'; GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive'; FLUSH PRIVILEGES; 安装hadoop /hadoop hadoop export JAVA_HOME=/home/user_name/jdk export HADOOP_HOME=/home/user_name/hadoop export PATH="/home/user_name/hadoop/bin:$PATH" mkdir home/user_name/hadoop/tmp mkdir home/user_name/hadoop hadoop defaults 90 sudo chmod 755 yarn sudo update-rc.d yarn defaults 90 安装hive wget http://mirrors.shu.edu.cn
constraint SOURCE_TABLE_NAME_P primary key (ROW_NUM); #2.在Oracle上建立处理结果表 DEST_TABLE_NAME #3.oracle导入到hadoop nohup \ sqoop import \ --hive-import \ --connect jdbc:oracle:thin:@192.168.1.14:1521:oradb1 \ --username USER1 \ --password "密码" \ --verbose -m 32 \ --table SOURCE_TABLE_NAME \ --hive-table db_hive.SOURCE_TABLE_NAME \ --fields-terminated-by '\t' \ --lines-terminated-by '\n' & #4.计算 hive -e "drop table db_hive.DEST_TABLE_NAME \ group by EutranCellTdd_uk, adj_uk ;" #5.hadoop导出oracle(需要清空目标表DEST_TABLE_NAME) sqoop export \ --connect
实际项目中,很多地方需要把数据缓存起来,以加快数据访问速度。比如字典表,比如数据机房表等等,缓存的实现有很多方式,如果项目中有用到mybatis,可以使用二级缓...
Hive是Hadoop生态中的一个重要组成部分,主要用于数据仓库。前面的文章中我们已经搭建好了Hadoop的群集,下面我们在这个群集上再搭建Hive的群集。 : HADOOP_HOME=/usr/local/hadoop 2.4配置hive-site.xml cp hive-default.xml.template hive-site.xml vi hive-site.xml export HADOOP_HOME=/usr/local/hadoop export HIVE_HOME=/usr/local/hive 2.6下载MySQL JDBC驱动 去MySQL的官网, /lib目录下面 cp mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib/ 2.7在HDFS中创建目录和设置权限 启动Hadoop,在Hadoop 中创建Hive需要用到的目录并设置好权限: hadoop fs -mkdir /tmp hadoop fs -mkdir -p /user/hive/warehouse hadoop fs -chmod
弹性MapReduce (EMR)结合云技术和 Hadoop等社区开源技术,提供安全、低成本、高可靠、可弹性伸缩的云端托管 Hadoop 服务。您可以在数分钟内创建安全可靠的专属 Hadoop 集群,以分析位于集群内数据节点或 COS 上的 PB 级海量数据……
扫码关注腾讯云开发者
领取腾讯云代金券