开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

Hadoop完全分布式配置

Hadoop完全分布式配置 一、介绍     Hadoop2.0中,2个NameNode的数据其实是实时共享的。新HDFS采用了一种共享机制,Quorum Journal Node(JournalNode)集群或者Nnetwork File System(NFS)进行共享。NFS是操作系统层面的,JournalNode是hadoop层面的,我们这里使用JournalNode集群进行数据共享(这也是主流的做法)。如下图所示,便是JournalNode的架构图。     两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。     对于HA集群而言,确保同一时刻只有一个NameNode处于active状态是至关重要的。否则,两个NameNode的数据状态就会产生分歧,可能丢失数据,或者产生错误的结果。为了保证这点,这就需要利用使用ZooKeeper了。首先HDFS集群中的两个NameNode都在ZooKeeper中注册,当active状态的NameNode出故障时,ZooKeeper能检测到这种情况,它就会自动把standby状态的Nam...
星汉 发布于 4小时前 阅读 32

ElasticSearch5.4.3离线搭建

  1、ElasticSearch简介 ElasticSearch 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch 是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch 来解决所有这些问题以及可能出现的更多其它问题。 2、部署准备 2.1、环境准备 elasticsearch-5.4.3.tar.gz jdk-8u161-linux-x64.tar.gz 可用的yum源 可联网的Linux环境一台(不安装插件则不需要) 2.2、节点配置信息 IP地址 主机名 192.168.23.1 risen01 192.168.23.2 risen02 192.168.23.3 risen03   2.3、节点资源配置信息 IP地址 角色 192....
ByCoder 发布于 3天前 阅读 289 评论 1 点赞 2

Spark2.2.0 分布式离线搭建

1、Spark简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。 Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。 尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, a...
ByCoder 发布于 3天前 阅读 249 评论 2

ElasticSearch笔记系列(8)——简单查询、条件查询、聚合查询

