HDFS

大数据--hive查询

我们两清 提交于 2021-02-16 10:01:25
一、全表查询和特定列查询 1、全表查询: ------------------------------------------------------------------- hive (db_test)> select * from dept; OK dept.deptno dept.dname dept.loc 10 ACCOUNTING 1700 20 RESEARCH 1800 30 SALES 1900 40 OPERATIONS 1700 Time taken: 0.306 seconds, Fetched: 4 row(s) --------------------------------------------------------------- hive (db_test)> select * from emp; OK emp.empno emp.ename emp.job emp.mrg emp.hiredate emp.sal emp.comm emp.deptno 7369 SMITH CLERK 7902 1980-12-17 800.0 NULL 20 7499 ALLEN SALESMAN 7698 1981-2-20 1600.0 300.0 30 7521 WARD SALESMAN 7698 1981-2-22 1250.0 500.0 30

Hive数据导入导出的几种方式

人盡茶涼 提交于 2021-02-15 03:41:14
一,Hive数据导入的几种方式 首先列出讲述下面几种导入方式的数据和hive表。 导入: 本地文件导入到Hive表; Hive表导入到Hive表; HDFS文件导入到Hive表; 创建表的过程中从其他表导入; 通过sqoop将mysql库导入到Hive表;示例见《 通过sqoop进行mysql与hive的导入导出 》和《 定时从大数据平台同步HIVE数据到oracle 》 导出: Hive表导出到本地文件系统; Hive表导出到HDFS; 通过sqoop将Hive表导出到mysql库; Hive表: 创建testA: CREATE TABLE testA ( id INT , name string, area string ) PARTITIONED BY (create_time string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' , ' STORED AS TEXTFILE; 创建testB: CREATE TABLE testB ( id INT , name string, area string, code string ) PARTITIONED BY (create_time string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ' , ' STORED AS

spark checkpoint详解

纵饮孤独 提交于 2021-02-14 21:34:00
checkpoint在spark中主要有两块应用:一块是在spark core中对RDD做checkpoint,可以切断做checkpoint RDD的依赖关系,将RDD数据保存到可靠存储(如HDFS)以便数据恢复;另外一块是应用在spark streaming中,使用checkpoint用来保存DStreamGraph以及相关配置信息,以便在Driver崩溃重启的时候能够接着之前进度继续进行处理(如之前waiting batch的job会在重启后继续处理)。 本文主要将详细分析checkpoint在以上两种场景的读写过程。 1,spark core中checkpoint分析 1.1,checkpoint的使用方法 使用checkpoint对RDD做快照大体如下: sc.setCheckpointDir(checkpointDir.toString) val rdd = sc.makeRDD(1 to 20, numSlices = 1) rdd.checkpoint() 首先,设置checkpoint的目录(一般是hdfs目录),这个目录用来将RDD相关的数据(包括每个partition实际数据,以及partitioner(如果有的话))。然后在RDD上调用checkpoint的方法即可。 1.2,checkpoint写流程 可以看到checkpoint使用非常简单

spark streaming checkpoint

て烟熏妆下的殇ゞ 提交于 2021-02-14 21:33:38
一个 Streaming Application 往往需要7*24不间断的跑,所以需要有抵御意外的能力(比如机器或者系统挂掉,JVM crash等)。为了让这成为可能,Spark Streaming需要 checkpoint 足够多信息至一个具有容错设计的存储系统才能让 Application 从失败中恢复。Spark Streaming 会 checkpoint 两种类型的数据。 Metadata(元数据) checkpointing - 保存定义了 Streaming 计算逻辑至类似 HDFS 的支持容错的存储系统。用来恢复 driver,元数据包括: 配置 - 用于创建该 streaming application 的所有配置 DStream 操作 - DStream 一些列的操作 未完成的 batches - 那些提交了 job 但尚未执行或未完成的 batches Data checkpointing - 保存已生成的RDDs至可靠的存储。这在某些 stateful 转换中是需要的,在这种转换中,生成 RDD 需要依赖前面的 batches,会导致依赖链随着时间而变长。为了避免这种没有尽头的变长,要定期将中间生成的 RDDs 保存到可靠存储来切断依赖链 总之,metadata checkpointing 主要用来恢复 driver;而 RDD数据的

Spark学习之路 (十二)SparkCore的调优之资源调优

不想你离开。 提交于 2021-02-14 07:06:44
摘抄自: https://tech.meituan.com/spark-tuning-basic.html 一、概述 在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪种情况,都会导致Spark作业的运行效率低下,甚至根本无法运行。因此我们必须对Spark作业的资源使用原理有一个清晰的认识,并知道在Spark作业运行过程中,有哪些资源参数是可以设置的,以及如何设置合适的参数值。 二、Spark作业基本运行原理 详细原理见上图。我们使用spark-submit提交一个Spark作业之后,这个作业就会启动一个对应的Driver进程。根据你使用的部署模式(deploy-mode)不同,Driver进程可能在本地启动,也可能在集群中某个工作节点上启动。Driver进程本身会根据我们设置的参数,占有一定数量的内存和CPU core。而Driver进程要做的第一件事情,就是向集群管理器(可以是Spark Standalone集群

Hadoop High Availability高可用

时间秒杀一切 提交于 2021-02-14 05:34:30
HDFS HA Namenode HA 详解     hadoop2.x 之后,Clouera 提出了 QJM / Qurom Journal Manager ,这是一个基于 Paxos 算法(分布式一致性算法)实现的 HDFS HA 方案,它给出了一种较好的解决思路和方案,QJM 主要优势如下:   不需要配置额外的高共享存储,降低了复杂度和维护成本。   消除 spof(单点故障)。   系统鲁棒性(Robust)的程度可配置、可扩展。    基本原理就是用 2N+1 台 JournalNode 存储 EditLog,每次写数据操作有>=N+1 返回成功时即认为该次写成功,数据不会丢失了 。当然这个算法所能容忍的是最多有 N台机器挂掉,如果多于 N 台挂掉,这个算法就失效了。这个原理是基于 Paxos 算法。   在 HA 架构里面 SecondaryNameNode 已经不存在了,为了保持 standby NN 时时的与 Active NN 的元数据保持一致,他们之间交互通过 JournalNode 进行操作同步。   任何修改操作在 Active NN 上执行时,JournalNode 进程同时也会记录修改 log到至少半数以上的 JN 中,这时 Standby NN 监测到 JN 里面的同步 log 发生变化了会读取 JN 里面的修改 log

Hadoop NameNode 高可用 (High Availability) 实现解析[转]

一曲冷凌霜 提交于 2021-02-14 04:08:09
NameNode 高可用整体架构概述 在 Hadoop 1.0 时代,Hadoop 的两大核心组件 HDFS NameNode 和 JobTracker 都存在着单点问题,这其中以 NameNode 的单点问题尤为严重。因为 NameNode 保存了整个 HDFS 的元数据信息,一旦 NameNode 挂掉,整个 HDFS 就无法访问,同时 Hadoop 生态系统中依赖于 HDFS 的各个组件,包括 MapReduce、Hive、Pig 以及 HBase 等也都无法正常工作,并且重新启动 NameNode 和进行数据恢复的过程也会比较耗时。这些问题在给 Hadoop 的使用者带来困扰的同时,也极大地限制了 Hadoop 的使用场景,使得 Hadoop 在很长的时间内仅能用作离线存储和离线计算,无法应用到对可用性和数据一致性要求很高的在线应用场景中。 所幸的是,在 Hadoop2.0 中,HDFS NameNode 和 YARN ResourceManger(JobTracker 在 2.0 中已经被整合到 YARN ResourceManger 之中) 的单点问题都得到了解决,经过多个版本的迭代和发展,目前已经能用于生产环境。HDFS NameNode 和 YARN ResourceManger 的高可用 (High Availability,HA) 方案基本类似

python基础操作以及hdfs操作

自古美人都是妖i 提交于 2021-02-14 02:35:17
一、前言 作为一个全栈工程师,必须要熟练掌握各种语言。。。HelloWorld。最近就被“逼着”走向了python开发之路,大体实现的功能是写一个通用类库将服务器本地存储的文件进行简单清洗后转储到HDFS中,所以基本上python的相关知识都涉及到了,这里对一些基础操作以及hdfs操作做一总结,以备查阅。 二、基础操作 2.1 字符串操作 字符串操作应该是所有语言的基础。python基本上也提供了其他语言常用的一些字符串处理函数,常用的如下: 1、startswith 以某个字符串起始 2、endswith 以某个字符串结尾 3、contain python没有提供contain函数,可以使用 'test' in somestring 的方式来进行判断,当然也可以使用index来判断 4、strip 去除空格及特殊符号 5、len 判断字符串长度len(str) 6、upper lower 大小写转换 7、split 分隔字符串 2.2 文件操作 文件以及文件夹操作也是写程序中经常用到的功能。python中文件操作常用的有以下函数。 1、walk 用于递归遍历文件夹,获取所有文件。 2、os.path 文件、文件夹路径等操作。 对文件操作进行了简单的封装,代码如下,仅供参考: def isFile (name): return os.path.isfile(name) def

Linkedin TonY

懵懂的女人 提交于 2021-02-13 16:43:50
背景说明:TensorFlowOnYARN开源时间较早,目前作者已经停止维护,业内推荐TonY系统; 安装环境:Centos 7.0或以上,物理机,Python-2.7.5虚拟环境(默认),tensorflow-1.13.1; 下载地址: https://github.com/linkedin/TonY ,git clone https://github.com/linkedin/TonY.git; 组件安装:apt-get update,apt-get install wget,apt-get install vim,apt-get install git,上传jdk,编辑.bashrc配置java环境; 代码编译:./gradlew build或./gradlew build -x test,前者构建并测试,后者只构建不测试,目标文件位于./tony-cli/build/libs/路径下; 目标文件: root@b9683a1b9302:~/TonY/tony-cli/build/libs# ll -h total 29M drwxr-xr-x 2 root root 4.0K Nov 4 03:17 ./ drwxr-xr-x 9 39040 staff 4.0K Nov 4 03:01 ../ -rw-r--r-- 1 root root 29M Nov 4 03:17

Presto在滴滴的探索与实践

给你一囗甜甜゛ 提交于 2021-02-13 14:01:33
桔妹导读: Presto在滴滴内部发展三年,已经成为滴滴内部Ad-Hoc和Hive SQL加速的首选引擎。目前服务6K+用户,每天读取2PB ~ 3PB HDFS数据,处理30万亿~35万亿条记录,为了承接业务及丰富使用场景,滴滴Presto需要解决稳定性、易用性、性能、成本等诸多问题。我们在3年多的时间里,做了大量优化和二次开发,积攒了非常丰富的经验。本文分享了滴滴对Presto引擎的改进和优化,同时也提供了大量稳定性建设经验。 1. Presto简介 ▍ 1.1 简介 Presto是Facebook开源的MPP(Massive Parallel Processing)SQL引擎,其理念来源于一个叫Volcano的并行数据库,该数据库提出了一个并行执行SQL的模型,它被设计为用来专门进行高速、实时的数据分析。Presto是一个SQL计算引擎,分离计算层和存储层,其不存储数据,通过Connector SPI实现对各种数据源(Storage)的访问。 ▍ 1.2 架构 Presto沿用了通用的Master-Slave架构,一个Coordinator,多个Worker。Coordinator负责解析SQL语句,生成执行计划,分发执行任务给Worker节点执行;Worker节点负责实际执行查询任务。Presto提供了一套Connector接口,用于读取元信息和原始数据,Presto