热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Hadoop框架基础知识

如果有天堂,天堂应该是图书馆的模样。–博尔赫斯(不那么冷就更好了)主要内容:Hadoop、hive、HBASE、zookee

如果有天堂,天堂应该是图书馆的模样。 –博尔赫斯
(不那么冷就更好了)


主要内容:Hadoop、hive、HBASE、zookeeper、MySQL、sqoop、kafka(有时间补)、日志

一、什么是hadoop

Apache Hadoop是处理大数据的一种新方法
Hadoop是Apache软件基金会所开发的并行计算框架与分布式文件系统 
Apache Hadoop是一款支持数据密集型分布式应用并以Apache 2.0许可协议发布的开源软件框架。
Hadoop是根据Google公司发表的MapReduce和Google档案系统的论文自行实作而成。
这些是找到的资料描述,这里我们把它理解为软件框架,这个软件框架呢,表现在大量数据处理(通常一千兆兆字节即:十的十五次方字节计量)有突出能力,它的样子呈现生态系统,包含许多组件。


二、Hadoop框架

这里写图片描述


三、sqoop

1、ETL是啥??

Extraction-Transformation-Loading的缩写,中文名为数据抽取、转换和加载

2、那Sqoop(数据库ETL工具)用来干嘛的?

先了解现代数据存储系统如何运作(本少侠还不清楚),一些数据可能不适于存储在关系数据库中,因为大部分数据需要按照原始形式存储。向数据库中添加数据的前提是先把数据转变成一个可以加载到数据库的预定的模式,这一步骤被称为提取、转换和加载(ETL),会消耗时间和成本(是真的…贼长…)。最重要的是,关于数据如何使用的决定必须在ETL步骤中间作出。此外,一些数据经常在ETL步骤中被丢弃,因为它不能放入数据模式或被认为不需要。
凑巧,(其实,大多数的巧合都是设计好的)hadoop的重点是按照其原始格式使用数据。Hadoop访问数据时,看起来就像在执行ETL步骤。但与传统的数据仓库方法不同的是hadoop称为读时模式,传统的数据仓库方法,称为写时模式
本侠理解,sqoop是数据不加工的搬运工。
简单说:Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中
Sqoop中一大亮点就是可以通过hadoop的mapreduce把数据从关系型数据库中导入数据到HDFS。

例子:

a.使用Sqoop将数据从Hive导入MySQL

前提:启动Hadoop集群、MySQL服务

命令:
进入目录: cd /usr/local/sqoop
导入命令: ./bin/sqoop export –connect jdbc:mysql://localhost:3306/dblab –username root –password hadoop –table user_action –export-dir ‘/user/hive/warehouse/dblab.db/user_action’ –fields-terminated-by ‘\t’;

字段解释:

./bin/sqoop export ##表示数据从 hive 复制到 mysql 中
–connect jdbc:mysql://localhost:3306/dblab
–username root #mysql登陆用户名
–password hadoop #登录密码
–table user_action #mysql 中的表,即将被导入的表名称
–export-dir ‘/user/hive/warehouse/dblab.db/user_action ’ #hive中被导出的文件
–fields-terminated-by ‘\t’ #Hive 中被导出的文件字段的分隔符

b.使用Sqoop将数据从MySQL导入HBase

前提:启动Hadoop集群、MySQL服务、HBase服务

命令:
进入目录: cd /usr/local/sqoop
导入: ./bin/sqoop import –connect jdbc:mysql://localhost:3306/dblab –username root –password hadoop –table user_action –hbase-table user_action –column-family f1 –hbase-row-key id –hbase-create-table -m 1

3、更多:


  • sqoop详解
  • Sqoop详细介绍

四、数据仓库hive

1、Hive位置

这里写图片描述

2、数据仓库和数据库有啥区别(一直好奇)