ES的查询方式可以分为三类: 简单查询 条件查询 聚合查询   数据准备 我们先按照前几篇介绍的插入文档的方法准备一些实验数据,然后再来演示如何实现各类查询。 我们在我们之前创建的rent索引的community类型下面加入如下文档信息。 回忆一下:当时创建的索引及类型如下: { "settings":{ "number_of_shards":3, "number_of_replicas":1 }, "mappings":{ "community":{ "properties":{ "communityname":{ "type":"text" }, "city":{ "type":"keyword" }, "age":{ "type":"integer" }, "creationdate":{ "type":"date", "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } }, "shop":{ } } } 回过头来,我们现在插入一些文档进去。插入的ES的API:http://localhost:9200/rent/community/ 所有文档的插入请求体如下:你可以把这些数据插入到你的ES中,然后try后续的各种查询。 { "communityname":"万科阳光苑", "city":"上海", "age":10, "creationdate":"2008-01-01 00:00:00" } { "communityname":"万科朗润园", "city":"上海", "age":12, "creationdate":"2006...
HappyBKs 发布于 7天前 阅读 261

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

在浏览器中进行深度学习:TensorFlow.js (三)更多的基本模型

在上一次的博客中,我们介绍了如果实现一个最简单的线性回归的模型,今天我们来看一下,如何利用同样的思路实现更多的模型。 逻辑回归 逻辑回归并非只能实现二分类,我们下面就看一个利用逻辑回归(Multinomial logistic regression)实现多分类的例子。 这个是训练数据: 这个是分类的结果。我们可以看到对某些点,蓝色和橙色,分类效果比较好;而对于绿色和红色的点,分类的结果不是很理想。 代码在这里: function logistic_regression(train_data, train_label) { const numIterations = 100; const learningRate = 0.1; const optimizer = tf.train.adam(learningRate); //Caculate how many category do we have const number_of_labels = Array.from(new Set(train_label)).length; const number_of_data = train_label.length; const w = tf.variable(tf.zeros([2,number_of_labels])); const b = tf.variable(tf.zeros([number_of_labels])); const train_x = tf.tensor2d(train_data); const train_y = tf.tensor1d(train_label); function predict(x) { return tf.softmax(tf.add(tf.matMul(x, w),b)); } function lo...
naughty 发布于 1周前 阅读 270

Docker容器可视化监控中心搭建

一个宿主机上可以运行多个容器化应用,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等等一系列信息,而且这些信息随时间变化,我们称其为时序数据
hansonwang 发布于 1周前 阅读 3245 评论 7 点赞 4

Apache Ignite事务架构:Ignite持久化的事务处理

在本系列[上一篇文章](https://my.oschina.net/liyuj/blog/1791800)中,介绍了故障和恢复,下面是本系列剩下的文章将要讨论的主题: - Ignite持久化的事务处理(WAL、检查点及其他) - 第三方持久化的事务处理 在本文中,会聚焦于Ignite持久化的事务处理。 将[Apache Ignite](https://ignite.apache.org/)作为内存数据网格(IMDG)的都知道,如果整个集群瘫痪,仅仅将数据保存在内存中问题是很严重的,其他的IMDG以及缓存技术也会面临同样的问题。解决这个问题的方案之一就是,将Ignite与第三方的持久化存储集成,然后提供通读和通写能力,如图1所示: ![图1:使用第三方存储进行持久化](https://www.gridgain.com/sites/default/files/inline-images/Figure1_10.png) 但是,这个方法有一些缺陷,在本系列的下一篇文章中会说明。 作为第三方持久化的替代方案,Ignite开发了一个固化内存架构,如图2所示,该架构可以同时在内存和磁盘上进行数据和索引的存储和处理,该特性使用非常简单,使得Ignite集群在数据落盘的前提下,获得内存级的性能: ![图2:固化内存](https://www.gridgain.com/sites/default/files/inline-images/Figure2_9.png) 固化内存的工作方式类似于现代操...
李玉珏 发布于 2周前 阅读 981 点赞 3

在浏览器中进行深度学习:TensorFlow.js (二)第一个模型,线性回归

笔者在上一篇文章中介绍了TensorFlow.js中的基本概念,以及机器学习的数学基础,线性代数的基本知识。在这一遍文章里,我们来看一看如何利用TensorFlow.js来构建数学模型,以及进行学习的基本过程。 学习的过程基本如下: 准备训练数据 构建一个模型 利用训练数据和模型,进行迭代的学习 模型训练完毕,用这个模型对新的数据进行预测(这里我们先略过对模型的验证部分) 好了,我们以最简单的线性回归为例子,看看这个过程。 准备数据 如上图所示,我在二维坐标系中生成了7个点,让它们在我假想的某条直线附近。我以这几个点作为我的训练数据。 训练数据的初始化代码如下,这里tx是所有点数据的x坐标,ty是所有点数据的坐标。 const train_x = tf.tensor1d(tx); const train_y = tf.tensor1d(ty); 模型选择 所有的模型都是错的,有的模型更好。 所谓的模型,也就是一个函数f,对应于某个输入数据,计算出某些输出数据。模型可以复杂,可以简单。简单的模型不一定不好,负责的模型也不一定好。 我们用线性模型举例,数学上就是假定 Y = wX + b 在这个模型中,有两个参数需要确定,w和b。 模型既然是个函数,那么它的代码也就很容易理解了: const f = x => w.mul(x).add(b)...
naughty 发布于 2周前 阅读 269

Apache Ignite事务架构:故障和恢复

在本系列的[上一篇文章](https://my.oschina.net/liyuj/blog/1627248)中,探讨了并发模型和隔离级别,下面是本系列剩下的文章将要讨论的主题: - 故障和恢复 - Ignite持久化层的事务处理(WAL、检查点及其他) - 第三方持久化层的事务处理 在本文中,会聚焦于事务执行过程中的故障和恢复。 一个分布式的集群由事务协调器、主节点和备份节点组成,部分或者全部节点故障是很有可能的,按照严重程度递增的顺序,如下所示: - 备份节点故障; - 主节点故障; - 事务协调器故障; 下面会挨个分析这些场景,讲解Ignite如何管理这些故障,先从备份节点故障开始。 ## 备份节点故障 回顾一下本系列[第一篇文章](https://my.oschina.net/liyuj/blog/1626309)的内容,知道了在二阶段提交协议中,有准备和提交阶段。不管是那个阶段如果备份节点故障,对Ignite都不会产生影响,因为事务会继续在集群中剩余的主备节点上执行,如图1所示: ![图1:备份节点故障](https://www.gridgain.com/sites/default/files/inline-images/Figure1_9.png) 在所有的活动事务(包括这一个)结束之后,Ignite会因为节点故障而更新网络拓扑版本,然后选择一个或者多个节点来持有之前故障节点持有的数据,Ign...
李玉珏 发布于 3周前 阅读 222 评论 4

分布式存储初探

# 分布式存储初探 --- ## 缘起 最近公司内部在做dmp服务,目前的方案都是搭建不同的redis集群,将数据灌到redis集群中系统查询服务供线上使用。但是随着数据量的增大以及数据源的多样性,再加上线上服务需要多机房的支持,后续继续使用redis集群必然导致成本过高。 当然也考虑过使用hbase来支持线上服务,但是线上服务对请求相应要求高,而hbase有延迟高的风险,所以有了本次对分布式kv数据库的一些调研性工作。 ## 为什么需要分布式数据库 在使用分布式数据库之前,我们一般使用mysql来支持一般的线上业务,即使在单机存储有限的情况下,我们也可以使用sharding的方式分库分表来支撑数据量大的情况,但是sharding又有其自身各种各样的弊端,例如其跨节点join的复杂性和网络传输问题。所以由于单机的数据存储有限,无法满足我们对数据的存储和查询,于是分布式存储应运而生。 ## 分布式数据库需要解决哪些基本问题 1. 数据如何存储 2. 数据如何查询,如何索引 3. 如何保证HA 4. 如何保证一致性 下面将分别对如上4个问题介绍现在业界内的比较成熟的开源产品是如何解决的。 ## 数据的存储和查询 任何持久化存储,最后都要落到磁盘上。而且根据数据的实际应用,数据的存储和数...
纳兰清风 发布于 3周前 阅读 371 评论 2 点赞 2

Apache Cassandra和Apache Ignite:对比测试,强大的内存计算

一个被频繁提出的问题就是,Apache Cassandra和Apache Ignite之间的区别是什么,这很正常,因为这两个数据库有很多的共同之处,比如水平扩展性、高可用和持久化。在本系列的前四篇文章中,已经介绍了了架构以及从开发角度上的主要区别: - [Apache Cassandra和Apache Ignite: 架构简化思考](https://my.oschina.net/liyuj/blog/1607711) - [Apache Cassandra和Apache Ignite:关系并置和分布式SQL](https://my.oschina.net/liyuj/blog/1615008) - [Apache Cassandra和Apache Ignite:强一致和事务](https://my.oschina.net/liyuj/blog/1787998) - [Apache Cassandra和Apache Ignite:通过Ignite增强Apache Cassandra](https://my.oschina.net/liyuj/blog/1788798) 在对比Ignite和Cassandra时,还有一个无法回避的问题,现在也需要揭晓答案,问题很简单,就是两者的性能差异如何?从哪里可以得到性能测试结果? 自从Ignite完整支持内存存储之后,两者之间的测试就变得不再对等,因为Ignite可以在内存中持有TB甚至PB级的数据,而Cassandra的内存选项非常有限。但是,不管怎样,测试一下性能指标然后分享出来,还是有价值的。 ## 环境和配置 下面快速浏览一下测试环境以及Ign...
李玉珏 发布于 3周前 阅读 244

在浏览器中进行深度学习:TensorFlow.js (一)基本概念

作为deeplearn.js的继任者,tensoflow.js 支持在浏览器或者nodejs中利用JavaScript来运行深度学习。并且能够支持GPU和现有的Tensorflow的模型。该项目的首页上有几个很酷炫的演示。作为热爱机器学习和前端数据可视化的我怎能不心动呢。快来和我一起来看看如何利用tensorflow.js来进行深度学习之旅吧。 线性代数(Linear algebra)是深度学习的数学基础。张量(Tensor)是线性代数的基本数学概念和运算单元。我们来了解一下tensorflow.js中有关张量的基本概念和运算。 张量的概念 标量 Scalar 标量就是一个简单的数字,概念就是只有大小,没有方向。 const scalar = tf.scalar(5); print_tensor([scalar]); 注意:print_tensor()是我实现的一个JS方法,在浏览器中以表格的形式显示张量的内容,最高两个维度。输入是一个张量的数组。如果不想在浏览器中看到结果,也可以调用tensor.print()方法,在console中查看张量的内容。 以上的代码,创建了一个数值为5,维度(Rank)0 的标量。 向量/矢量 Vector 向量就是一个一维数组,概念就是有大小和方向。 const vector = tf.tensor1d([0, 1, 2, 3, 4]); print_tensor([vector]); 以上的代码,创建了一个数值为[0,1,2,3,4],维度...
naughty 发布于 3周前 阅读 503 点赞 3

利用ELK搭建Docker容器化应用日志中心

应用一旦容器化以后,需要考虑的就是如何采集位于Docker容器中的应用程序的打印日志供运维分析。本文即将阐述如何利用ELK日志中心来收集容器化应用程序所产生的日志,并且可以用可视化的方式对日志进行查询与分析
hansonwang 发布于 3周前 阅读 357 点赞 1

Apache Cassandra和Apache Ignite:通过Ignite增强Apache Cassandra

[Apache Cassandra](http://cassandra.apache.org/)是开源分布式NoSQL磁盘数据库的领导者之一,作为关键的基础设施,已经部署在诸如Netflix、eBay、Expedia等很多公司中,它因为速度、可线性扩展至上千个节点、一流的数据中心复制而广受欢迎。 [Apache Ignite](https://ignite.apache.org/)是一个以内存为中心的分布式数据库、缓存和处理平台,可以针对PB级的数据,以内存级的速度处理事务、分析和流式负载,支持JCache、SQL99、ACID事务以及机器学习。 Apache Cassandra在它的领域,是一个经典的解决方案,和任何特定领域解决方案一样,它的优势是建立在一些妥协之上的,一个典型的因素就是受到磁盘存储的限制,Cassandra已经做了尽可能多的优化来解决这些问题。 举个权衡的例子:缺乏ACID和SQL支持之后,就无法随意进行事务和分析,如果数据事先没有进行很好的适配,这些妥协因素,就会对用户造成逻辑上的困扰,导致产品的不正确使用,甚至负体验,或者导致数据在不同类型的存储之间共享,基础设施碎片化以及应用的数据逻辑复杂化。 但是,作为Cassandra的用户,是否可以将其与Apache Ignite一起使用呢?作为前提,目的是维护既有的Cassandra系统然后解决它的局限性,答案...
李玉珏 发布于 4周前 阅读 60 点赞 1

Apache Cassandra和Apache Ignite:强一致和事务

NoSQL数据库,比如Apache Cassandra,是最终一致性系统的典型案例,这种系统的机制比较简单:如果应用在一台主机上触发了数据的变更,那么在某个时间点更新会被传播到所有的副本,换言之,最终一致。 在变更完全同步之前,系统作为一个整体会处于一个不一致的状态。如果从一个未同步的副本中读取变更的数据,更甚者,同时更新数据,谁知道会发生什么呢? NoSQL的厂商和用户接受了这个机制和行为,因为最终一致给分布式系统带来了高可扩展和高性能,这是*事实*,如果需要强一致和事务,那么就得考虑传统RDBMS了,但是现在不是这样了! 在前面的[文章](https://my.oschina.net/liyuj/blog/1615008)中,提到即使在分布式数据库中,SQL也可以高效地执行。比如Apache Ignite,不仅仅可以执行简单的SQL操作,还可以容易地对存储于不同主机的数据进行关联,这在十年前是不可能的,但是目前已经成为现代分布式数据库的标配。 再次回到一致性和事务的话题,Ignite可以混合匹配NoSQL的水平扩展和高性能以及RDBMS领域的功能,下面会以Apache Cassandra作为NoSQL数据库的代表,与Ignite作为现代分布式数据库的代表进行比较。 ## 可调一致性和轻量级事务 Cassandra关注于高数据一致性和事...
李玉珏 发布于 4周前 阅读 46

Spark源码阅读——任务提交过程

# Spark 源码阅读——任务提交过程 --- 当我们在使用spark编写mr作业是,最后都要涉及到调用reduce,foreach或者是count这类action来触发作业的提交,所以,当我们查看这些方法的源码时,发现底层都调用了SparkContext的runJob方法,而SparkContext的runJob方法又调用的DAGScheduler的runJob方法: ``` def runJob[T, U: ClassTag]( rdd: RDD[T], func: (TaskContext, Iterator[T]) => U, partitions: Seq[Int], resultHandler: (Int, U) => Unit): Unit = { if (stopped.get()) { throw new IllegalStateException("SparkContext has been shutdown") } val callSite = getCallSite val cleanedFunc = clean(func) logInfo("Starting job: " + callSite.shortForm) if (conf.getBoolean("spark.logLineage", false)) { logInfo("RDD's recursive dependencies:\n" + rdd.toDebugString) } dagScheduler.runJob(rdd, cleanedFunc, partitions, callSite, esultHandler, localProperties.get) progressBar.foreach(_.finishAll()) rdd.doCheckpoint() } ``` 这里以rdd和分区信息和对结果集处理的回调函数为参数进入到: ``` def runJob[T, U]( rdd: RDD[T], func: (TaskCont...
纳兰清风 发布于 1个月前 阅读 217

YARN

## 1. **什么是YARN** >Yet Another **Resource Negotiator**(另一种**资源**协调者),是一种新的Hadoop**资源**管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源**管理和调度**。 ## 2. YARN架构 1. **ResurceManager(RM)**:一个纯粹的调度器,专门负责集群中可用资源的分配和管理。 2. **Container** :分配给具体应用的资源抽象表现形式,包括内存、cpu、disk 3. **NodeManager(NM)** :负责节点本地资源的管理,包括启动应用程序的Container,监控它们的资源使用情况,并报告给RM 4. **App Master (ApplicationMaster(AM))**:特定框架库的一个实例,负责有RM协商资源,并和NM协调工作来执行和监控Container以及它们的资源消耗。AM也是以一个的Container身份运行。 5. **客户端(Client)**:是集群中一个能向RM提交应用的实例,并且指定了执行应用所需要的AM类型 ![YARN架构](https://static.oschina.net/uploads/img/201803/27222620_fCiH.png "YARN架构") ![MR Client和Drill Client](https://static.oschina.net/uploads/img/201803/27222734_Vw14.png "MR Client和Drill Client") ## 3. 如何编写YARN应用程序 1. Client + **初始化并启动一个Yar...
xjy4j 发布于 1个月前 阅读 119

深入解读:获Forrester大数据能力高评价的阿里云DataWorks思路与能力

摘要: Forrester发布了Now Tech: Cloud Data Warehouse Q1 2018报告,报告对云化数据仓库(Cloud Data Warehouse, CDW)的主要功能、区域表现、细分市场和典型客户等进行了全面评估。 1.前言 本文基于Now Tech: Cloud Data Warehouse, Q1 2018 (Published: by Noel Yuhanna, March 13, 2018)进行了分析,文中内容仅代表个人观点。 2018年3月13日Forrester发布了Now Tech: Cloud Data Warehouse Q1 2018报告。报告对云化数据仓库(Cloud Data Warehouse, CDW)的主要功能、区域表现、细分市场和典型客户等进行了全面评估,最终AWS、阿里云、Google、微软四大巨头杀入全球一线阵营。阿里云DataWorks+MaxCompute成为唯一入选的中国产品。 报告中,Forrester强调了CDW的四方面核心能力: ·灵活部署。CDW应具有多种灵活的部署模式。针对小型客户,CDW应可提供在线多租户的模式,使客户有能力快速调集计算资源,在数分钟内完成数据仓库的部署。针对大中型客户,CDW应提供独占式或本地部署的模式,提供强大的计算性能和绝对的安全保障,同时屏蔽复杂的技术细节; ·高效数据上云。对于未将数据仓库云化的客户,或者采用线上-线下混合架构的客户,CDW应提供快速、低成本的方式,...
阿里云官方博客 发布于 1个月前 阅读 225

大数据Hadoop的HA高可用架构集群部署

1 概述 在Hadoop 2.0.0之前,一个Hadoop集群只有一个NameNode,那么NameNode就会存在单点故障的问题,幸运的是Hadoop 2.0.0之后解决了这个问题,即支持NameNode的HA高可用,NameNode的高可用是通过集群中冗余两个NameNode,并且这两个NameNode分别部署到不同的服务器中,其中一个NameNode处于Active状态,另外一个处于Standby状态,如果主NameNode出现故障,那么集群会立即切换到另外一个NameNode来保证整个集群的正常运行,那么接下来本文将重要介绍该如何搭建Hadoop的HA集群。 该环境是在上篇:https://my.oschina.net/feinik/blog/1621000 大数据平台Hadoop的分布式集群环境搭建 的基础上完成的 2 集群HA部署节点列表 注:Hadoop版本: Hadoop 2.7.5 NN(NameNode 名称节点)、DN(DataNode 数据节点)、ZK(Zookeeper)、ZKFC(ZKFailoverController)、JN(JournalNode 元数据共享节点)、RM(ResourceManager 资源管理器)、DM(DataManager 数据节点管理器) 3 安装Zookeeper集群 (1) 首先在slave1中安装     a)下载zookeeper-3.4.9.tar.gz包     b)解压:tar -zxvf zookeeper-3.4.9.tar.gz     c)cd zookeeper-3.4.9/conf     d)cp zoo_sa...
FEINIK 发布于 1个月前 阅读 374

Spark Streaming高级特性在NDCG计算实践

从storm到spark streaming,再到flink,流式计算得到长足发展, 依托于spark平台的spark streaming走出了一条自己的路,其借鉴了spark批处理架构,通过批处理方式实现了实时处理框架。为进一步了解spark streaming的相关内容,飞马网于3月20日晚邀请到历任百度大数据的高级工程师—王富平,在线上直播中,王老师针对spark streaming高级特性以及ndcg计算实践进行了分享。   以下是本次直播的主要内容: 一.Spark Streaming简介   1.spark是什么? spark就是一个批处理框架,它具有高性能、生态丰富的优势。   在没有spark之前,我们是怎么做大数据分析的呢?其实在没有spark之前,我们用的是基于Hadoop的MapReduce框架来做数据分析。时至今日,传统的MapReduce任务并没有完全退出市场,在一些数据量非常大的场景下,MapReduce表现地还是相当稳定的。   2.spark streaming是什么? spark streaming是按时间对数据进行分批处理的框架,.spark平台带来的优势,使得spark streaming开发简单、广泛使用。   spark streaming的实现方式是基于spark的批处理理念,因此它可以直接使用spark平台提供的工具组件。     通过上面这张图,我们可以把spark streaming的输入当成一个...
蓝色de叶子 发布于 1个月前 阅读 199

Hadoop完全分布式配置

Hadoop完全分布式配置 一、介绍     Hadoop2.0中,2个NameNode的数据其实是实时共享的。新HDFS采用了一种共享机制,Quorum Journal Node(JournalNode)集群或者Nnetwork File System(NFS)进行共享。NFS是操作系统层面的,JournalNode是hadoop层面的,我们这里使用JournalNode集群进行数据共享(这也是主流的做法)。如下图所示,便是JournalNode的架构图。     两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。     对于HA集群而言,确保同一时刻只有一个NameNode处于active状态是至关重要的。否则,两个NameNode的数据状态就会产生分歧,可能丢失数据,或者产生错误的结果。为了保证这点,这就需要利用使用ZooKeeper了。首先HDFS集群中的两个NameNode都在ZooKeeper中注册,当active状态的NameNode出故障时,ZooKeeper能检测到这种情况,它就会自动把standby状态的Nam...
星汉 发布于 4小时前 阅读 32

NAT网关之SNAT进阶使用(二)构建ECS级别SNAT出网方式

摘要: NAT网关是云上VPC ECS访问Internet的出入口。阿里云NAT网关控制台创建SNAT条目默认只支持交换机粒度。如何设置ECS粒度的SNAT规则呢,本文将为您揭晓。 背景 NAT网关是云上VPC ECS访问Internet的出入口。阿里云NAT网关控制台创建SNAT条目默认只支持交换机粒度。也就是说,创建了SNAT条目后,指定交换机后挂的全部VPC ECS都只能使用同一条SNAT规则主动访问互联网。 但是问题来了,如果业务忽然发生调整,需要不在同一个交换机后的若干台VPC ECS使用同一个公网IP或公网IP池访问互联网,同时又不希望影响其他服务。下面2张图给出了这种业务场景变化的示意图。 该如何处理呢?很简单,阿里云NAT网关API提供的SNAT SourceCIDR/32功能可以简单而又完美的搞定这种场景。 SNAT SourceCIDR /32 API接口 接口介绍 调用阿里云NAT网关API接口:CreateSnatEntry。下图给出了CreatSnatEntry的请求参数。 在使用SNAT SourceCIDR/32来创建ECS粒度的SNAT条目时,请求参数SourceCIDR为必须项,SourceCIDR的网段填写VPC ECS的网段,如xx.xx.xx.xx/32。此时一定不要指定请求参数SourceVSwitchId。 说明:通过SourceCIDR设置ECS粒度的SNAT规则默认不开放,使用前请先通过工单进行申请。 ...
阿里云云栖社区 发布于 1个月前 阅读 9

ES Java API_对汽车品牌进行多种条件的组合搜索

es
jxlgzwh 发布于 2个月前 阅读 35

AI领袖、应用指南、窥见风口……你还能从这场全球峰会中获得更多

时代的潮流浩浩荡荡,上升到国家发展战略与基础设施的人工智能,正以不可思议的速度占据着我们生活的头条。如果说2017年宣告了人工智能接棒时代脉搏,那么2018年的人工智能将作为颠覆性变革力量迭代世界机器的运作。
GAITC

遍历HDFS目录,并输出文件大小

``` package com.whh.bigdata.test; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileStatus; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.FileUtil; import org.apache.hadoop.fs.Path; import java.io.*; import java.net.URI; import java.net.URISyntaxException; /** * Created by whh on 2018/2/7. */ public class HdfsFile { /** * 往local文件里写数据 */ public static void appendToFile(String sDestFile, String sContent) { // String sContent = "I love Ysm"; // String sDestFile = "F:/work/logParse/autoCreateHql/myWrite.txt"; File destFile = new File(sDestFile); BufferedWriter out = null; if (!destFile.exists()) { try { destFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } try { out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(sDestFile, true))); out.write(sContent); out.newLine(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException e) { e....
_小茗同学_ 发布于 3个月前 阅读 42

Zookeeper集群的搭建

一、集群模式 1、单机模式     在zoo.cfg中只配置一个server.id就是单机模式了。     这种模式下,如果当前主机宕机,那么所有依赖于当前zookeeper服务工作的其他服务器都不能在进行正常工作,这种事件称为单机节点故障。所以这种模式一般用在测试环境。 2、伪分布式     在zoo.cfg中配置多个server.id,其中ip都是当前机器,而端口各不相同,启动时就是伪集群模式了。     这种模式和单机模式产生的问题是一样的。这种模式也是用在测试环境中。 3、完全分布式     多台机器各自配置zoo.cfg文件,将各自互相加入服务器列表,上面搭建的集群就是这种完全分布式。     这种模式是真实生产环境中使用的zookeeper集群模式。 二、zookeeper集群的搭建     搭建zookeeper集群需要最少三台机器,需要安装jdk最为基础支持。 1、准备虚拟机     准备三台虚拟机,将ip和端口规划好。 2、安装jdk     在虚拟机中安装jdk,并且配置jdk的环境变量。 3、搭建集群 1.下载安装包     下载zookeeper的安装包,下载地址:http://zookeeper.apache.org/     上传到linux集群环境下,规划自己的管理目录,解压安装包。 tar -zxvf zookeeper-3.4....
星汉 发布于 4小时前 阅读 4

Zookeeper原理介绍

ZooKeeper 一、概述     Zookeeper是一个工具,可以实现集群中的分布式协调服务。     所谓的分布式协调服务,就是在集群的节点中进行可靠的消息传递,来协调集群的工作。     Zookeeper之所以能够实现分布式协调服务,靠的就是它能够保证分布式数据一致性。     所谓的分布式数据一致性,指的就是可以在集群中保证数据传递的一致。     Zookeeper能够提供的分布式协调服务包括:数据发布订阅、负载均衡、命名服务、分布式协调/通知、集群管理、分布式锁、分布式队列等功能 1、Zookeeper的特点     Zookeeper工作在集群中,对集群提供分布式协调服务,它提供的分布式协调服务具有如下的特点: 1.顺序一致性     从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到zookeeper中 2.原子性     所有事物请求的处理结果在整个集群中所有机器上的应用情况是一致的,即,要么整个集群中所有机器都成功应用了某一事务,要么都没有应用,一定不会出现集群中部分机器应用了改事务,另外一部分没有应用的情况。 3.单一视图     无论客户端连接的是哪个zookeeper服务器,其看到的服务端数据模型都是一致的。 4.可靠性     ...
星汉 发布于 4小时前 阅读 3

利用ELK搭建Docker容器化应用日志中心

应用一旦容器化以后,需要考虑的就是如何采集位于Docker容器中的应用程序的打印日志供运维分析。本文即将阐述如何利用ELK日志中心来收集容器化应用程序所产生的日志,并且可以用可视化的方式对日志进行查询与分析
hansonwang 发布于 3周前 阅读 357 点赞 1

hbase region空洞问题修复

##### 1 异常信息 ``` org.apache.hadoop.hbase.exceptions.FailedSanityCheckException: Requested row out of range for doMiniBatchMutation on HRegion CM_WARE_22,82228221001000100000007175328,1501813702755.c9c1b2ef162c0075420b9ee2df1a3091., startKey='82228221001000100000007175328', getEndKey()='82229221000000000000002251629', row='82229221001000000000001862129' at org.apache.hadoop.hbase.regionserver.RSRpcServices.doBatchOp(RSRpcServices.java:688) at org.apache.hadoop.hbase.regionserver.RSRpcServices.doNonAtomicRegionMutation(RSRpcServices.java:639) at org.apache.hadoop.hbase.regionserver.RSRpcServices.multi(RSRpcServices.java:1931) at org.apache.hadoop.hbase.protobuf.generated.ClientProtos$ClientService$2.callBlockingMethod(ClientProtos.java:32213) at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2034) at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:107) at org.apache.hadoop.hbase.ipc.RpcExecutor.consumerLoop(RpcExecutor.java:130) at org.apache.hadoop.hbase.ipc...
淺陌离殇 发布于 2个月前 阅读 62

[转]python中去掉字符串中的\xa0、\t、\n

为了解决从网页上抓取的数据当作字符串时,最前面有莫名其妙的字符,影响数据的到处,这篇文章讲述了这个奇怪的字符是啥,以及如何取出。 还是很有用的。
爱罗 发布于 2个月前 阅读 57

Filebeat 配置文件中文对照

 Filebeat 配置文件中文对照 ###################### Filebeat Configuration Example ######################### # This file is an example configuration file highlighting only the most common # options. The filebeat.reference.yml file from the same directory contains all the # supported options with more comments. You can use it as a reference. # # You can find the full configuration reference here: # https://www.elastic.co/guide/en/beats/filebeat/index.html # For more available modules and options, please see the filebeat.reference.yml sample # configuration file. #=========================== Filebeat prospectors ============================= filebeat.prospectors: # Each - is a prospector. Most options can be set at the prospector level, so # you can use different prospectors for various configurations. # Below are the prospector specific configurations. - type: log # 更改为 true 以启用此配置。 enabled: false # Paths that should be crawled and fetched. Glob based paths. ...
诺岚 发布于 3个月前 阅读 63

基于storm的实时数据处理方案

1 文档说明 该文档描述的是以storm为主体的实时处理架构,该架构包括了数据收集部分,实时处理部分,及数据落地部分。 关于不同部分的技术选型与业务需求及个人对相关技术的熟悉度有关,会一一进行分析。 该架构是本人所掌握的一种架构,可能会与其他架构有相似的部分,个人会一一解释对其的理解。 这个文章写的很详细,相信对大家在实时处理整体理解上会有帮助的。   2 实时处理架构 2.1 整体架构图 架构说明: 整个数据处理流程包括四部分,一部分是数据接入层,该部分从前端业务系统获取数据;中间部分是最重要的storm实时处理部分,数据从接入层接入,经过实时处理后传入数据落地层;第三部分为数据落地层,该部分指定了数据的落地方式;第四部分元数据管理器。     2.2 数据接入层 该部分有多种数据收集方式,包括使用消息队列(MetaQ),直接通过网络Socket传输数据,前端业务系统专有数据采集API,对Log问价定时监控。 2.2.1 MetaQ 为什么选择消息队列? 这或许是大家比较疑惑的地方,会疑惑为什么不把数据直接导入storm中。使用消息队列作为数据中间处理组件的原因是,在大批量数据处理时,前端业务数据产生速度可能会很快,而实时处理或者其他处理速度跟不上...
键盘上跳舞 发布于 2个月前 阅读 485 评论 3 点赞 2

kafka with kerberos实例

There are some points when test follow http://www.cnblogs.com/dongxiao-yang/p/7131626.html:   When setup kafka broker, you need to more: 1. create configuration file krb5.conf(the ip below is KDC) [libdefaults]     default_realm = LINKTIME.CLOUD [realms]     LINKTIME.CLOUD = {         kdc = 192.168.206.119:8800         admin_server = 192.168.206.109:7490     }   2.   update PLAINTEXT to SASL_PLAINTEXT in server.properties  listeners=SASL_PLAINTEXT://__CONTAINER_IP__:9092 advertised.listeners=SASL_PLAINTEXT://__KAFKA_VIP_HOST__:9092 usage of command-line for kafka-console-producer/kafka-console-consumer/... 1. create configuration file krb5.conf(the ip below is KDC) at /etc [libdefaults]     default_realm = LINKTIME.CLOUD [realms]     LINKTIME.CLOUD = {         kdc = 192.168.206.119:8800         admin_server = 192.168.206.109:7490     } 2.  generate keytab file kadmin.local -q "addprinc -pw 123456 kafka-client@LINKTIME.CLOUD"  kt...
jacked 发布于 2个月前 阅读 30

第一个hadoop程序-WordCount

大数据
jackmanwu 发布于 2个月前 阅读 31

正则查找返回的是表达式括号的内容

例如 <a href="(.*?)".*?>.*?<\/a> 这样就是返回href的内容
陈昊Sevens 发布于 2小时前 阅读 3

IDEA远程提交hadoop任务

大数据
jackmanwu 发布于 2个月前 阅读 37

性能测试学习和性能瓶颈分析路线

      做性能测试已经有一两年时间了,一直都在胡乱碰撞,东学西学,都是一些表面的东西,很少想过把它们连贯起来。今天根据自己的理解写一下性能测试到一定阶段需要站到一个什么样子的高度去看待性能这个问题。    很多企业招聘都只写性能测试,会使用LR,jmeter工具。其实会使用jmeter和LR进行性能测试还只是性能测试的第一步,离真正的性能测试工程师还很远。我也还在路上    性能测试,都是要求测试系统性能,系统自然就应该包括:客户端;网络;服务端。    一:先易后难,首先是客户端性能,会有占用硬盘空间,内存使用,CPU占用,如果涉及下载存储就会涉及到磁盘。当然客户端性能现在已经算不上最主要的了。除非是一下单机,和C/S架构的客户端。客户端性能是相对容易测试出来的,不涉及并发,只要程序运行起来就会看到内存和CPU使用情况,使用快慢很容易体会出来    二:网络环境,网络环境是连接客户端和服务器的重要部分,如果网络带宽不够,就算服务器速度再快也是很难达到性能要求的,就是桥很窄而要过桥的人很多    三:服务器环境,做为最受重视的一部分,同样服务器也必然涉及到CPU、内存、磁盘、当然还有我们不希望看到的swap。这里先说...
软件测试网 发布于 2小时前 阅读 3

ES Java API_基于mget实现多辆汽车的配置与价格对比

es
jxlgzwh 发布于 2个月前 阅读 17 评论 1

ES Java API_基于search template实现按品牌分页查询模板

          搜索模板的功能,java api怎么去调用一个搜索模板 page_query_by_brand.mustache { "from": {{from}}, "size": {{size}}, "query": { "match": { "brand.keyword": "{{brand}}" } } }   SearchResponse sr = new SearchTemplateRequestBuilder(client) .setScript("page_query_by_brand") .setScriptType(ScriptService.ScriptType.FILE) .setScriptParams(template_params) .setRequest(new SearchRequest()) .get() .getResponse();   package com.roncoo.es.senior; import java.net.InetAddress; import java.util.HashMap; import java.util.Map; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.client.transport.TransportClient; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.transport.InetSocketTransportAddress; import org.elasticsearch.script.ScriptType; import org.elasticsearch.script.mustache.SearchTemplateRequestBuilder; import org.elasticsearch.search.SearchHit; import org.elasticse...
jxlgzwh 发布于 2个月前 阅读 54

flink写入hdfs

Maven依赖 <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-connector-filesystem_2.10</artifactId> <version>1.3.2</version> </dependency> Java代码 DataStream<Tuple2<IntWritable,Text>> input = ...; BucketingSink<String> sink = new BucketingSink<String>("/base/path");//如果跨集群要带上前缀,指定集群 sink.setBucketer(new DateTimeBucketer<String>("yyyy-MM-dd--HHmm")); sink.setWriter(new StringWriter<>()); sink.setBatchSize(1024 * 1024 * 400); // this is 400 MB, input.addSink(sink); 主要设置三个属性Bucketer,Writer,BatchSize。 Bucketer:数据写入hdfs目录划分,DateTimeBucketer是根据当前系统时间划分,具体粒度根据传入的参数确定。当然我们也可以设置自己的划分规则,利用数据里的字段确定划分目录; 例如我根据Json数据里的Timestamp字段确定划分目录: class DateHourBucketer implements Bucketer<JSONObject>{ private static final long serialVersionUID = 1L; private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd--HH"); @Override public Path getBucketPath(C...
张欢19933 发布于 1个月前 阅读 19

hue(05)、Hue集成mysql、oracle等数据库

在hue(04)、Hue集成Hive数据仓库中我们在hue中集成hive数据仓库,替代了hive自己的hwi服务,可以很方便的在hue中进行hive的sql查询等操作。本文我们将在hue中集成mysql、oracle等数据库,这样就可以在hue中对数据存储服务中的数据进行操作。
MaxBill 发布于 2个月前 阅读 196 点赞 1

Docker容器可视化监控中心搭建

一个宿主机上可以运行多个容器化应用,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等等一系列信息,而且这些信息随时间变化,我们称其为时序数据
hansonwang 发布于 1周前 阅读 3245 评论 7 点赞 4

ElasticSearch5.4.3离线搭建

  1、ElasticSearch简介 ElasticSearch 是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch 是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。 我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch 来解决所有这些问题以及可能出现的更多其它问题。 2、部署准备 2.1、环境准备 elasticsearch-5.4.3.tar.gz jdk-8u161-linux-x64.tar.gz 可用的yum源 可联网的Linux环境一台(不安装插件则不需要) 2.2、节点配置信息 IP地址 主机名 192.168.23.1 risen01 192.168.23.2 risen02 192.168.23.3 risen03   2.3、节点资源配置信息 IP地址 角色 192....
ByCoder 发布于 3天前 阅读 289 评论 1 点赞 2

Spark2.2.0 分布式离线搭建

1、Spark简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。 Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。 Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。 尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, a...
ByCoder 发布于 3天前 阅读 249 评论 2

ElasticSearch笔记系列(8)——简单查询、条件查询、聚合查询

ES的查询方式可以分为三类: 简单查询 条件查询 聚合查询   数据准备 我们先按照前几篇介绍的插入文档的方法准备一些实验数据,然后再来演示如何实现各类查询。 我们在我们之前创建的rent索引的community类型下面加入如下文档信息。 回忆一下:当时创建的索引及类型如下: { "settings":{ "number_of_shards":3, "number_of_replicas":1 }, "mappings":{ "community":{ "properties":{ "communityname":{ "type":"text" }, "city":{ "type":"keyword" }, "age":{ "type":"integer" }, "creationdate":{ "type":"date", "format":"yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis" } } }, "shop":{ } } } 回过头来,我们现在插入一些文档进去。插入的ES的API:http://localhost:9200/rent/community/ 所有文档的插入请求体如下:你可以把这些数据插入到你的ES中,然后try后续的各种查询。 { "communityname":"万科阳光苑", "city":"上海", "age":10, "creationdate":"2008-01-01 00:00:00" } { "communityname":"万科朗润园", "city":"上海", "age":12, "creationdate":"2006...
HappyBKs 发布于 7天前 阅读 261

CDH安装之篇一:Cloudera Manager安装部署

CDH:全称Cloudera’s Distribution Including Apache Hadoop   hadoop是一个开源项目,所以很多公司在这个基础进行商业化,Cloudera对hadoop做了相应的改变。   Cloudera公司的发行版,我们将该版本称为CDH(Cloudera Distribution Hadoop)。
KevinBruce 发布于 1个月前 阅读 508

Elastic 宣布公开其商业产品 X-Pack 的源代码

Elastic 在开放的路上继续加码并将其闭源的 X-Pack 代码公开到公共的 Github 仓库里面。
Medcl 发布于 2个月前 阅读 3145 评论 10 点赞 2

搜索中的权重度量利器: TF-IDF和BM25

当你可以衡量所谈论的事情,并用数字来表达时,说明你知道这件事了;当你不能用数字来表达时,说明你对它的了解是微不足道的。 --Lord Kelvin
StanleySun 发布于 3个月前 阅读 112

elasticsearch设置执行脚本并添加开机启动

在/etc/init.d目录下新建文件elasticsearch #!/bin/sh #chkconfig: 2345 80 05 #description: elasticsearch export JAVA_HOME=/usr/java/jdk1.8.0_112 export JAVA_BIN=/usr/java/jdk1.8.0_112/bin export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH case "$1" in start) su lyt<<! cd /home/lyt/dev-repo/elk5/elasticsearch-5.6.9 ./bin/elasticsearch -d ! echo "elasticsearch startup" ;; stop) es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'` kill -9 $es_pid echo "elasticsearch stopped" ;; restart) es_pid=`ps aux|grep elasticsearch | grep -v 'grep elasticsearch' | awk '{print $2}'` kill -9 $es_pid echo "elasticsearch stopped" su lyt<<! cd /home/lyt/dev-repo/elk5/elasticsearch-5.6.9 ./bin/elasticsearch -d ! echo "elasticsearch startup" ;; *) echo "start|stop|restart" ;; esac exit $? 保存退出,赋予...
楠木楠 发布于 7天前 阅读 30

基于阿里云数加MaxCompute的企业大数据仓库架构建设思路

摘要:   数加大数据直播系列课程主要以基于阿里云数加MaxCompute的企业大数据仓库架构建设思路为主题分享阿里巴巴的大数据是怎么演变以及怎样利用大数据技术构建企业级大数据平台。   本次分享嘉宾是来自阿里云大数据的技术专家祎休   背景与总体思路   数据仓库是一个面向主题的、集成的、非易失的、反映历史变化的数据集合用于支持管理决策。 原文链接:http://click.aliyun.com/m/43803/ 数加大数据直播系列课程,主要以基于阿里云数加MaxCompute的企业大数据仓库架构建设思路为主题,分享阿里巴巴的大数据是怎么演变以及怎样利用大数据技术构建企业级大数据平台。   本次分享嘉宾是来自阿里云大数据的技术专家祎休!   背景与总体思路   数据仓库是一个面向主题的、集成的、非易失的、反映历史变化的数据集合,用于支持管理决策。其结构图如下所示:     随着大数据、云计算等技术的应用和普及,互联网环境下数据处理呈现出新的特征:业务变化快;数据来源多;系统耦合多;应用深度深。业务变化加快导致数据来源增多,以前的数据大多来自于应用系统数据库,基本为结构化数据,比如Oracle、MySQL等数据。现在的互联网环境下有了更多的数据,比如网站的点击日...
阿里云云栖社区 发布于 1个月前 阅读 32

解决 Scrapy-Redis 空跑问题,链接跑完后自动关闭爬虫

scrapy-redis框架中,reids存储的xxx:requests已经爬取完毕,但程序仍然一直运行,如何自动停止程序,结束空跑。相信大家都很头疼,尤其是网上一堆搬来搬去的帖子,来看一下 我是如何解决这个问题的吧!
BlueAnt007 发布于 2个月前 阅读 184

Apache Ignite事务架构:Ignite持久化的事务处理

在本系列[上一篇文章](https://my.oschina.net/liyuj/blog/1791800)中,介绍了故障和恢复,下面是本系列剩下的文章将要讨论的主题: - Ignite持久化的事务处理(WAL、检查点及其他) - 第三方持久化的事务处理 在本文中,会聚焦于Ignite持久化的事务处理。 将[Apache Ignite](https://ignite.apache.org/)作为内存数据网格(IMDG)的都知道,如果整个集群瘫痪,仅仅将数据保存在内存中问题是很严重的,其他的IMDG以及缓存技术也会面临同样的问题。解决这个问题的方案之一就是,将Ignite与第三方的持久化存储集成,然后提供通读和通写能力,如图1所示: ![图1:使用第三方存储进行持久化](https://www.gridgain.com/sites/default/files/inline-images/Figure1_10.png) 但是,这个方法有一些缺陷,在本系列的下一篇文章中会说明。 作为第三方持久化的替代方案,Ignite开发了一个固化内存架构,如图2所示,该架构可以同时在内存和磁盘上进行数据和索引的存储和处理,该特性使用非常简单,使得Ignite集群在数据落盘的前提下,获得内存级的性能: ![图2:固化内存](https://www.gridgain.com/sites/default/files/inline-images/Figure2_9.png) 固化内存的工作方式类似于现代操...
李玉珏 发布于 2周前 阅读 981 点赞 3

在浏览器中进行深度学习:TensorFlow.js (一)基本概念

作为deeplearn.js的继任者,tensoflow.js 支持在浏览器或者nodejs中利用JavaScript来运行深度学习。并且能够支持GPU和现有的Tensorflow的模型。该项目的首页上有几个很酷炫的演示。作为热爱机器学习和前端数据可视化的我怎能不心动呢。快来和我一起来看看如何利用tensorflow.js来进行深度学习之旅吧。 线性代数(Linear algebra)是深度学习的数学基础。张量(Tensor)是线性代数的基本数学概念和运算单元。我们来了解一下tensorflow.js中有关张量的基本概念和运算。 张量的概念 标量 Scalar 标量就是一个简单的数字,概念就是只有大小,没有方向。 const scalar = tf.scalar(5); print_tensor([scalar]); 注意:print_tensor()是我实现的一个JS方法,在浏览器中以表格的形式显示张量的内容,最高两个维度。输入是一个张量的数组。如果不想在浏览器中看到结果,也可以调用tensor.print()方法,在console中查看张量的内容。 以上的代码,创建了一个数值为5,维度(Rank)0 的标量。 向量/矢量 Vector 向量就是一个一维数组,概念就是有大小和方向。 const vector = tf.tensor1d([0, 1, 2, 3, 4]); print_tensor([vector]); 以上的代码,创建了一个数值为[0,1,2,3,4],维度...
naughty 发布于 3周前 阅读 503 点赞 3

NLTK入门一:文本的信息统计、搜索和词频统计概览

NLTK(Natural language tool kits)是一个Python的自然语言处理库,是Python在自然语言处理领域的必备工具。本文简单介绍了NLTK模块中自带的book模块、文本基本数据相关函数以及词频统计函数,希望对于读者使用Python进行自然语言处理有所帮助。
SamYjy 发布于 1周前 阅读 47

Apache Ignite事务架构:并发模型和隔离级别

在本系列的第一篇文章中我们研究了2阶段提交协议,在本文中,我们会聚焦并发模型和隔离级别。
李玉珏 发布于 2个月前 阅读 833

kettle通用插件[kettlePlugins]使用说明

kettle通用插件,通过json配置文件实现自定义插件的开发。
空山苦水禅人 发布于 3个月前 阅读 122

分布式存储初探

# 分布式存储初探 --- ## 缘起 最近公司内部在做dmp服务,目前的方案都是搭建不同的redis集群,将数据灌到redis集群中系统查询服务供线上使用。但是随着数据量的增大以及数据源的多样性,再加上线上服务需要多机房的支持,后续继续使用redis集群必然导致成本过高。 当然也考虑过使用hbase来支持线上服务,但是线上服务对请求相应要求高,而hbase有延迟高的风险,所以有了本次对分布式kv数据库的一些调研性工作。 ## 为什么需要分布式数据库 在使用分布式数据库之前,我们一般使用mysql来支持一般的线上业务,即使在单机存储有限的情况下,我们也可以使用sharding的方式分库分表来支撑数据量大的情况,但是sharding又有其自身各种各样的弊端,例如其跨节点join的复杂性和网络传输问题。所以由于单机的数据存储有限,无法满足我们对数据的存储和查询,于是分布式存储应运而生。 ## 分布式数据库需要解决哪些基本问题 1. 数据如何存储 2. 数据如何查询,如何索引 3. 如何保证HA 4. 如何保证一致性 下面将分别对如上4个问题介绍现在业界内的比较成熟的开源产品是如何解决的。 ## 数据的存储和查询 任何持久化存储,最后都要落到磁盘上。而且根据数据的实际应用,数据的存储和数...
纳兰清风 发布于 3周前 阅读 371 评论 2 点赞 2

Apache Ignite(V2.3.0)中文开发手册

Apache Ignite(V2.3.0)中文开发手册,已经翻译完成,托管在作业部落上,同时也挂在了社区的官网。
李玉珏 发布于 3个月前 阅读 288 点赞 3

Filebeat入门

第1步:安装Filebeat 在运行Filebeat之前,您需要安装并配置Elastic堆栈。请参阅 Beats和弹性堆栈入门。 要下载并安装Filebeat,请与您的系统中工作的命令(DEB为Debian / Ubuntu的,转速为红帽/ Centos的/ Fedora的,MAC OS X的,docker任何多克尔平台,适用于Windows)。 如果您使用Apt或Yum,则可以从我们的存储库安装Filebeat以更轻松地更新到最新版本。 有关其他安装选项,请参阅我们的下载页面,例如32位图像。 DEB: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.3-amd64.deb sudo dpkg -i filebeat-6.1.3-amd64.deb rpm:: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.3-x86_64.rpm sudo rpm -vi filebeat-6.1.3-x86_64.rpm mac: curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.1.3-darwin-x86_64.tar.gz tar xzvf filebeat-6.1.3-darwin-x86_64.tar.gz docker: docker pull docker.elastic.co/beats/filebeat:6.1.3 win: 从下载页面下载Filebeat Windows zip文件 。 将zip文件的内容解压缩到C:\Program Files。 将filebeat-<version>-windows目录重命...
诺岚 发布于 3个月前 阅读 95

python爬虫基础知识——requests、bs4的使用

requests基本用法 1.get用法 不带参数的 #!\user\bin\python #-*-coding:utf-8-* import requests url="http://www.baidu.com" r=requests.get(url) print r.text 带参数的get请求 #!\user\bin\python #-*-coding:utf-8-*- import requests url="http://www.baidu.com" payload={'key1':'value1','key2':'value2'} r=requests.get(url,params=payload) print r.url print r.text 加入headres import requests payload = {'key1': 'value1', 'key2': 'value2'} headers = {'content-type': 'application/json'} r = requests.get("http://httpbin.org/get", params=payload, headers=headers) print r.url >>> import l8 http://www.baidu.com/?key2=value2&key1=value1 2.post请求 一个http请求包括三个部分,为别为请求行,请求报头,消息主体,类似以下这样: 请求行  请求报头  消息主体 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式。服务端通过是根据请求头中的Content-Type字段来获知请求中的消息主体是用何种方式进行编码,再对消息主体进行解析。具体的编码方式包括: application/x-www-form-urlencode...
十年磨一剑3344 发布于 2个月前 阅读 138

【Elasticsearch】正排索引、倒排索引——笔记

倒排索引是我们所熟知的,正排索引是什么,es还用到这个?当我们在很多数据中查询某些内容时,倒排索引会一个一个的去遍历完所有的倒排索引“表”然后再分组聚合,但是也许在前面的搜索中以及找到了我们想要的结果只是倒排索引不知道,这样显示不是很好,为了应对这种情况,正排索引闪亮登场!     正排索引:     doc value  的数据结构,核心原理同倒排索引,写入磁盘文件、os cache进行缓存(提升服务正排索引的性能),如果os cache不够用了就将其中的数据写入磁盘文件     关于性能优化问题有很多方案,这里jvm更少的内存       es基于os cache进行缓存、提升性能,不是很建议使用jvm内存进行缓存(导致gc开销、oom问题),所以给jvm更少的内存,给os cache更大的内存,这样可以提升正排索引和倒排索引的缓存及查询效率。     colum压缩     1、相同的value:合并、保留一个标识       所有的值相同,保留一个值、小于256个值,使用table encoding模式、大于256个值如有公约数即除以最大公约数并保留 没有则用offset结合压缩      禁用:     不需要正排索引,禁用减少磁盘空间的占用 PUT my_index { "mappings": { "my...
星丫头 发布于 1个月前 阅读 27

Hadoop-HDFS基础原理与操作

HDFS 1、概述     HDFS是Hadoop分布式文件系统,用来分布式存储海量数据,并具有高可靠、高性能、可伸缩的能力。     HDFS屏蔽了分布式存储的细节,提供了标准的访问方式,能够以类似访问本地文件系统的方式访问HDFS中的文件。     如下是HDFS的整体流程架构:      2、HDFS的相关操作     可以通过shell或JavaAPI方式操作HDFS中的数据。 1.shell命令     hdfs中的数据,一次写入、多次读取、不支持行级别的增删改。2.0版本增加了在文件中追加的内容的功能。所以也没有对应的行级别的命令。 hadoop fs -ls /user #查看目录。 hadoop fs -mkdir /user/trunk #创建目录。 hadoop fs -lsr /user #递归查看目录。 hadoop fs -put test.txt /user/trunk #上传文件。 hadoop fs -put test.txt #复制到hdfs当前目录下,首先要创建当前目录。 hadoop fs -get /user/trunk/test.txt #复制到本地当前目录下,即下载到本地当前目录 hadoop fs -cat /user/trunk/test.txt #查看文件内容。 hadoop fs -tail /user/trunk/test.txt #监控,查看最后1000字节。 hadoop fs -rm /user/trunk/test.txt #删除文件。 hadoop fs -rmdir /user/trunk #删除目录。 hadoop f...
星汉 发布于 43分钟前

加米谷大数据:2018年大数据依然是认知误区+人才紧缺

大数据现在很热,企业、个人都在谈论,每个人对大数据有着自己不同的看法和观点,很多朋友对大数据仍然具有一些观念上的误区,比如很多人会认为大数据是一个最新的技术,还有一些朋友认为多有数据只服务自己一个人等等。 大数据不是一项最新技术 大数据现在已经融入我们的生活,人们在日常工作办公的时候都会接触到大数据,这些大量数据总会以不同的形式,以及庞大的数量存在和运用,这也导致了很多朋友认为大数据是当今一项最新的技术。其实不然,大数据可以算是一项新的术语或技术词汇,但是针对于大数据的海量数据分析的概念和技术层面其实并不是最新的。 曾经有大数据以及云计算知名企业Teradata公司的首席技术官就曾在业内表示,大数据是一个长期的项目,并不是在短期内就能够达到一个很高的高度的,而对于用户来讲,这一点也是很多人容易进入的误区。对于大数据的数据分析等技术方面,在很多年前其实就已经有企业在做,现在所谓的大数据已经发展成为云端的一种海量数据的分析和存储技术,何为新何为老其实也不好界定。 大数据不是商品 大众在接触大数据的时候都会有类似的误解,认为大数据就像我们平常采购服务器、交换机那样,厂商出list价格,然后就是与客户商谈折...
加米谷大数据 发布于 45分钟前 阅读 1

性能测试学习和性能瓶颈分析路线

      做性能测试已经有一两年时间了,一直都在胡乱碰撞,东学西学,都是一些表面的东西,很少想过把它们连贯起来。今天根据自己的理解写一下性能测试到一定阶段需要站到一个什么样子的高度去看待性能这个问题。    很多企业招聘都只写性能测试,会使用LR,jmeter工具。其实会使用jmeter和LR进行性能测试还只是性能测试的第一步,离真正的性能测试工程师还很远。我也还在路上    性能测试,都是要求测试系统性能,系统自然就应该包括:客户端;网络;服务端。    一:先易后难,首先是客户端性能,会有占用硬盘空间,内存使用,CPU占用,如果涉及下载存储就会涉及到磁盘。当然客户端性能现在已经算不上最主要的了。除非是一下单机,和C/S架构的客户端。客户端性能是相对容易测试出来的,不涉及并发,只要程序运行起来就会看到内存和CPU使用情况,使用快慢很容易体会出来    二:网络环境,网络环境是连接客户端和服务器的重要部分,如果网络带宽不够,就算服务器速度再快也是很难达到性能要求的,就是桥很窄而要过桥的人很多    三:服务器环境,做为最受重视的一部分,同样服务器也必然涉及到CPU、内存、磁盘、当然还有我们不希望看到的swap。这里先说...
软件测试网 发布于 2小时前 阅读 3

正则查找返回的是表达式括号的内容

例如 <a href="(.*?)".*?>.*?<\/a> 这样就是返回href的内容
陈昊Sevens 发布于 2小时前 阅读 3

Zookeeper原理介绍

ZooKeeper 一、概述     Zookeeper是一个工具,可以实现集群中的分布式协调服务。     所谓的分布式协调服务,就是在集群的节点中进行可靠的消息传递,来协调集群的工作。     Zookeeper之所以能够实现分布式协调服务,靠的就是它能够保证分布式数据一致性。     所谓的分布式数据一致性,指的就是可以在集群中保证数据传递的一致。     Zookeeper能够提供的分布式协调服务包括:数据发布订阅、负载均衡、命名服务、分布式协调/通知、集群管理、分布式锁、分布式队列等功能 1、Zookeeper的特点     Zookeeper工作在集群中,对集群提供分布式协调服务,它提供的分布式协调服务具有如下的特点: 1.顺序一致性     从同一个客户端发起的事务请求,最终将会严格按照其发起顺序被应用到zookeeper中 2.原子性     所有事物请求的处理结果在整个集群中所有机器上的应用情况是一致的,即,要么整个集群中所有机器都成功应用了某一事务,要么都没有应用,一定不会出现集群中部分机器应用了改事务,另外一部分没有应用的情况。 3.单一视图     无论客户端连接的是哪个zookeeper服务器,其看到的服务端数据模型都是一致的。 4.可靠性     ...
星汉 发布于 4小时前 阅读 3

Zookeeper集群的搭建

一、集群模式 1、单机模式     在zoo.cfg中只配置一个server.id就是单机模式了。     这种模式下,如果当前主机宕机,那么所有依赖于当前zookeeper服务工作的其他服务器都不能在进行正常工作,这种事件称为单机节点故障。所以这种模式一般用在测试环境。 2、伪分布式     在zoo.cfg中配置多个server.id,其中ip都是当前机器,而端口各不相同,启动时就是伪集群模式了。     这种模式和单机模式产生的问题是一样的。这种模式也是用在测试环境中。 3、完全分布式     多台机器各自配置zoo.cfg文件,将各自互相加入服务器列表,上面搭建的集群就是这种完全分布式。     这种模式是真实生产环境中使用的zookeeper集群模式。 二、zookeeper集群的搭建     搭建zookeeper集群需要最少三台机器,需要安装jdk最为基础支持。 1、准备虚拟机     准备三台虚拟机,将ip和端口规划好。 2、安装jdk     在虚拟机中安装jdk,并且配置jdk的环境变量。 3、搭建集群 1.下载安装包     下载zookeeper的安装包,下载地址:http://zookeeper.apache.org/     上传到linux集群环境下,规划自己的管理目录,解压安装包。 tar -zxvf zookeeper-3.4....
星汉 发布于 4小时前 阅读 4

Hadoop完全分布式配置

Hadoop完全分布式配置 一、介绍     Hadoop2.0中,2个NameNode的数据其实是实时共享的。新HDFS采用了一种共享机制,Quorum Journal Node(JournalNode)集群或者Nnetwork File System(NFS)进行共享。NFS是操作系统层面的,JournalNode是hadoop层面的,我们这里使用JournalNode集群进行数据共享(这也是主流的做法)。如下图所示,便是JournalNode的架构图。     两个NameNode为了数据同步,会通过一组称作JournalNodes的独立进程进行相互通信。当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNodes进程。standby状态的NameNode有能力读取JNs中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。standby可以确保在集群出错时,命名空间状态已经完全同步了。     对于HA集群而言,确保同一时刻只有一个NameNode处于active状态是至关重要的。否则,两个NameNode的数据状态就会产生分歧,可能丢失数据,或者产生错误的结果。为了保证这点,这就需要利用使用ZooKeeper了。首先HDFS集群中的两个NameNode都在ZooKeeper中注册,当active状态的NameNode出故障时,ZooKeeper能检测到这种情况,它就会自动把standby状态的Nam...
星汉 发布于 4小时前 阅读 32

Hadoop简介

概述     Hadoop是Apache提供的开源的海量数据离线处理框架,是最知名的大数据框架之一。     最初来源于Google的三篇论文,由Apache基于论文中的原理进行了开源的实现。     Google的集群系统:GFS、MapReduce、BigTable。     Hadoop的集群系统:HDFS、MapReduce、HBase。 1、组件     其中HDFS和MapReduce组成了Hadoop,并后续在Hadoop2.0中引入了Yarn。所以目前的Hadoop由如下三个组件组成:     HDFS:Hadoop分布式文件存储系统。     MapReduce:Hadoop分布式数据计算框架。     Yarn:Hadoop分布式资源协调工具。 2、最初设计的目的     Hadoop设计的初衷是为了解决Nutch的海量数据存储和处理的需求,可以解决大数据场景下的数据存储和处理的问题。 3、名字的起源     Doug Cutting如此解释Hadoop的得名:“这个名字是我孩子给一头吃饱了的棕黄色大象命名的。我的命名标准就是简短,容易发音和拼写,没有太多的意义,并且不会被用于别处。小孩子是这方面的高手。Google就是由小孩命名的。” 二、Hadoop安装配置 1、下载     Hadoop工作需要JDK的支持,请注意下载时对JDK的版本要求。     下载地址:http://hadoop...
星汉 发布于 18小时前 阅读 1

Hadoop伪分布式集群搭建

Hadoop伪分布式 一、准备工作 1、关闭防火墙 service iptables start     立即开启防火墙,但是重启后失效。 service iptables stop     立即关闭防火墙,但是重启后失效。     如下命令是永久性操作,重启后生效。 chkconfig iptables on     开启防火墙,重启后生效。 chkconfig iptables off     关闭防火墙,重启后生效。 2、配置主机名     注意安装hadoop的集群主机名不能有下划线。不然会出现找不到主机的问题,导致集群无法启动。     配置主机名: vim /etc/sysconfig/network source /etc/sysconfig/network     例如: NETWORKING=yes HOSTNAME=hadoop01     配置完成,命令操作界面不会马上修改,需要重启机器才能更改。     也可以使用如下命令,临时修改主机名。 hostname hadoop01 3、配置Hosts     配置此功能,是为了解耦,如果每个服务中都写具体的ip地址,如果某台服务器的ip地址发生了改变,再次修改ip会是一个很大的工作量;如果在服务配置中使用ip的地方都改成主机名称的方法,那么当某台服务器的ip发生改变,只需要在/etc/hosts文件中更改对应的映射关系即可。 vim /etc/hosts     填入内容格式如...
星汉 发布于 19小时前 阅读 2

MondrianSchema编写心得

mondrianSchema撰写,多维数据分析
仔仔1993 发布于 20小时前 阅读 4

CentOS 7 环境下 chromedriver 安装

error while loading shared libraries: libglib-2.0.so.0/libX10.so unknown error: Chrome failed to start: exited abnormally
gxLong 发布于 23小时前 阅读 7

互联网学院大数据分析专业欢迎加入

大数据分析: 大数据分析是指对规模巨大的数据进行分析。大数据可以概括为4个V, 数据量大(Volume)、速度快(Velocity)、类型多(Variety)、价值(Value)。 大数据作为时下最火热的IT行业的词汇,随之而来的数据仓库、数据安全、数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。随着大数据时代的来临,大数据分析也应运而生。 大数据分析的六个基本方面: 1. Analytic Visualizations(可视化分析)   不管是对数据分析专家还是普通用户,数据可视化是数据分析工具最基本的要求。可视化可以直观的展示数据,让数据自己说话,让观众听到结果。 2. Data Mining Algorithms(数据挖掘算法)   可视化是给人看的,数据挖掘就是给机器看的。集群、分割、孤立点分析还有其他的算法让我们深入数据内部,挖掘价值。这些算法不仅要处理大数据的量,也要处理大数据的速度。 3. Predictive Analytic Capabilities(预测性分析能力)   数据挖掘可以让分析员更好的理解数据,而预测性分析可以让分析员根据可视化分析和数据挖掘的结果做出一些预测性的判断。 4. Semantic Engines(语义引擎)   我们知道由于非结构化数据的多样性带来了数...
mcy0425 发布于 1天前 阅读 3

Java实现HDFS文件操作工具类

1、创建HDFS配置信息静态代码块     static Configuration conf = new Configuration();     //具体配置信息根据自己的安装环境参数来 static {         //HDFS通信地址 String hdfsUrl="hdfs://localhost:9000"; conf.set("fs.defaultFS", hdfsUrl); // conf.set("dfs.nameservices", "nameservice1"); // conf.set("dfs.ha.namenodes.nameservice1", "nn1,nn2"); // conf.set("dfs.namenode.rpc-address.nameservice1.nn1", "xxx:8020"); // conf.set("dfs.namenode.rpc-address.nameservice1.nn2", "xxx:8020"); // conf.set("dfs.client.failover.proxy.provider.nameservice1" // ,"org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider"); // conf.addResource("classpath:/hadoop/core-site.xml"); // conf.addResource("classpath:/hadoop/hdfs-site.xml"); // conf.addResource("classpath:/hadoop/mapred-site.xml"); } 2、创建新文件 /** * 创建新文件 * @author LiHaoShan * @param dst HDFS路径 * @param cont...
佛系程序猿灬 发布于 1天前 阅读 7

ComputeColStats UDF中 近似算法的介绍

一,前面的话 表和列的统计信息对CBO的结果有着极大地影响,能够高效和准确的收集统计信息是极其重要的。但高效和准确是矛盾的,更准确的统计信息往往需要更多的计算,我们能做的是在高效和准确之间找到更好的平衡。接下来的内容是关于目前在ComputeColStats中用的一些近似算法。 二,收集的内容 目前针对列主要会收集以下统计信息: cntRows : 列中总数据个数,包括nulll值 avgColLen :列的平均长度 maxColLEN :列的最大长度 minValue :列的最小值 maxValue :列的最大值 numNulls :列中null值个数 numFalses :如果boolean型,false值的个数 numTrues :如果boolean型,true值的个数 countDistinct :不同值的个数 topK :topk值的个数,数据倾斜的标志 一般说来除了countDistinct 和topK 以外的统计信息基本上消耗资源并不大(minValue和maxValue存在大量比较,也会消耗不少资源),问题主要集中在countDistinct 和topK上。下面要描述的近似算法也是主要针对这两个点。 三,countDistinct 实现 算法:Flajolet-Martin 论文见:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.81.3869&rep=rep1&type=pdf 简介 对于n个object,如果Hash结果中,结尾(或...
猫耳m 发布于 1天前 阅读 2

ComputeColStats UDF中 近似算法的介绍

一,前面的话 表和列的统计信息对CBO的结果有着极大地影响,能够高效和准确的收集统计信息是极其重要的。但高效和准确是矛盾的,更准确的统计信息往往需要更多的计算,我们能做的是在高效和准确之间找到更好的平衡。接下来的内容是关于目前在ComputeColStats中用的一些近似算法。 二,收集的内容 目前针对列主要会收集以下统计信息: cntRows : 列中总数据个数,包括nulll值 avgColLen :列的平均长度 maxColLEN :列的最大长度 minValue :列的最小值 maxValue :列的最大值 numNulls :列中null值个数 numFalses :如果boolean型,false值的个数 numTrues :如果boolean型,true值的个数 countDistinct :不同值的个数 topK :topk值的个数,数据倾斜的标志 一般说来除了countDistinct 和topK 以外的统计信息基本上消耗资源并不大(minValue和maxValue存在大量比较,也会消耗不少资源),问题主要集中在countDistinct 和topK上。下面要描述的近似算法也是主要针对这两个点。 三,countDistinct 实现 算法:Flajolet-Martin 论文见:http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.81.3869&rep=rep1&type=pdf 简介 对于n个object,如果Hash结果中,结尾(或...
阿里云云栖社区 发布于 1天前 阅读 2

MaxCompute(原ODPS) 事件(Event)机制

摘要: 免费开通大数据服务:https://www.aliyun.com/product/odps 转自habai 什么是 MaxCompute事件机制 MaxCompute event 用于监控表和实例等MaxCompute资源(目前只用于监控表)。   免费开通大数据服务:https://www.aliyun.com/product/odps   什么是MaxCompute   大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。   什么是 MaxCompute事件机制   MaxCompute event 用于监控表和实例等MaxCompute资源(目前只用于监控表)。当表状态发生变化时,MaxCompute 会向预先注册(订阅)的 uri 发送信息。Event通知只有在订阅Event之后才能收到。每个project中可以订阅一个或多个Event。Event是用户的数据,同表数据一样,创建或修改时都需要有这个Project的操作权限。关于Event的Restful Api,在文章里有介绍。   为什么需要 MaxCompute 事件机制   考虑以下场景:当一个用户 A 关心某一个表 T 的操作(创建/删除/插入/修改/...)时,如果表 T 不是用户 A 创建的,那么用户 ...
猫耳m 发布于 1天前 阅读 3

MaxCompute(原ODPS) 事件(Event)机制

摘要: 免费开通大数据服务:https://www.aliyun.com/product/odps 转自habai 什么是 MaxCompute事件机制 MaxCompute event 用于监控表和实例等MaxCompute资源(目前只用于监控表)。 免费开通大数据服务:https://www.aliyun.com/product/odps 什么是MaxCompute 大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。   什么是 MaxCompute事件机制   MaxCompute event 用于监控表和实例等MaxCompute资源(目前只用于监控表)。当表状态发生变化时,MaxCompute 会向预先注册(订阅)的 uri 发送信息。Event通知只有在订阅Event之后才能收到。每个project中可以订阅一个或多个Event。Event是用户的数据,同表数据一样,创建或修改时都需要有这个Project的操作权限。关于Event的Restful Api,在文章里有介绍。   为什么需要 MaxCompute 事件机制   考虑以下场景:当一个用户 A 关心某一个表 T 的操作(创建/删除/插入/修改/...)时,如果表 T 不是用户 A 创建的,那么用户 A 可以采用...
阿里云云栖社区 发布于 1天前 阅读 2

阿里云大数据MaxCompute计算资源分布以及LogView分析优化

摘要: 海量数据处理平台,服务于批量结构化数据的存储和计算,提供海量数据仓库的解决方案以及针对大数据的分析建模服务.(官方文档有这里就不多做介绍了)官方文档链接 优势 用户不必关心分布式计算细节,从而达到分析大数据的目的。   MaxCompute(原ODPS)的概念   大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的PB/EB级数据仓库解决方案,具备万台服务器扩展能力和跨地域容灾能力,是阿里巴巴内部核心大数据平台,支撑每日百万级作业规模。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。(官方文档有这里就不多做介绍了)   官方文档链接   优势 用户不必关心分布式计算细节,从而达到分析大数据的目的。   应用场景 大型互联网企业的数据仓库和BI分析、网站的日志分析、电子商务网站的交易分析、用户特征和兴趣挖掘等。   MaxCompute(原ODPS)的架构   MaxCompute由四部分组成,分别是客户端 (ODPS Client)、接入层 (ODPS Front End)、逻辑层 (ODPS Server) 及存储与计算层 (Apsara Core)。   ODPS的客户端有以下几种形式: Web:ODPS以 REST...
猫耳m 发布于 1天前 阅读 1

阿里云大数据MaxCompute计算资源分布以及LogView分析优化

摘要: MaxCompute(原ODPS)的概念 海量数据处理平台,服务于批量结构化数据的存储和计算,提供海量数据仓库的解决方案以及针对大数据的分析建模服务.(官方文档有这里就不多做介绍了)官方文档链接 优势 用户不必关心分布式计算细节,从而达到分析大数据的目的。 MaxCompute(原ODPS)的概念 大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的PB/EB级数据仓库解决方案,具备万台服务器扩展能力和跨地域容灾能力,是阿里巴巴内部核心大数据平台,支撑每日百万级作业规模。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本,并保障数据安全。(官方文档有这里就不多做介绍了) 官方文档链接 优势 用户不必关心分布式计算细节,从而达到分析大数据的目的。 应用场景 大型互联网企业的数据仓库和BI分析、网站的日志分析、电子商务网站的交易分析、用户特征和兴趣挖掘等。 MaxCompute(原ODPS)的架构   MaxCompute由四部分组成,分别是客户端 (ODPS Client)、接入层 (ODPS Front End)、逻辑层 (ODPS Server) 及存储与计算层 (Apsara Core)。   ODPS的客户端有以下几种形式: Web:ODP...
阿里云云栖社区 发布于 1天前

Redis数据类型及应用场景-加米谷大数据

一、 redis 特点   所有数据存储在内存中,高速读写 提供丰富多样的数据类型:string、 hash、 set、 sorted set、bitmap、hyperloglog 提供了 AOF 和 RDB 两种数据的持久化保存方式,保证了 Redis 重启后数据不丢失 Redis 的所有操作都是原子性的,还支持对几个操作合并后的原子性操作,支持事务 通常我们都把数据存到关系型数据库中,但为了提升应用的性能,我们应该把访频率高且不会经常变动的数据缓存到内存中。Redis 没有像 MySQL 这类关系型数据库那样强大的查询功能,需要考虑如何把关系型数据库中的数据,合理的对应到缓存的 key-value 数据结构中。   二、 设计 Redis Key 分段设计法——使用冒号把 key 中要表达的多种含义分开表示,步骤如下: 把表名转化为 key 前缀 主键名(或其他常用于搜索的字段) 主键值 要存储的字段。 eg. 用户表(user) id name email 1 zj 929615448@qq.com 2 ai 929615449@qq.com 这个简单的表可能经常会有这个的需求:> 根据用户 id 查询用户邮箱地址,可以选择把邮箱地址这个数据存到 redis 中:   set user:id:1:email 929615448@qq.com; set user:id:2:email 929615449@qq.com;   三、 String 数据类型的应用场景   1. 简介...
加米谷大数据 发布于 2天前 阅读 5

Docker容器可视化监控中心搭建

一个宿主机上可以运行多个容器化应用,容器化应用运行于宿主机上,我们需要知道该容器的运行情况,包括 CPU使用率、内存占用、网络状况以及磁盘空间等等一系列信息,而且这些信息随时间变化,我们称其为时序数据
hansonwang 发布于 1周前 阅读 3245 评论 7 点赞 4

73款阿里巴巴开源软件详解!

详细解读阿里巴巴开源技术,包括框架、组件、引擎、数据库/存储、平台/系统、解决方案、工具、中间件、Web Sever、设计等十大类73款!
阿里巴巴

Apache Ignite事务架构:Ignite持久化的事务处理

在本系列[上一篇文章](https://my.oschina.net/liyuj/blog/1791800)中,介绍了故障和恢复,下面是本系列剩下的文章将要讨论的主题: - Ignite持久化的事务处理(WAL、检查点及其他) - 第三方持久化的事务处理 在本文中,会聚焦于Ignite持久化的事务处理。 将[Apache Ignite](https://ignite.apache.org/)作为内存数据网格(IMDG)的都知道,如果整个集群瘫痪,仅仅将数据保存在内存中问题是很严重的,其他的IMDG以及缓存技术也会面临同样的问题。解决这个问题的方案之一就是,将Ignite与第三方的持久化存储集成,然后提供通读和通写能力,如图1所示: ![图1:使用第三方存储进行持久化](https://www.gridgain.com/sites/default/files/inline-images/Figure1_10.png) 但是,这个方法有一些缺陷,在本系列的下一篇文章中会说明。 作为第三方持久化的替代方案,Ignite开发了一个固化内存架构,如图2所示,该架构可以同时在内存和磁盘上进行数据和索引的存储和处理,该特性使用非常简单,使得Ignite集群在数据落盘的前提下,获得内存级的性能: ![图2:固化内存](https://www.gridgain.com/sites/default/files/inline-images/Figure2_9.png) 固化内存的工作方式类似于现代操...
李玉珏 发布于 2周前 阅读 981 点赞 3

一个利用Tensorflow求解几何问题的例子

知乎上有一个问题,内容是已知空间三个点的坐标,求三个点所构成的圆的圆心坐标(编程实现)? 根据圆的定义,这道题的核心就是找到一个点,到已知的三个点的距离相等,利用数学知识可以求解如下: 例如 :给定a(x1,y1) b(x2,y2) c(x3,y3)求外接圆心坐标O(x,y) 1. 首先,外接圆的圆心是三角形三条边的垂直平分线的交点,我们根据圆心到顶点的距离相等,可以列出以下方程:        (x1-x)*(x1-x)+(y1-y)*(y1-y)=(x2-x)*(x2-x)+(y2-y)*(y2-y);        (x2-x)*(x2-x)+(y2-y)*(y2-y)=(x3-x)*(x3-x)+(y3-y)*(y3-y); 2.化简得到:         2*(x2-x1)*x+2*(y2-y1)y=x2^2+y2^2-x1^2-y1^2;         2*(x3-x2)*x+2*(y3-y2)y=x3^2+y3^2-x2^2-y2^2;         令:A1=2*(x2-x1);             B1=2*(y2-y1);             C1=x2^2+y2^2-x1^2-y1^2;             A2=2*(x3-x2);             B2=2*(y3-y2);             C2=x3^2+y3^2-x2^2-y2^2;         即:A1*x+B1y=C1;             A2*x+B2y=C2; 3.最后根据克拉默法则:           x=((C1*B2)-(C2*B1))/((A1*B2)-(A2*B1));           y=((A1*C2)-(A2*C...
naughty 发布于 2个月前 阅读 3962 评论 6 点赞 5

Apache Ignite事务架构:并发模型和隔离级别

在本系列的第一篇文章中我们研究了2阶段提交协议,在本文中,我们会聚焦并发模型和隔离级别。
李玉珏 发布于 2个月前 阅读 833

大数据平台Hadoop的分布式集群环境搭建

1 概述 本文章介绍大数据平台Hadoop的分布式环境搭建、以下为Hadoop节点的部署图,将NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分别部署一个DataNode节点 NN=NameNode(名称节点) SND=SecondaryNameNode(NameNode的辅助节点) DN=DataNode(数据节点) 2 前期准备 (1)准备五台服务器 如:master1、master2、slave1、slave2、slave3 (2)关闭所有服务器的防火墙 $ systemctl stop firewalld $ systemctl disable firewalld (3)分别修改各服务器的/etc/hosts文件,内容如下: 192.168.56.132 master1 192.168.56.133 master2 192.168.56.134 slave1 192.168.56.135 slave2 192.168.56.136 slave3 注:对应修改个服务器的/etc/hostname文件,分别为 master1、master2、slave1、slave2、slave3 (4)分别在各台服务器创建一个普通用户与组 $ groupadd hadoop #增加新用户组 $ useradd hadoop -m -g hadoop #增加新用户 $ passwd hadoop #修改hadoop用户的密码 切换至hadoop用户:su hadoop (5)各服务器间的免密码登录配置,分别在各自服务中执行一次 $ ssh-keygen -t rsa #一直按回车,会生成公私钥 $ ssh-copy-id hadoop@m...
FEINIK 发布于 3个月前 阅读 1804 评论 6 点赞 6

SQL优化-第二章-从解释计划层面让SQL飞

# 前言 在第一章,我们谈到加强数据库的设计层面认知可以让SQL的跑得更快,这章我们就谈论下如何从语言层面来提供优化SQL。如果说有一把钥匙能打开SQL优化的大门,那么解释计划就是这样的一把钥匙。什么是解释计划--数据根据统计信息生成的代码执行计划,了解释计划,理解解释计划就能帮助我们理解代码的瓶颈,问题的所在,有的放矢进行优化。Oracle提供了多种解释计划,hive,mongodb,mysql等数据库都提供相似的工具。在第一章的时候,举例子的时候也用到解释计划,刚好借这个机会也来说说解释计划。 # 如何获取解释计划 ## 方式一:explain plan for 用法) 步骤1:explain plan for "你的SQL" 步骤2:select * from table(dbms_xplan.display()); 例子) ``` explain plan for SELECT * FROM t1, t2 WHERE t1.id = t2.t1_id AND t1.n in(18,19); select * from table(dbms_xplan.display()); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------- Plan hash value: 3532430033 ------------------------------------------------------------------------------------------- | Id | Operation | Name | ...
osenlin 发布于 4个月前 阅读 2215 点赞 8

深度学习之视频摘要发展综述

现如今城市生活节奏越来越快,用户在浏览一些视频时,并不想花费大量的时间来看一个完整的视频。更多时候,用户只想知道这个视频最精华的信息,也是基于这种需求,谷阿莫等影视评论者才得到如此多的关注。此时,视频摘要就体现出其价值所在了。   什么是视频摘要?   视频摘要,就是以自动或半自动的方式,通过分析视频的结构和内容存在的时空冗余,从原始视频中提取有意义的片段/帧。从摘要的技术处理过程来讲,视频摘要一般可以分成两种,静态视频摘要和动态视频摘要。现阶段,我们公司主要致力于静态视频摘要的研究。接下来就和大家说一下静态视频摘要。   什么是静态视频摘要?   静态视频摘要,又称为视频概要,即用一系列从原始视频流中抽取出来的静态语义单元来表示视频内容的技术。简单来说,就是在一段视频中提取出一些关键帧,通过将多个关键帧组合成视频摘要,使用户可以通过少量的关键帧快速浏览原始视频内容。进一步发展的话可以为用户提供快速的内容检索服务。   例如,公开课的视频中,提取出含有完整PPT的帧。我们将含有关键信息的所有帧提供给浏览者,可以使其在较短的时间内了解到较长视频的主要内容。又例如,将一个2小时的电影提取出其关键部分,...
图鸭科技研究员 发布于 5个月前 阅读 1152 点赞 2

分布式实时日志分析解决方案ELK部署架构

一、概述 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats、Logstash、Elasticsearch、Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案。本文将会介绍ELK常见的架构以及相关问题解决。 Filebeat:Filebeat是一款轻量级,占用服务资源非常少的数据收集引擎,它是ELK家族的新成员,可以代替Logstash作为在应用服务器端的日志收集引擎,支持将收集到的数据输出到Kafka,Redis等队列。 Logstash:数据收集引擎,相较于Filebeat比较重量级,但它集成了大量的插件,支持丰富的数据源收集,对收集的数据可以过滤,分析,格式化日志格式。 Elasticsearch:分布式数据搜索引擎,基于Apache Lucene实现,可集群,提供数据的集中式存储,分析,以及强大的数据搜索和聚合功能。 Kibana:数据的可视化平台,通过该web平台可以实时的查看 Elasticsearch 中的相关数据,并提供了丰富的图表统计功能。 二、ELK常见部署架构 2.1、Logstash作为日志收集器 这种架构是比较原始的部署架构,在各应用服务器端分别部署一个Logstash组件,作为日志收集器,然后将Logstash收集到的数据过滤、分析、格式化处理后发送至Elasticsearch存储,最后使用Kibana进...
FEINIK 发布于 5个月前 阅读 5718 评论 6 点赞 5

用Python实现一个大数据搜索引擎

搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。 让我们看看以下布隆过滤器的代码: class Bloomfilter(object): """ A Bloom filter is a probabilistic data-structure that trades space for accuracy when determining if a value is in a set. It can tell you if a value was possibly added, or if it was definitely not added, but it can't tell you for certain that it was added. """ def __init__(self, size): """Setup the BF with the appropriate size""" self.values = [False] * size self.size = size def hash_value(self, value): """Hash the value provided and scale it to fit the BF size""" ...
naughty 发布于 5个月前 阅读 3005 评论 3 点赞 5

深度思考Spark Runtime机制

序言 在以往的博客一天一个函数系列中,我们集中精力攻克了一座又一座的spark中那些晦涩的语法,收获了不少知识。如果以战喻,那就是我们的游击战取得了局部的显著效果。但是要想撼动整个spark-streaming大厦,还需要对整个运行时的机制有一个深入性的了解,知道所谓的接口应用,调用都是一些工程性封装好的东西,这些只要经过熟练的训练即可,但是想要更好的运用,就必须从底层了解它的机制。 在深入理解运行时机制之前,我建议大家思考一下这个问题,为什么spark采用的计算模型是以宽依赖为分界线的DAG模式?在我看来有以下几个优势在里面,第一点是按照不同的stage划分,使得计算更加高效,窄依赖诸如x平方,可以直接以pipe的形式进行操作,而宽依赖诸如(x+y)的平方,它需要等父依赖就绪后才能计算,所以这样的划分能够使计算速率最大化。第二点是,由于分布式集群的不可控性,我们的数据可能要随时落盘,这样一来由于我们采用的是stage模式的处理,我们就可以将中间结果保存在磁盘上,而不会发生由于宕机使得数据全部丢失的情况。 基于以上概念,我们来谈谈一些专业术语以及spark运行时的架构。 Terminologies SparkContext SparkContext是整个Spark Application的核...
牧师-Panda 发布于 7个月前 阅读 870 评论 2 点赞 2

你想了解的Hive Query生命周期--钩子函数篇!

一个Hive SQL语句的执行需要经历哪些阶段? 在这些阶段中,我们可以做哪些事来影响它? Hive为我们提供了很多的钩子函数,我们可以怎样利用它为Hive实现扩展?
问津已非少年 发布于 8个月前 阅读 870 评论 3 点赞 2

【干货】Apache Hive 2.1.1 安装配置超详细过程,配置hive、beeline、hwi、HCatalog、WebHCat等组件

    在Docker环境成功搭建了Apache Hadoop 2.8 分布式集群,并实现了NameNode HA、ResourceManager HA之后(详见我的另一篇博文:Apache Hadoop 2.8分布式集群详细搭建过程),接下来将搭建最新稳定版的Apache Hive 2.1.1,方便日常在自己电脑上测试hive配置和作业,同样的配置也可以应用于服务器上。以下是Apache Hive 2.1.1的安装配置详细过程 1、阅读Apache Hive官网说明文档,下载最新版本Hive        Hive是一个基于Hadoop的数据仓库工具,将HDFS中的结构化数据映射为数据表,并实现将类SQL脚本转换为MapReduce作业,从而实现用户只需像传统关系型数据库提供SQL语句,并能实现对Hadoop数据的分析和处理,门槛低,非常适合传统的基于关系型数据库的数据分析向基于Hadoop的分析进行转变。因此,Hive是Hadoop生态圈非常重要的一个工具。        安装配置Apache Hive,最直接的方式,便是阅读 Apache Hive官网的说明文档,能了解到很多有用的信息。Apache Hive 要求JDK 1.7及以上,Hadoop 2.x(从Hive 2.0.0开始便不再支持Hadoop 1.x),Hive 可部署于Linux、Mac、Windows环境。        从官网下载最新稳定版本的 Apache Hive 2.1.1 2、安装配置Apache Hi...
雪饼 发布于 10个月前 阅读 2382 评论 2 点赞 2

【干货】Apache Hadoop 2.8 完全分布式集群搭建超详细过程,实现NameNode HA、ResourceManager HA高可靠性

最近在自己的笔记本电脑上搭建了Apache Hadoop分布式集群,采用了最新的稳定版本2.8,并配置了NameNode、ResourceManager的HA高可用,方便日常对Hadoop的研究与测试工作。详细的搭建过程如下: 1、安装docker,创建docker容器,用于搭建hadoop节点 docker真是个好东西啊,当要在自己的笔记本上搭建分布式集群时,由于CPU、内存、磁盘有限,无法在VMware上虚拟出太多节点,这时使用docker创建几个容器,就能轻松搭建一个分布式集群了。 (1)先在VMware上安装centos6.9,作为宿主机,然后安装docker,具体过程见我另一篇博文:Centos6.9安装docker (2)然后再docker hub中拉取centos镜像,用于创建分布式集群的节点,推荐在docker中安装centos6(docker中的centos7有坑,被坑过,呜呜),具体过程见我另一篇博文:docker中安装centos6 (3)centos镜像准备好后,就开始创建docker容器,用于搭建hadoop的节点 # 创建4个节点,用于搭建hadoop docker run -it --name hadoopcentos1 centos:6 /bin/bash docker run -it --name hadoopcentos2 centos:6 /bin/bash docker run -it --name hadoopcentos3 centos:6 /bin/bash docker run -it --name hadoopcentos4 centos:6 /bin/b...
雪饼 发布于 10个月前 阅读 5061 评论 21 点赞 6

Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.net/xyang81/article/details/52554398可以看更多介绍 Keepalived的介绍可以百度一堆一堆的资料。一定要看看哦。 1.基于上一篇博客总结,再次安装一个虚拟机当backup服务器,这个服务器只安装Keepalived+Nginx即可 2.Master还是上一篇博文的虚拟机,环境是Tomcat+JDK+Nginx+Keepalived 3.每个Nginx服务器都安装Keepalived
小帅帅丶 发布于 11个月前 阅读 6939 评论 5 点赞 6

Elasticsearch 与 Thinkphp 增删改查操作

qq群:486252137
VHUOI 发布于 11个月前 阅读 1415 评论 2 点赞 1 打赏 2

Spark Streaming场景应用-Kafka数据读取方式

## 概述 Spark Streaming 支持多种实时输入源数据的读取,其中包括Kafka、flume、socket流等等。除了Kafka以外的实时输入源,由于我们的业务场景没有涉及,在此将不会讨论。本篇文章主要着眼于我们目前的业务场景,只关注Spark Streaming读取Kafka数据的方式。 Spark Streaming 官方提供了两种方式读取Kafka数据: - 一是Receiver-based Approach。该种读取模式官方最先支持,并在Spark 1.2提供了数据零丢失(zero-data loss)的支持; - 一是Direct Approach (No Receivers)。该种读取方式在Spark 1.3引入。 此两种读取方式存在很大的不同,当然也各有优劣。接下来就让我们具体剖解这两种数据读取方式。 ## 一、Receiver-based Approach 如前文所述,Spark官方最先提供了基于Receiver的Kafka数据消费模式。但会存在程序失败丢失数据的可能,后在Spark 1.2时引入一个配置参数`spark.streaming.receiver.writeAheadLog.enable`以规避此风险。以下是官方的原话: > under default configuration, this approach can lose data under failures (see receiver reliability. To ensure zero-data loss, you have to additionally enable Write Ahead Logs in Spark Streaming (in...
狂奔小蜗牛 发布于 11个月前 阅读 3481 评论 3 点赞 3 打赏 2

CentOS7搭建 Hadoop + HBase + Zookeeper集群

本文主要介绍搭建Hadoop、HBase、Zookeeper集群环境的搭建
kolbe 发布于 11个月前 阅读 5992 评论 15 点赞 20 打赏 1

在Ignite上运行微服务:第三部分

本文是系列文章的最后一篇,这个系列会详细描述如何使用像Ignite这样的内存数据网格(IMDG)技术来构建容错和可扩展的微服务解决方案。
李玉珏 发布于 12个月前 阅读 1738 评论 2 点赞 4 打赏 1

开源中国用户分析

加入开源中国也有超过三年的时间了,觉得开源中国已经越办越好了,突然很想知道它究竟有多好,我是不是开源中国最老的用户,我有176个开源中国的积分能够排名第几,带着这些问题,我抓取了部分开源中国的用户信息,做了一个简单的分析。 数据获取 要获得用户数据,可以通过开源中国的网页来进行。这个是我的主页面 这个页面包含了用户的基本信息,包括用户名,积分,粉丝,关注等等。 点击粉丝链接可以获得所有的粉丝的情况 然后我们就可以通过这些链接,迭代的找到所有相关连的数据了。 工具选取 这次的数据抓取我选用了requests和pyquery requests是一个非常好用的python的http/rest的客户端,比之python自带的urllib要好用很多,推荐使用。 pyquery是用来解析和操纵html和DOM文档,提供类似jquery的语法,比诸如beatifulSoap要好用不少,尤其如果你是一个前段开发者,熟悉jquery,那就更方便了。大家可以参考我的另一篇博客了解更多的背景信息。 爬取网页数据 为了抓取网页的内容,我们可用chrome自带的工具来查看网页的DOM结构: 核心的代码如下: def get_user_info(url): try: r = requests.get(url + "/fans", headers=headers) doc = pq(r.t...
naughty 发布于 1年前 阅读 3901 评论 53 点赞 18

Spark 1.6.1分布式集群环境搭建

本文展示了在之前搭建的Hadoop分布式集群的基础上如何搭建Spark分布式集群环境。
JackieYeah 发布于 2年前 阅读 8018 评论 6 点赞 9
顶部