HDFS

Hadoop HA高可用集群搭建详细过程(亲测四台有效)

北战南征 提交于 2020-08-05 18:49:28
hadoop集群HA高可用搭建 ❀❀❀❀❀搭建前的简单介绍❀❀❀❀❀ 主机配置环境如下表: Hadoop HA原理:    在一典型的HA集群中,每个NameNode是一台独立的服务器。在任一时刻,只有一个NameNode处于active状态,另一个处于standby状态。其中,active状态的NameNode负责所有的客户端操作,standby状态的NameNode处于从属地位,维护着数据状态,随时准备切换(两种切换方式,选择手动切换和自动切换)。手动切换是通过命令实现主备之间的切换,可以用HDFS升级等场合,自动切换方案基于Zookeeper。两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。 HA集群的架构图 将四台机子node01,node02,node03,node04,按如下HA安装方案图进行集群规划。 HA安装方案图 *表示虚拟机要配置该角色 hadoop 2.X介绍  Hadoop 2.x由 HDFS、MapReduce 和

Hive自定义UDF基于华为云MRS平台 解析ip地址

こ雲淡風輕ζ 提交于 2020-08-05 12:28:04
大数据离线数仓的分析,必不可少的就是根据业务需求去解析字段,工作需要定义了解析ip的udf,希望可以给大家一些启发 创建maven工程,添加依赖 我这边用到的 一个是hive 一个ipip的依赖 pom文件如下 由于集群环境有hive,所以打包时不带进去,用provided方式实现 <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>3.1.0-mrs-2.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>net.ipip</groupId> <artifactId>ipdb</artifactId> <version>1.1.3</version> </dependency> 由于需要去华为云下载sdk 添加 <repositories> <repository> <id>huaweicloudsdk</id> <url>https://mirrors.huaweicloud.com/repository/maven/huaweicloudsdk/</url> <releases><enabled>true</enabled></releases>

想了解大数据的鼻祖Hadoop技术栈,这里有一份优质书单推荐!

↘锁芯ラ 提交于 2020-08-05 12:01:38
​ 如何用形象的比喻描述大数据的技术生态?Hadoop、Hive、Spark 之间是什么关系?对于大部分人来说都是傻傻分不清楚。 今年来大数据、人工智能获得了IT界大量的关注。如果一个企业不玩大数据,都不好意思说自己是在IT圈混的。我敢打赌,你在中关村西二旗地铁站溜一圈,保准你会听到如下名词:Hadoop、Spark、MapReduce、NoSQL、离线计算、实时计算、实时推送等等一大串名称。 程序猿们就是有这么实在,坐在地铁上还能那么投入的讨论技术问题。那么,这些听起来高大上的技术,究竟都是干什么用的呢?他们之间的有什么区别和联系? 通常,一个技术的兴起,都是由现实需求驱动的。了解了我们面临的问题,就能更好的理解各个大数据技术的使用场景,各类大数据技术的区别也就显而易见了。 今天这一份书单,我们就将从Hadoop生态圈开始入手,推荐几本关于Hadoop生态圈的优质书籍! Hadoop技术栈系列书单 ​ Hadoop权威指南:大数据的存储与分析(第4版) 本书结合理论和实践,由浅入深,全方位介绍了Hadoop这一高性能的海量数据处理和分析平台。 全书5部分24章,第Ⅰ部分介绍Hadoop基础知识,主题涉及Hadoop、MapReduce、Hadoop分布式文件系统、YARN、Hadoop的I/O操作。第Ⅱ部分介绍MapReduce,主题包括MapReduce应用开发

hive异常 return code X from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask 解决

旧街凉风 提交于 2020-08-05 09:23:33
转自:https://www.iteye.com/blog/vase-2090320 不知道是不是hive-0.12版增强了local mode的原因,在之前版本运行好好的Hive-QL在这个版本上错误频频,折磨一天多以后终于定位到原因,把在内部的总结在这再记录下,希望对遇到同样问题的筒子们有所帮助。 部分一 关于return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask Hive升级到0.12版之后,若干原来在0.10上执行正常的SQL会在新版上报错误 “return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask”,查看hive执行日志,从中找到如下错误 Total MapReduce jobs = 1 java . io . IOException : Cannot run program "/data/opt/hadoop_cdh5/bin/hadoop" ( in directory "/root" ) : error = 13 , 权限不够 at java . lang . ProcessBuilder . start ( ProcessBuilder . java : 1041 ) at java . lang .

史上最全的大数据技术栈,有种冲动学习的既视感,你是否感受到了自己的不足?

泄露秘密 提交于 2020-08-05 04:19:44
前言 提起大数据,不得不提由IBM提出的关于大数据的5V特点: Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性) ,而对于大数据领域的从业人员的日常工作也与这5V密切相关。大数据技术在过去的几十年中取得非常迅速的发展,尤以Hadoop和Spark最为突出,已构建起庞大的技术生态体系圈。 下面我们通过一张图来了解一下目前大数据领域常用的一些技术,当然大数据发展至今所涉及技术远不止这些。 下面自底向上介绍各个层的主要项目。 1 采集层和传输层 Sqoop 在hadoop和关系型数据库之间转换数据。 Flume Flume是一个分布式的高可用的数据收集、聚集和移动的工具。通常用于从其他系统搜集数据,如web服务器产生的日志,通过Flume将日志写入到Hadoop的HDFS中。 Canal 数据抽取是 ETL 流程的第一步。我们会将数据从 RDBMS 或日志服务器等外部系统抽取至数据仓库,进行清洗、转换、聚合等操作。在现代网站技术栈中,MySQL 是最常见的数据库管理系统,我们会从多个不同的 MySQL 实例中抽取数据,存入一个中心节点,或直接进入 Hive。市面上已有多种成熟的、基于 SQL 查询的抽取软件,如著名的开源项目 Apache Sqoop,然而这些工具并不支持实时的数据抽取。MySQL Binlog