数据库是面向事务的设计,数据仓库是面向主题设计的。
数据库一般存储在线交易数据,数据仓库存储的一般是历史数据。
数据库设计是尽量避免冗余,一般采用符合范式的规则来设计,数据仓库在设计是有意引入冗余,采用反范式的方式来设计。
数据库是为捕获数据而设计,数据仓库是为分析数据而设计,它的两个基本的元素是维表和事实表。(维是看问题的角度,比如时间,部门,维表放的就是这些东西的定义,事实表里放着要查询的数据,同时有维的ID)
网上查的,巴拉巴拉很有道理的样子

3、数据仓库用来干嘛呢

个人理解最简单的回答,对历史数据的分析和整理就是数据仓库。
数据仓库根本上来说是因为各种各样应用系统无法高效处理大量的历史数据才出现的。

4、数据仓库hive

Hive数据存储格式的两个维度:
行格式(row format)
文件存储格式(file format)

Apache Hive是建立在hadoop之上的数据仓库,使用称为HiveQL,类似SQL语言,提供大数据集的数据汇总、即时查询和分析

官网介绍:
Why Hive?
Hive is a data warehouse system for Hadoop that facilitates easy data summarization, ad-hoc queries, and the analysis of large datasets stored in Hadoop compatible file systems. Hive provides a mechanism to project structure onto this data and query the data using a SQL-like language called HiveQL.
(详情看hive官网)

5、SQL和HiveQL这么像,比较一番

这里写图片描述


五、HBase实时分布式数据库

1、HBase是什么?

同样先看下所处位置:

这里写图片描述

HBase是一个高性能的分布式数据库,主要适用于海量明细数据(十亿、百亿)的随机实时查询,如日志明细、交易清单、轨迹行为等;
是典型的NoSQL数据库,区别于传统的RDBMS(关系数据库管理系统);所以它是具有版本控制功能的分布式非关系型数据库。
它仿照自Google的Bigtable。
HBase和BigTable的底层技术对应关系

这里写图片描述

2、HBase模型概述

HBase类似数据库中的表,具有行和列。不同于关系数据库基于行模式存储。HBase是基于列存储的,列被分组为列族,每个列族都由几个文件保存,不同列族的文件是分离的,所有列族都一起存储在物理文件系统中。
列族中所有的列都具有相同的前缀。例如,一张每天股票价格的表,假如某一列族为“price”,它有四个成员——price:open、price:close、price:low和price:high。
关系数据库通常可以针对不同列构建复杂的多个索引,以提高数据访问性能。HBase只有一个索引——行键,通过巧妙的设计,HBase中的所有访问方法,或者通过行键访问,或者通过行键扫描,从而使得整个系统不会慢下来。也就是说表的所有访问都是通过表的行键进行的,它被认为是主键。
详情看HBase官网介绍

3、HBase与hive关系

在大数据架构中,Hive和HBase是协作关系,数据流一般如下图:

(1)通过ETL工具将数据源抽取到HDFS存储;
(2)通过Hive清洗、处理和计算原始数据;
(3)HIve清洗处理后的结果,如果是面向海量数据随机查询场景的可存入Hbase
(4)数据应用从HBase查询数据;

这里写图片描述


六、关于日志

安装过程中各种错,来一波日志:
1、系统日志是用来查找原因的。日志内容多且复杂,你需要做的就是耐心、然后找出你需要的,也许你不明白问题的原因,搜索吧

2、出了问题,首先查看系统日志,根据提示排查问题

3、如果系统日志看起来没问题,接着检查hadoop服务和应用程序日志。跟着错误的性质,查看对应的hadoop服务日志的方向,例如,如有一个hdfs有问题,那么就查看在NameNode和数据节点上的日志,而非yarn资源管理器或者节点管理器日志。

4、日志不一定在标准日志位置(/var/log)。日志文件的位置在服务的XML配置文件中设置

5、默认,hadoop系统日志文件是累积的,所以确保查看的是日志末尾。日志由log4j包管理

6、两种模式日志存储

