![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
文章平均质量分 87
Winyar Wen
这个作者很懒,什么都没留下…
展开
-
大数据个人笔记——Zookeeper、Hadoop、flume、hive、sqoop、hbase、kafka、storm、spark的安装及使用
大数据笔记Zookeeper的安装及使用安装步骤如下:[root@localhost ~]# cd /home/software[root@localhost software]# tar -xvf zookeeper-3.4.10.tar.gz[root@localhost software]# cd zookeeper-3.4.10[root@localhost zookeepe...原创 2018-12-31 18:52:40 · 1362 阅读 · 1 评论 -
scala之类的用法
概述1)scala中的类和java中基本类似。2)scala中的类同样通过class来进行声明3)scala中的类同样可以具有成员变量和成员方法4)scala中的类同样可以通过new关键字来创建出对象创建类示例1://创建一个类,并定义类里的两个成员变量name和age。以及一个成员方法 eat()//需要注意的是:scala中变量(var)声明时需要指定初始值,class Per...原创 2019-07-21 09:08:36 · 258 阅读 · 1 评论 -
scala之高阶函数
案例,单词统计写法1:val val1=List("hadoop","hello","hello","hadoop","world","hadoop")val1.groupBy { x => x } .mapValues { x => x.size }.foreach(println(_))打印的结果:(hadoop,3) (world,1)(hello,2)写法2:...原创 2019-07-21 09:08:44 · 209 阅读 · 0 评论 -
scala之Tuple 元组
Tuple 元组与列表一样,元组也是不可变的,但与列表不同的是元组可以包含不同类型的元素。元组的值是通过将单个的值包含在圆括号中构成的。例如:...原创 2019-07-21 09:08:54 · 204 阅读 · 0 评论 -
scala集合
Scala CollectionScala提供了一套很好的集合实现,提供了一些集合类型的抽象。Scala 集合分为不可变(immutable)的集合和可变(mutable)的集合。数组Array对于数组的使用,若想调用数组提供的方法,我们需要使用import Array._ 引入包List链表Set注:还有很多方法没有列出,基本和List的方法一致Map映射Map(映射)是...原创 2019-07-21 09:09:01 · 151 阅读 · 0 评论 -
scala之懒值、柯里化 Currying
懒值柯里化 Curryingscala的柯里化的作用是结合scala的高阶函数,从而允许用户自建立控制结构。柯里化(Currying)技术 Christopher Strachey 以逻辑学家Haskell Curry 命名的(尽管它是Moses Schnfinkel 和Gottlob Frege 发明的)。它是把接受多个参数的函数变换成接受一个单一参数的函数, 并且返回接受余下的参数且返...原创 2019-07-21 09:09:10 · 253 阅读 · 0 评论 -
scala 函数用法
函数的声明scala 函数通过 def 关键字定义,def前面可以具有修饰符,可以通过private、protected来控制其访问权限。注意:没有public,不写默认就是public的。 此外也可跟上override,final等关键字修饰。函数的返回值1)函数体中return关键字往往可以省略掉,一旦省略掉,函数将会返回整个函数体中最后一行表达式的值,这也要求整个函数体的最后一行必须...原创 2019-07-21 09:09:18 · 281 阅读 · 1 评论 -
Scala 基础语法2
原创 2019-07-21 09:09:26 · 147 阅读 · 0 评论 -
Scala 基础语法1
原创 2019-07-21 09:09:51 · 120 阅读 · 0 评论 -
Spark基础、安装方法、RDD介绍和操作方法
Spark介绍Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的,后贡献给Apache。是一种快速、通用、可扩展的大数据分析引擎。它是不断壮大的大数据分析解决方案家族中备受关注的明星成员,为分布式数据集的处理提供了一个有效框架,并以高效的方式处理分布式数据集。Spark集批处理、实时流处理、交互式查询、机器学习与图计算于一体,避免了多种运算场景下需...原创 2019-07-21 09:08:29 · 419 阅读 · 1 评论 -
spark之DAG、Shuffle概述、框架核心概念、集群模式安装
DAG概念概述Spark会根据用户提交的计算逻辑中的RDD的转换和动作来生成RDD之间的依赖关系,同时这个计算链也就生成了逻辑上的DAG。接下来以“Word Count”为例,详细描述这个DAG生成的实现过程。Spark Scala版本的Word Count程序如下:1: val file=sc.textFile(“hdfs://hadoop01:9000/hello1.txt”) 2:...原创 2019-07-21 09:08:07 · 784 阅读 · 1 评论 -
深入学习hadoop框架MapReduce(案例代码分享)
MapReduce的细节1.MR的默认分区机制MR的默认分区机制,是通过K2的值基于Hash算法实现的,具体实现过程为: k2.hashCode()%rnum决定了k2v2分配到哪个Reducer中,基于hash算法的散列的特性,保证了具有相同k2的数据可以去往同一个Reducer中。2.MR自定分区机制a.自定义分区实现过程在某些需求中,如果MR默认的分区机制无法完成功能,可以自定...原创 2019-07-21 09:05:45 · 268 阅读 · 1 评论 -
Hive处理案例——Zebra业务数据清洗
Zebra业务回顾zebra业务回顾zebra项目最开始阶段会对日志文件进行分析统计,针对apptype,userip等20个字段做了统计,然后把最后的结果落地到数据库里。这张表相当于总表(f_http_app_host)在企业里做到这步并没有结束,因为后续还要做数据分析,可能会针对此表进行多个维度的查询和统计,比如:1.应用欢迎度2.各网站表现3.小区Http上网能力4.小区上网...原创 2019-07-21 09:05:54 · 1051 阅读 · 1 评论 -
Spark配置详解
Spark配置详解这些参数皆可在 spark-defaults.conf配置,或者部分可在 sparkconf().set设置应用程序属性属性名称默认值含义spark.app.name(none)你的应用程序的名字。这将在UI和日志数据中出现spark.driver.cores1driver程序运行需要的cpu内核数spark.driver.maxR...原创 2019-07-21 09:06:44 · 442 阅读 · 0 评论 -
Spark SQL入门、基础语法、API
Spark SQL概述Spark为结构化数据处理引入了一个称为Spark SQL的编程模块。它提供了一个称为DataFrame(数据框)的编程抽象,DF的底层仍然是RDD,并且可以充当分布式SQL查询引 擎。SparkSQL的由来SparkSQL的前身是Shark。在Hadoop发展过程中,为了给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,Hive应运而...原创 2019-07-21 09:06:33 · 3653 阅读 · 0 评论 -
Spark重要源码解读
SparkConf类/***Configuration for a Spark application. Used to set various Spark parameters as key-value pairs.**Most of the time, you would create a SparkConf object with new SparkConf(), which wil...原创 2019-07-21 09:06:56 · 266 阅读 · 1 评论 -
Spark调优、Checkpoint机制、Spark懒执行、共享变量、解决数据倾斜问题
Spark调优更好的序列化实现Spark用到序列化的地方1)Shuffle时需要将对象写入到外部的临时文件。2)每个Partition中的数据要发送到worker上,spark先把RDD包装成task对象,将task通过网络发给worker。3)RDD如果支持内存+硬盘,只要往硬盘中写数据也会涉及序列化。默认使用的是java的序列化。但java的序列化有两个问题,一个是性能相对比较低,...原创 2019-07-21 09:07:05 · 1120 阅读 · 1 评论 -
Spark架构、调度模块、Shuffle详解、RDD容错机制、RDD缓存
概述为了更好地理解调度,我们先来鸟瞰一下集群模式下的Spark程序运行架构图。1.Driver Program用户编写的Spark程序称为Driver Program。每个Driver程序包含一个代表集群环境的SparkContext对象,程序的执行从Driver程序开始,所有操作执行结束后回到Driver程序 中,在Driver程序中结束。如果你是用spark shell,那么当你启...原创 2019-07-21 09:07:48 · 285 阅读 · 0 评论 -
spark应用之简单案例
案例—WordCount实现步骤1)创建spark的项目在scala中创建项目 导入spark相关的jar包2)开发spark相关代码代码示例:import org.apache.spark.SparkConf import org.apache.spark.SparkContextobject WordCountDriver {def main(args: Array[Str...原创 2019-07-21 09:07:56 · 2130 阅读 · 1 评论 -
scala学习笔记——简介、安装及使用
Scala介绍Scala既是面向对象的语言,也是面向函数的语言。scala可以为你在做大量代码重用和扩展是提供优雅的层次结构,并可以通过高阶函数来实现这样的目标。(高阶函数是函数式编程里的特性之一,允许函数作为参数传递,也允许函数作为返回值来返回)Scala创始人 Martin Odersky马丁·奥德斯基Martin是EPFL(瑞士领先的技术大学,洛桑联邦理工学院)编程研究组的教授。他...原创 2019-07-21 09:10:01 · 276 阅读 · 1 评论 -
Python爬虫技术
爬虫概述1.爬虫技术概述爬虫,即网络爬虫,是通过递归访问网络资源,抓取网络中信息的技术。互联网中也有大量的有价值的信息数据,手动下载效率非常低下,爬虫就是自动化爬取下载些有价值的信息的技术。互联网中的页面往往不是独立存在的,而是通过超链接连接成了一个网络,爬虫程序就像一 只蜘蛛一样,通过访问超链接在这张网络中移动 ,并下载需要的信息,理论上可以将爬取到整个互联网的绝大部分数据。爬虫技术最...原创 2019-07-20 14:18:32 · 4005 阅读 · 3 评论 -
Netty和RPC介绍
Netty概述:1、netty是基于Java NIO的网络应用框架,client-server框架2、Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。3、作为当前最流行的NIO框架,N...原创 2019-07-20 10:58:24 · 781 阅读 · 1 评论 -
Kafka学习笔记
Kafka介绍Kafka是由LinkedIn开发的一个分布式的消息系统,最初是用作LinkedIn的活动流(Activity Stream)和运营数据处理的基础。活动流数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。运营数据指的是服务器的性能数据(CPU、I...原创 2019-07-20 10:35:30 · 335 阅读 · 1 评论 -
Hive特点
Hive特点1.针对海量数据的高性能查询和分析系统由于 Hive 的查询是通过 MapReduce 框架实现的,而 MapReduce 本身就是为实现针对海量数据的高性能处理而设计的。所以 Hive 天然就能高效的处理海量数据。与此同时,Hive 针对 HiveQL 到 MapReduce的翻译进行了大量的优化,从而保证了生成的MapReduce 任务是高效的。在实际应用中,Hiv...原创 2019-07-20 10:10:45 · 6194 阅读 · 1 评论 -
Hive的Join操作、Hive解决数据倾斜问题、Hive优化、Hive的分桶表、JDBC、体系结构、工程流程
Hive的Join操作order表数据:1 20180710 P001 202 20180710 P002 143 20180710 P001 354 20180710 P002 405 20180710 P001 106 20180710 P003 207 20180710 P004 12product表数据:P001 xiaomi 2999P002 huawei 3999...原创 2019-07-20 10:09:38 · 532 阅读 · 1 评论 -
Hbase学习笔记
一、HBASE概述官方网址:http://hbase.apache.org/HBase是一个分布式的、面向列的开源数据库,该技术来源于Fay Chang 所撰写的Google论文《Bigtable》一个结构化数据的分布式存储系统"。就像Bigtable利用了Google文件系统(File System)所提供的分布式数据存储一样,HBase在Hadoop之上提供了类似于Bigtable的能力...原创 2019-07-20 09:54:24 · 448 阅读 · 1 评论 -
HDFS介绍
HDFSHDFS的特点HDFS概述HDFS为了保证数据存储的可靠性和读取性能,对数据进行切块后进行复制并存储在集群的多个节点中。HDFS中存在一个名字节点NameNode和多个数据节点DataNode。NameNode的作用存储元数据信息元数据保存在内存/磁盘中保存文件、block、datanode之间的映射关系DataNode的作用存储block内容存储在磁盘中维护...原创 2019-07-20 09:50:21 · 226 阅读 · 0 评论 -
MapReduce基础知识
MapReduce一、MapReduce概述思考 求和:1+3+5+8+2+7+3+4+9+…MapReduce分布式计算框架 MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. MR由两个阶段组成:Map和Reduce,用户只需要实现map()和reduce()两个函数,即可实现分布式计算,非常简单。 这两个函数的形参是k...原创 2019-07-20 09:44:57 · 570 阅读 · 1 评论 -
Hadoop概述与安装
Hadoop概述Hadoop是基于Google的集群系统理论由Apache来进行的开源实现:Google的集群系统:GFS、MapReduce、BigTableHadoop的集群系统:HDFS、MapReduce、HBaseHadoop设计的初衷是为了解决Nutch的海量数据存储和处理的需求,可以解决大数据场景下的数据存储和处理的问题。一开始HDFS和MapReduce是作为Nutch的两...原创 2019-07-20 09:41:30 · 114 阅读 · 0 评论 -
NIO常见框架比较
一.通信框架流行基于Java NIO通信框架有Mina、Netty、Grizzly等。接下来说下它们之间的对比。二.它们的出身Mina出身于开源界的大牛Apache组织;Netty出身于商业开源大亨Jboss;Grizzly则出身于土鳖Sun公司。三.它们的设计理念1、MinaMina(Multipurpose Infrastructure for Network Appl...原创 2019-07-20 10:59:24 · 808 阅读 · 1 评论 -
Python学习笔记
Python概述1.Python概述Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。Python为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。...原创 2019-07-20 11:39:10 · 547 阅读 · 1 评论 -
Zookeeper集群指令
Zookeeper集群指令nc安装使用上传nc安装包执行:rpm -ivh nc-1.84-24.el6.x86_64.rpmnc :netcat 是一个小型的网络通信工具,可以发起TCP请求Zookeeper集群命令可以通过Linux nc 工具来查看Zookeeper集群服务状态(掌握3个即可)执行:echo stat|nc 127.0.0.1 2181查看哪个...原创 2019-07-20 12:23:36 · 146 阅读 · 0 评论 -
红黑树
概述红黑树(Red Black Tree) 是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,它是在1972 年由RudolfBayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J.Guibas和Robert Sedgewick 修改为如今的"红黑树"。红黑树在进行插入和删除操作时通过特定操作保持二叉查找...原创 2019-07-20 12:16:46 · 275 阅读 · 1 评论 -
贝叶斯定理
贝叶斯介绍英国数学家,贝叶斯在数学方面主要研究概率论.对于统计决策函数、统计推断、统计的估算等做出了贡献。他对统计推理的主要贡献是使用了"逆概率"这个概念,并把它作为一种普遍的推理方法提出来。贝叶斯定理原本是概率论中的一个定理,这一定理可用一个数学公式来表达,这个公式就是著名的贝叶斯公式。贝叶斯定理公式:求得是后验概率等式右侧为先验概率案例说明一:假设:H代表胃癌事件,X代表胃疼事...原创 2019-07-20 12:00:13 · 877 阅读 · 0 评论 -
Zookeeper基础知识
Zookeeper是Apache开发的开源组件。是Hadoop的子间件之一,但是不只是支持Hadoop,支持常见的大部分的分布式框架。分布式存在的问题需要设置管理节点如果管理节点只有一个,那么就存在单点问题:即这台服务器一旦宕机,那么入口被封闭。为了解决单点问题,引入管理集群,就会产生多个管理者的情况需要在管理集群中选出一个leader确定一套选举机制管理节点之间实现信息的共享...原创 2019-07-20 11:55:19 · 154 阅读 · 1 评论 -
高并发基础
高并发基础Concurrent包是Java中一套用于进行高并发编程的包 — JDK1.5BlockingQueue - 阻塞式队列队列:FIFO(先进先出)往往需要进行界限的限定ArrayBlockingQueue - 阻塞式顺序表 - 基于数组来实现,在使用的时候也需要指定容量,而且容量指定好之后不可改变。LinkedBlockingQueue - 阻塞式链表 - 基于节点来进行说...原创 2019-07-20 11:53:52 · 177 阅读 · 0 评论 -
Zookeeper配置详解
Zookeeper配置详解参数名说明clientPort客户端连接server的端口,即对外服务端口,一般设置为2181。dataDir存储快照文件snapshot的目录。默认情况下,事务日志也会存储在这里。 follower和Leader服务节点都会有自己的事务日志。ZooKeeper会在特定条件下会触发一次快照(snapshot),将当前服务节点的状态以快照文件...原创 2019-07-20 11:52:14 · 484 阅读 · 1 评论 -
Zookeeper的事务和观察者
Zookeeper的事务log事务日志指zookeeper系统在正常运行过程中,针对所有的事务操作,在返回客户端“事务成功”的响应前,zookeeper会保证已经将本次更新操作的事务日志已经写到磁盘上。zookeeper的事务日志为二进制文件,不能通过vim等工具直接访问。其实可以通过zookeeper自带的jar包读取事务日志文件。查看事务log执行java -classpath .:...原创 2019-07-20 11:47:34 · 198 阅读 · 0 评论 -
ZAB协议
ZAB协议概述ZAB(Zookeeper Atomic Broadcast)协议是为分布式协调服务ZooKeeper专门设计的一种支持崩溃恢复的原子广播协议,它是一种特别为ZooKeeper设计的崩溃可恢复的原子消息广播算法。这个算法是一种类2PC算法,在2PC基础上做的改进。协议介绍ZAB协议包括两种基本的模式,分别是:消息原子广播(保证数据一致性)崩溃恢复(解决2pc算法的单点问...原创 2019-07-20 11:46:33 · 217 阅读 · 0 评论 -
Zookeeper集群指令
Zookeeper集群指令nc安装使用上传nc安装包执行:rpm -ivh nc-1.84-24.el6.x86_64.rpmnc :netcat 是一个小型的网络通信工具,可以发起TCP请求Zookeeper集群命令可以通过Linux nc 工具来查看Zookeeper集群服务状态(掌握3个即可)执行:echo stat|nc 127.0.0.1 2181查看哪个...原创 2019-07-26 20:21:21 · 298 阅读 · 0 评论