在《大数据之脚踏实地学09--Hive嵌入式安装》一文中我们详细介绍了Hive嵌入式的安装流程,即默认使用Hive的内置Derby数据库作为元信息的存储。但这样做存在一个非常大的弊端,那就是无法让多用户(即客户端)在同一个目录下同时访问数据库,这显然是有问题的。最常用的解决方案就是使用MySQL存储元信息,MySQL可以安装在master机器中,也可以安装在别的机器中。
在做数据导出之前,我们看一下已经完成的操作:数据分析阶段将指标统计完成,也将统计完成的指标放到Hive数据表中,并且指标数据存储到HDFS分布式文件存储系统。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
Hive是Hadoop生态中的一个重要组成部分,主要用于数据仓库。前面的文章中我们已经搭建好了Hadoop的群集,下面我们在这个群集上再搭建Hive的群集。
之前的文章中我们提到了Hive是Hadoop生态系统中的重要的成员之一,允许用户使用类似SQL的方式,很方便地进行离线数据的统计分析。本节我们就在Hadoop集群的基础上进行Hive的安装与配置。
2.如果出现如下截图内容,则认为安装了mysql(CentOS6.5默认自带安装了mysql)
hive 的下载地址为: https://archive.apache.org/dist/hive/
1.非root用户连接mysql服务时,报如下错误, ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 原来是mysql服务没有启动,启动mysql服务时候,一直失败,sudo切换执行命令mysql -uroot -proot即可。 2.安装hive和mysql完成后,将mysql的连接jar包拷贝mysql-connector-java-x.x.xx-
将Mysql安装包上传到服务器上,然后解压压缩包,使用命令:unzip mysql-libs.zip
Hive是一个数据仓库基础工具在Hadoop中用来处理结构化数据。它架构在Hadoop之上,总归为大数据,并使得查询和分析方便。 最初,Hive是由Facebook开发,后来由Apache软件基金会开发,并作为进一步将它作为名义下Apache Hive为一个开源项目。它用在好多不同的公司。例如,亚马逊使用它在 Amazon Elastic MapReduce。
最近一个数据分析朋友需要学习 Hive,刚好我也想学,便利用手头的服务器搭建一个学习环境,但是搭建过程中,发现网上的教程很多过时了,而且部署过程中,很多地方走不通,博主也没有给出对应的说明。花了大力气才从各种资料中完成 Hadoop、Mysql、Hive 三者的部署。
hive服务端安装好之后,服务端如何连接使用? * 服务端需要启动hive metastore服务,客户端才能远程使用hive元信息
这里给大家列出来了一部分Sqoop操作时的常用参数,以供参考,需要深入学习的可以参看对应类的源代码。
8. 配置 /opt/apache-hive-2.1.1-bin/conf/hive-site.xml
在环境变量中增加如下命令,可以使用 bd 快速切换到 /data/tools/bigdata
(3)修改 apache-hive-1.2.1-bin.tar.gz 的名称为 hive
Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易。Apache Sqoop正在加紧帮助客户将重要数据从数据库移到Hadoop。随着Hadoop和关系型数据库之间的数据移动渐渐变成一个标准的流程,云管理员们能够利用Sqoop的并行批量数据加载能力来简化这一流程,降低编写自定义数据加载脚本的需求。
如果提示-bash: wget: 未找到命令,请先执行 yum install wget 安装
Apache Sqoop(TM)是一种旨在有效地在Apache Hadoop和诸如关系数据库等结构化数据存储之间传输大量数据的工具。
sqoop job --meta-connect jdbc:hsqldb:hsql://ip:port/sqoop --list
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
Hive是种基于Hadoop的数据仓库工具,将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能。
sqoop,即SQL To Hadop,目的是完成关系型数据库导入导出到Hadoop
默认情况下,Hive的元数据是存储到Derby中的,这是Apache的一个纯Java编写的小巧数据库,类似于Sqlite。但是这样就会出现一个情况:Derby是单例的,当你在一个终端打开了hive时,在另外一个终端打开hive命令行会报错。所以使用MySQL来存储元数据能够解决这个问题,并且也更方便迁移和备份。
Sqoop 是一款开源的工具,主要用于在 Hadoop(Hive) 与传统的数据库 (mysql,postgresql,...) 间进行数据的高校传递,可以将一个关系型数据库(例如:MySQL,Oracle,Postgres等)中的数据导入到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。 Sqoop 项目开始于 2009 年,最早是作为 Hadoop 的一个第三方模块存在,后来为了让使用者能够快速部署,也为了让开发人员能够更快速的迭代开发,Sqoop 独立成为一个 Apache 顶级项目。 Sqoop2 的最新版本是 1.99.7。请注意,2 与 1 不兼容,且特征不完整,它并不打算用于生产部署。
离线数据分析平台实战——160Sqoop介绍 Sqoop介绍 Apache Sqoop(SQL-to-Hadoop) 是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、oracle...)间进行数据的传递,可以将一个关系型数据库中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。 一般情况下,是将数据分析的结果导出到关系型数据库中,供其他部门使用。 Sqoop成立于2009年,刚开始是作为hadoop的一个模块而存在的,不过后来为了更好的进行
Sqoop是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
元数据服务(metastore)作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。
本文主要通过Kettle完成对Hive和HBase中数据的读写工作,为了便于按照文档即可实现Kettle的读写Hive和HBase,文本前面也介绍下Hive的安装过程,如何Hive已经完成安装,可跳过前面即可。 实验环境: cetnos7.4
安装hive包 [CDH下载地址](http://archive.cloudera.com/cdh5/cdh/5/) 1、将hive-0.13.1-cdh5.3.10.tar.gz使用WinSCP上传到sparkproject1的/usr/local目录下。 2、解压缩hive安装包:tar -zxvf hive-0.13.1-cdh5.3.6.tar.gz 3、重命名hive目录:mv hive-0.13.1-cdh5.3.6 hive 4、配置hive相关的环境变量 vi /etc/profile
3.使用Sqoop从MySQL导入数据到HDFS,要导入的目录是Hive中新建表的数据目录
上传安装包 apache-hive-2.3.4-bin.tar.gz 解压 tar -xzvf apache-hive-2.3.4-bin.tar.gz -C /hd/ 重命名 ln -s apache-hive-2.3.4-bin hive 修改环境变量 vim /etc/profile export HIVE_HOME=/hd/hive export PATH=$PATH:$HIVE_HOME/bin 环境变量起效果 source /etc/profile 修改配置文件 拷贝驱动mysql-conn
Ubuntu 16.04,Hadoop版本是2.7.2 ,选择Hive版本为 hive-2.1.17
Hive 是建立在 Hadoop 基础上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为 QL ,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。
http://www.pianshen.com/article/1872402467/
默认情况下,Hive会使用Derby来存储元数据(主要是表、列、分区Partition的信息)。Derby是一个嵌入式的本地数据库,只能单进程进行访问,不允许多个连接。因此,Derby只适合本地测试,不适合用在生产环境。Hive支持使用单独的数据库来存储元数据,比如MySql、PostgreSql等,本文将介绍如何配置Hive使用MySql存储元数据。
sqoop是apache旗下,用于关系型数据库和hadoop之间传输数据的工具,sqoop可以用在离线分析中,将保存在mysql的业务数据传输到hive数仓,数仓分析完得到结果,再通过sqoop传输到mysql,最后通过web+echart来进行图表展示,更加直观的展示数据指标。
Hive可以管理HDFS中的数据,可以通过SQL语句可以实现与MapReduce类似的同能,因为Hive底层的实现就是通过调度MapReduce来实现的,只是进行了包装,对用户不可见。 Hive对HDFS的支持只是在HDFS中创建了几层目录,正真的数据存在在MySql中,MYSQL中保存了Hive的表定义,用户不必关系MySQL中的定义,该层对用户不可见。Hive中的库在HDFS中对应一层目录,表在HDFS中亦对应一层目录,如果在对应的表目录下放置与表定义相匹配的数据,即可通过Hive实现对数据的可视化及查询等功能 综上所述,Hive实现了对HDFS的管理,通过MySQL实现了对HDFS数据的维度管理 Hive基本功能及概念 database table 外部表,内部表,分区表 Hive安装 1. MySql的安装(密码修改,远程用户登陆权限修改) 2. Hive安装获取,修改配置文件(HADOOP_HOME的修改,MySQL的修改) 3. 启动HDFS和YARN(MapReduce),启动Hive Hive基本语法: 1. 创建库:create database dbname 2. 创建表:create table tbname Hive操作: 1. Hive 命令行交互式 2. 运行HiveServer2服务,客户端 beeline 访问交互式运行 3. Beeline 脚本化运行 3.1 直接在 命令行模式下 输入脚本命令执行(比较繁琐,容易出错,不好归档) 3.2 单独保存SQL 命令到 文件,如etl.sql ,然后通过Beeline命令执行脚本 数据导入: 1. 本地数据导入到 Hive表 load data local inpath "" into table .. 2. HDFS导入数据到 Hive表 load data inpath "" into table .. 3. 直接在Hive表目录创建数据 Hive表类型: 1. 内部表: create table 表数据在表目录下,对表的删除会导致表目录下的数据丢失,需要定义表数据的分隔符。 2. 外部表: create external table 表目录下挂载表数据,表数据存储在其他HDFS目录上,需要定义表数据的分隔符。 3. 分区表:与创建内部表相同,需要定义分区字段及表数据的分隔符。在导入数据时需要分区字段,然后会在表目录下会按照分区字段自动生成分区表,同样也是按照目录来管理,每个分区都是单独目录,目录下挂载数据文件。 4. CTAS建表 HQL 1. 单行操作:array,contain等 2. 聚合操作:(max,count,sum)等 3. 内连接,外连接(左外,右外,全外) 4. 分组聚合 groupby 5. 查询 : 基本查询,条件查询,关联查询 6. 子查询: 当前数据源来源于 另个数据执行的结果,即当前 table 为临时数据结果 7. 内置函数: 转换, 字符串, 函数 转换:字符与整形,字符与时间, 字符串:切割,合并, 函数:contain,max/min,sum, 8. 复合类型 map(key,value)指定字符分隔符与KV分隔符 array(value)指定字符分隔符 struct(name,value) 指定字符分割与nv分隔符 9. 窗口分析函数 10. Hive对Json的支持
经过查询,两台主机的地址分别是192.168.56.105和192.168.56.106,那么105作为本地,106作为远程
Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。
下载 mysql-connector-java-5.1.47.jar ,添加到 lib目录下
可以从 http://hive.apache.org/downloads.html 下载你想要的版本,在这我们使用的是2.3.7版本
本文的安装参照《Hive 0.12.0安装指南》,内容来源于官方的:GettingStarted,将Hive 1.2.1安装在Hadoop 2.7.1上。本文将Hive配置成Server模式,并且使用MySQL作为元数据数据库,远程连接MySQL。
sqoop是apache旗下一款“Hadoop和关系数据库服务器之间传送数据”的工具。
Hive:由Facebook开源用于解决海量结构化日志的数据统计(分析框架)。 Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类SQL查询功能。 本质是:将HQL转化成MapReduce程序。
将 mysql 数据库中的 hive 数据库中的 ROLES 表数据导入到 HDFS 中的 /tmp/root/111 目录下。执行代码如下:
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的[SQL]查询功能,可以将SQL语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。
领取专属 10元无门槛券
手把手带您无忧上云