日志聚合(好像还不清楚是啥)时可在yarn资源管理器用户界面(http://192.168.237.147:8088 或50070)中显示或yarn logs命令查看

未使用日志聚合,日志存放于本地,位置:yarn-site.xml文件中的yarn.nodemanager.log-dirs属性中。
若没有使用日志聚合,必须记录作业所用的集群节点(懵逼脸),然后必须直接从此节点获取日志文件。


七、参考

《写给大忙人的Hadoop2》 作者:Douglas Eadline(美)著 卢涛 李颖 译
《深入理解Hadoop》 作者:Madhu Siddalingaiah(美)著 于博 冯傲风 译
CSDN博主 桂小林 相关知识(也是少侠的导师啦啦啦)


推荐阅读
  • 大数据开发笔记(一):HDFS介绍
    ✨大数据开发笔记推荐:大数据开发面试知识点总结_GoAI的博客-CSDN博客_大数据开发面试​本文详细介绍大数据hadoop生态圈各部分知识,包括不限 ... [详细]
  • 前言本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出, ... [详细]
  • 马蜂窝数据总监分享:从数仓到数据中台,大数据演进技术选型最优解
    大家好,今天分享的议题主要包括几大内容:带大家回顾一下大数据在国内的发展,从传统数仓到当前数据中台的演进过程;我个人认为数 ... [详细]
  • 怎么快速学好大数据开发?
    新如何学习大数据技术?大数据怎么入门?怎么做大数据分析?数据科学需要学习那些技术?大数据的应用前景等等问题,已成为热门大数据领域热门问题,以下是对新手如何学习大数据技术问题的解答! ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • Hadoop源码解析1Hadoop工程包架构解析
    1 Hadoop中各工程包依赖简述   Google的核心竞争技术是它的计算平台。Google的大牛们用了下面5篇文章,介绍了它们的计算设施。   GoogleCluster:ht ... [详细]
  • Kylin 单节点安装
    软件环境Hadoop:2.7,3.1(sincev2.5)Hive:0.13-1.2.1HBase:1.1,2.0(sincev2.5)Spark(optional)2.3.0K ... [详细]
  • 我们在之前的文章中已经初步介绍了Cloudera。hadoop基础----hadoop实战(零)-----hadoop的平台版本选择从版本选择这篇文章中我们了解到除了hadoop官方版本外很多 ... [详细]
  • 本文_大数据之非常详细Sqoop安装和基本操作
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了大数据之非常详细Sqoop安装和基本操作相关的知识,希望对你有一定的参考价值。大数据大数据之 ... [详细]
  • Java开发面试问题,2021网易Java高级面试题及答案,实战案例
    前言大厂面试真题向来都是各大求职者的最佳练兵场,而今天小编带来的便是“HUAWEI”面经!这是一次真实的面试经历,虽然不是我自己亲身经历 ... [详细]
  • go语言能做什么?很多朋友可能知道Go语言的优势在哪,却不知道Go语言适合用于哪些地方。1、Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、 ... [详细]
  • Java开发实战讲解!字节跳动三场技术面+HR面
    二、回顾整理阿里面试题基本就这样了,还有一些零星的问题想不起来了,答案也整理出来了。自我介绍JVM如何加载一个类的过程,双亲委派模型中有 ... [详细]
  • #python没有类似于java和C#的接口类(interface),需要使用抽象类和抽象方法来实现接口功能#!usrbinenvpython#_*_coding ... [详细]
  • 数据仓库中基本概念
    一、数据仓库数据仓库(DataWarehouse)是一个面向主题的、集成的、稳定的且随时间变化的数据集合,用于支持管理人员的决策面向主题主题就是类型的意思。传统数 ... [详细]
  • 架构升级给DolphScheduler带来2~3倍性能提升
     引言大数据任务调度作为大数据建设中的核心基础设施,在经过社区用户们长期的使用中,不少用户对调度也提出了很多新的要求,为此,ApacheDolphinScheduler(Incub ... [详细]
author-avatar
王小瑶p_35ps
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有