[Hive on Tez] Input path does not exists error

自古美人都是妖i 提交于 2020-08-05 00:07:07
Issue hive metadata有分区信息 partition=x, hdfs路径不存在分区目录partition=x时。执行一些hive sql就会报错: org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: 见 issue: https://issues.apache.org/jira/browse/HIVE-13781 影响:Hive on Tez. Hive3 解决方案 在执行hive sql执行保证hdfs目录和hive metadata的一致性 回退hive on mr 执行msck repair table修复全表 来源: oschina 链接: https://my.oschina.net/u/3534184/blog/4321187

第一天:Hbase 概述

强颜欢笑 提交于 2020-08-04 21:30:57
1. 什么是HBase HBase的原型是Google的 BigTable 论文,受到了该论文思想的启发,目前作为Hadoop的顶级项目来开发维护,用于支持结构化的数据存储。 HBase是一个 高可靠性 、 高性能 、 面向列 、 可伸缩 的 分布式存储 系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。 HBase的目标是 存储 并 处理 大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。【非大勿用】 HBase是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MAPREDUCE来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。 简单粗暴的总结:就是一款 NoSQL 数据库,面向 列存储 ,用于存储处理海量数据。 核心在于它是一个存数据的地方,可是在此之前学习过了HDFS和Mysql,那HBase为什么还会出现呢? 2. 为什么会有HBase 先说一下Mysql

spark streaming 流式计算-----容错(hbase幂等性修改)

柔情痞子 提交于 2020-08-04 19:52:20
在做流式计算过程中,最复杂最难做的莫过于数据幂等性修改操作的设计。先解释一下概念【幂等性操作】,幂等性概念来源于数学专业表示对一个表达式做多次相同的操作,表达式不会改变。例如:逻辑回归中的Sigmod函数,n次求导之后依然坚挺。在流式计算中容错设计也要求工程设计有数据幂等性设计,特别针对流式计算中对第三方存储平台的修改操作。以及更加逆天的场景:在一个业务线有多个点有批量的数值修改操作,只要有一个点没有修改完成,而此时流式计算崩溃,下次重启都要做所有点的数据恢复操作。 说到幂等性,不得不说一下spark中的一个优化操作---推测执行。推测执行设计的初衷是提高作业的执行效率,避免某一个任务因为硬件问题卡死而拖慢整个计算任务。大致设计思想时,在任务完成达到某个百分比,开始检查任务完成情况,如果发现某任务执行时间超过其他任务耗时均值的阈值倍数,就在其他节点重启相同的计算任务,这样可以有效避免因硬件问题造成的卡死现象。但是在流式计算中对于修改数值的操作或者在mappartion/foreachPartition中自定义数据持久化到非主键约束的平台时,就会出现灾难性后果。一旦出现数据倾斜,启动备用线程执行当前任务,就会出现数据加倍等脏数据。所以在以上场景,无法保证操作幂等性的前提下,不要开启推测执行。 今天着重分享对于hbase的幂等性修改的设计

2020中金所实习面试问题

ぐ巨炮叔叔 提交于 2020-08-04 18:54:52
一、Java基础 Arraylist和LinkedList的区别 底层实现原理 Arraylist:底层是基于动态数组,根据下表随机访问数组元素的效率高,向数组尾部添加元素的效率高;但是,删除数组中的数据以及向数组中间添加数据效率低,因为需要移动数组。 Linkedlist基于链表的动态数组,数据添加删除效率高,只需要改变指针指向即可,但是访问数据的平均效率低,需要对链表进行遍历。 对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 “==”和“equals”区别 hashcode是什么 垃圾回收算法;分代回收中新生代采用的方法,老年代的方法 标记清除算法 复制算法(新生代算法) 标记整理算法(老年代回收算法) String StringBuilder StringBuffer 区别 Error和Exception的区别,举例…… Exception和Error都是继承了Throwable类,在java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),他是异常处理机制的基本组成类型。 Exception和Error体现了java平台设计者对不同异常情况的分类

Kafka源码分析(一)

烂漫一生 提交于 2020-08-04 18:00:12
Apache Kafka® 是 一个分布式流处理平台. 这到底意味着什么呢? 我们知道流处理平台有以下三种特性: 可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。 可以储存流式的记录,并且有较好的容错性。 可以在流式记录产生时就进行处理。 Kafka适合什么样的场景? 它可以用于两大类别的应用: 构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。 (相当于 message queue ) 构建实时流式应用程序,对这些流数据进行转换或者影响。(就是流处理,通过 kafka stream topic 和 topic 之间内部进行变化) 为了理解Kafka是如何做到以上所说的功能,从下面开始,我们将深入探索Kafka的特性。. 首先是一些概念: Kafka 作为一个集群,运行在一台或者多台服务器上. Kafka 通过 topic 对存储的流数据进行分类。 每条记录中包含一个 key ,一个 value 和一个 timestamp (时间戳)。 Kafka有四个核心的API: The Producer API 允许一个应用程序发布一串流式的数据到一个或者多个Kafka topic。 The Consumer API 允许一个应用程序订阅一个或多个 topic ,并且对发布给他们的流式数据进行处理。 The Streams API