HDFS

IDEA搭建scala开发环境开发spark应用程序

流过昼夜 提交于 2020-04-28 10:40:32
通过IDEA搭建scala开发环境开发spark应用程序 一、idea社区版安装scala插件 因为idea默认不支持scala开发环境,所以当需要使用idea搭建scala开发环境时,首先需要安装scala插件,具体安装办法如下。 1、打开idea,点击configure下拉菜单中的plugins选项: 2、在弹出对话框中点击红框按钮: 3、在弹出最新对话框的搜索栏输入scala,在筛选出的内容中选择红框部分,点击右侧install按钮开始下载插件: 本人在测试过程中通过install自动下载插件失败,最后选择手动下载scala插件,然后通过步骤2中install plugin from disk选项,选择手动下载zip包的方式安装插件成功。 二、创建scala工程 1、下载scala安装文件,并解压到d:\目录下: https://downloads.lightbend.com/scala/2.10.6/scala-2.10.6.zip 2、打开idea开发工具,选择“create new project”,创建一个新的工程: 3、下图中选择jdk版本、选择scala、以及scala依赖包位置(scala安装软件位置),next: 4、输入工程名称并且选择工程位置,点击finash: 5、完成工程创建后如下: 三、配置scala工程 1、file->preject

Spark小实例——求文件中的最大值和最小值(IDEA实现)

不问归期 提交于 2020-04-28 09:19:01
Spark小实例——求文件中的最大值和最小值(IDEA实现) 1、所需软件 IDEA开发工具 HDFS分布式文件系统(可选项) spark-2.1.1-bin-hadoop2.7(版本可自选) 2、所需文件(自定义数据即可) 比如: 3、准备IDEA的环境 首先创建项目 导入所需的JAR文件(spark-2.1.1-bin-hadoop2.7) 4、编写Spark程序(创建scala文件) 代码如下: import org.apache.spark.{SparkConf, SparkContext} object MAXandMIN { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("MAX and MIN").setMaster("local") //生成sc对象 val sc = new SparkContext(conf) //设置日志输出格式 sc.setLogLevel("ERROR") //2为设置2个分区 val lines = sc.textFile("hdfs://192.168.169.200:9000/2020/rdd/test/shuzi.txt",2) //过滤没有内容的行 val result = lines.filter(_.trim()

Apache Hive (一)Hive初识

淺唱寂寞╮ 提交于 2020-04-27 20:59:45
转自:https://www.cnblogs.com/qingyunzong/p/8707885.html Hive 简介 什么是Hive 1、Hive 由 Facebook 实现并开源 2、是基于 Hadoop 的一个数据仓库工具 3、可以将结构化的数据映射为一张数据库表 4、并提供 HQL(Hive SQL)查询功能 5、底层数据是存储在 HDFS 上 6、Hive的本质是将 SQL 语句转换为 MapReduce 任务运行 7、使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。   数据仓库之父比尔·恩门(Bill Inmon)在 1991 年出版的“Building the Data Warehouse”(《建 立数据仓库》)一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面 向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史 变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。   Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行,所以说 Hive 是基于 Hadoop 的一个数据仓库工具

Hive学习之路 (一)Hive初识

只谈情不闲聊 提交于 2020-04-27 20:24:55
Hive 简介 什么是Hive 1、Hive 由 Facebook 实现并开源 2、是基于 Hadoop 的一个数据仓库工具 3、可以将结构化的数据映射为一张数据库表 4、并提供 HQL(Hive SQL)查询功能 5、底层数据是存储在 HDFS 上 6、Hive的本质是将 SQL 语句转换为 MapReduce 任务运行 7、使不熟悉 MapReduce 的用户很方便地利用 HQL 处理和计算 HDFS 上的结构化的数据,适用于离线的批量数据计算。   数据仓库之父比尔·恩门(Bill Inmon)在 1991 年出版的“Building the Data Warehouse”(《建 立数据仓库》)一书中所提出的定义被广泛接受——数据仓库(Data Warehouse)是一个面 向主题的(Subject Oriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反映历史 变化(Time Variant)的数据集合,用于支持管理决策(Decision Making Support)。   Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行,所以说 Hive 是基于 Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在 HDFS 中的数据进行分析和管理

KafKa数据存储与数据一致性保证

跟風遠走 提交于 2020-04-27 17:59:02
tianjinsong 2016-10-31 21:03:13 6141 收藏 展开 http://yonghuiyang.github.io/2015/12/04/kafka_data_store/ 数据存储 Topic 一类消息称为一个Topic 转存失败 重新上传 取消 Topic逻辑结构 Topic可分为多个Parition; Parition内部保证数据的有序,按照消息写入顺序给每个消息赋予一个递增的offset; 为保证数据的安全性,每个Partition有多个Replica 多Parition的优点 并发读写,加快读写速度 多Partition分布式存储,利于集群数据的均衡 加快数据恢复的速率:当某台机器挂了,每个Topic仅需恢复一部分的数据,多机器并发 缺点 Partition间Msg无序,若想保证Msg写入与读取的序不变,只能申请一个Partition Partition 转存失败 重新上传 取消 Partition存储结构 每个Partition分为多个Segment 每个Segment包含两个文件:log文件和index文件,分别命名为start_offset.log和start_offset.index log文件包含具体的msg数据,每条msg会有一个递增的offset Index文件是对log文件的索引:每隔一定大小的块

基于Hadoop的58同城离线计算平台设计与实践

大城市里の小女人 提交于 2020-04-26 21:56:26
分享嘉宾:余意 58同城 高级架构师 编辑整理:史士博 内容来源:58大数据系列直播 出品平台:DataFun 注:欢迎转载,转载请在留言区留言。 导读: 58离线计算平台基于 Hadoop 生态体系打造,单集群4000+台服务器,数百 PB 存储,日40万计算任务,面临挑战极大。58 大数据平台的定位主要是服务数据业务开发人员,提高数据开发效率,提供便捷的开发分析流程,有效支持数据仓库及数据应用建设。通常大数据平台通用基础能力包括:数据存储、实时计算、离线计算、数据查询分析,本次分享将聚焦大数据平台离线计算和大家一起系统的探讨58在离线计算平台建设实践的思路、方案和问题解决之道。 本文主要内容包括: 58在集群快速增长的过程中遇到的问题以及解决之道; 58大数据集群跨机房迁移的相关工作,如何在5个月时间快速完成3000台集群服务的迁移工作。 ▌ 数据平台部简介 数据平台部是负责58统一大数据基础平台能力建设。平台负责的工作主要包括以下几部分: 数据接入: 文本的收集,我们采用 flume 接入,然后用 kafka 做消息缓冲,我们基于 kafka client 打造了一个实时分发平台,可以很方便的把 kafka 的中间数据打到后端的各种存储系统上。 离线计算: 我们主要基于 Hadoop 生态的框架做了二次定制开发。包括 HDFS、YARN、MR、SPARK。 实时计算:

基于Hadoop的58同城离线计算平台设计与实践

吃可爱长大的小学妹 提交于 2020-04-26 21:41:51
分享嘉宾:余意 58同城 高级架构师 编辑整理:史士博 内容来源:58大数据系列直播 出品平台:DataFun 注:欢迎转载,转载请在留言区留言。 导读: 58离线计算平台基于 Hadoop 生态体系打造,单集群4000+台服务器,数百 PB 存储,日40万计算任务,面临挑战极大。58 大数据平台的定位主要是服务数据业务开发人员,提高数据开发效率,提供便捷的开发分析流程,有效支持数据仓库及数据应用建设。通常大数据平台通用基础能力包括:数据存储、实时计算、离线计算、数据查询分析,本次分享将聚焦大数据平台离线计算和大家一起系统的探讨58在离线计算平台建设实践的思路、方案和问题解决之道。 本文主要内容包括: 58在集群快速增长的过程中遇到的问题以及解决之道; 58大数据集群跨机房迁移的相关工作,如何在5个月时间快速完成3000台集群服务的迁移工作。 ▌ 数据平台部简介 数据平台部是负责58统一大数据基础平台能力建设。平台负责的工作主要包括以下几部分: 数据接入: 文本的收集,我们采用 flume 接入,然后用 kafka 做消息缓冲,我们基于 kafka client 打造了一个实时分发平台,可以很方便的把 kafka 的中间数据打到后端的各种存储系统上。 离线计算: 我们主要基于 Hadoop 生态的框架做了二次定制开发。包括 HDFS、YARN、MR、SPARK。 实时计算:

刚哥谈架构(六)-大数据的文件存储

喜欢而已 提交于 2020-04-26 15:34:27
上一次我们谈到了各种类型的数据库,今天我们来谈谈在大数据,尤其是Hadoop栈下的数据和文件的存储。 我们知道为了解决大数据的存储和处理问题,google最先设计了推出了Map/Reduce的算法,而hadoop就是Google的map/reduce的开源实现。Hadoop主要由分布式的文件系统HDFS(参考Google的GFS)和Map/Reduce计算这两块。但随着Spark等更强大的计算引擎的出现,很少再有人使用Hadoop的Map/Reduce来做计算了,但是对于海量数据/文件的存储,除了HDFS,还真没有更多更好的选择。所以我们就来看看在Hadoop下,文件存储的各种选项。 原始文本文件 首先,我们什么都不需要做,HDFS提供分布式的文件存储,那么我们就直接把原始的文本文件存储在HDFS上就好了。通常我们会使用诸如txt,csv,json,xml等文本格式的文件存储在HDFS上,然后由各种计算引擎加载,计算。 HDFS是按照块来存储文件的,缺省的设置一个块的大小是64M,那么假定我的文本文件是1G,它会被分成16个分区,由计算引擎(Spark,Map/Reduce)来并行的处理,计算。 使用文本格式的主要问题是: 占用空间大 处理时有额外的序列化反序列化的开销,例如把日志中的文本‘12’转化为数字的12 所以这里就引入了两个解决方案: 压缩。 压缩是使用计算资源来换取存储

flume配置kafka channle的实战案例

爱⌒轻易说出口 提交于 2020-04-26 09:48:23
                 flume配置kafka channle的实战案例                                                作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。   最近在新公司负责大数据平台的建设,平台搭建完毕后,需要将云平台(我们公司使用的Ucloud的云服务器,大概320多台,还在扩容中),公司每个月光大数据服务费用就接近50万人民币。老板考虑成本问题,花了接近200万的前采购了50台服务器用于大数据平台的建设。我已经将集群部署好了,正准备将云上的环境原样搬到我的新平台上时,遇到了一系列的坑,我已经填了不少的坑。这不,关于flume的一个channel的选择也是一个坑。   我们知道常用的channel如下:     file channel的特点是:速度慢,支持容灾;     memory channel的特点是:速度快,断电丢数据,我们在 Ucloud 上使用的就是它;     kafka channel的特点是:高速缓存; 一.flume报错OOM   计划将kafka的数据通过flume抽取到hdfs上,真是flume略我千百变,我带flume如初恋啊。经过各种测试,我已经将flume的内存提升到12G,下面是我启动flume看到的信息,如下图:   启动后,我开启了一个终端

HBase读写的几种方式(二)spark篇

狂风中的少年 提交于 2020-04-26 06:34:44
1. HBase读写的方式概况 主要分为: 纯Java API读写HBase的方式; Spark读写HBase的方式; Flink读写HBase的方式; HBase通过Phoenix读写的方式; 第一种方式是HBase自身提供的比较原始的高效操作方式,而第二、第三则分别是Spark、Flink集成HBase的方式,最后一种是第三方插件Phoenix集成的JDBC方式,Phoenix集成的JDBC操作方式也能在Spark、Flink中调用。 注意: 这里我们使用HBase2.1.2版本,spark2.4版本,scala-2.12版本,以下代码都是基于该版本开发的。 2. Spark上读写HBase Spark上读写HBase主要分为新旧两种API,另外还有批量插入HBase的,通过Phoenix操作HBase的。 2.1 spark读写HBase的新旧API 2.1.1 spark写数据到HBase 使用旧版本saveAsHadoopDataset保存数据到HBase上。 /** * saveAsHadoopDataset */ def writeToHBase(): Unit = { // 屏蔽不必要的日志显示在终端上 Logger.getLogger("org.apache.spark" ).setLevel(Level.WARN) /* spark2.0以前的写法 val