开源中国

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

It appears you’re using an unsupported browser

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

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

「华为云」云中优选惠,全场低至2折,6.19-6.30开抢,签到抽P20

华为云年中钜惠,注册抽免费高配(2核4G)云服务器,单人成团2折起抢购热销云产品;云服务器、数据库、安全防护、大数据等150+云产品,更有精彩好礼送不停!
华为云

RuiJi.Net .NET 开源爬虫框架

项目地址 https://github.com/zhupingqi/RuiJi.Net https://gitee.com/zhupingqi/RuiJi.Net 文档 http://www.ruijihg.com/archives/ruijinet/getting-started RuiJi.Net 爬虫框架 讨论群 545931923 RuiJi.Net RuiJi.Net 是一个C#开发的分布式抓取框架 RuiJi.Net 支持自托管,具有分布式抓取,提取和自管理Cookie RuiJi.Net 支持服务器端IP轮询访问及使用代理服务器访问(未完成) Notice 项目正在开发中 Features 抓取端 Feature Support webheader custom method get/post auto redirection support cookie managed/custom service point ip auto/custom Bind encoding auto detect/by specify response raw/string proxy future additions 提取器 Feature Support selector css/xpath/regex/json/text range/exclude text/clear extrac structure block/tile/meta jsonconvert extractblock 关于提取结构 示例 直接使用RuiJi.Net.Core var crawler = new IPCrawler(); var request = new Request("http://www.ruijihg.com/%e5%bc%80%e5%8f%91/"); var response = crawler.Request(request); var content = response.Data.ToString(); ...
朱平齐 发布于 2周前 阅读 181 评论 5 点赞 1

[Spring Cloud Task]6 Spring Batch批处理应用设计原则

# 概述 本文是Spring Cloud Task系列的第五篇文章,如果你尚未使用过Spring Cloud Task,请 移步[spring cloud task1 简介与示例](http://www.jianshu.com/p/fb2e973fb325)。 本文主要讲述的是Spring的另一个核心子项目 Spring Batch 批处理应用的一些设计技巧和原则。这些技巧分别涉及 # 原则与技巧 ### 应用数据库设计原则 多分区批处理应用通常会用到数据库表分表。分表的设计是选取某个索引列作为分表的关键字,将有不同关键字的数据分别存储在不同物理数据库(表)。数据分表架构应有一个中心数据仓库(表),存储表分区参数等元数据。中心数据仓库(表)一般由单个表(非分区)组成,记录所有表分区的信息。有了中心数据仓库(表),数据分表架构才具有灵活性和可维护性。 中心数据仓库(表)的分区信息表所存储的数据通常是静态的,且只有DBA才有维护的权限。分区信息表的每行都包含一个表分区的信息(或者批处理应用实例的信息),分区信息表应该有代表应用编号的列(program_id ),分区逻辑编号( logical _id)以及要处理的数据分区主键最大值和分区主键最小值等信息。 在应用启动时,控制程序会把应用编号和分区编号传递给应用。如果使用关键列分表的方法,控制程序...
为为02 发布于 2周前 阅读 344

Kubernetes存储系统-NFS Server的Helm部署

Kubernetes存储系统-NFS Server的Helm部署 本文翻译根据 https://github.com/kubernetes/charts/tree/master/stable/nfs-server-provisioner 本文地址 https://my.oschina.net/u/2306127/blog/1820434,By openthings,2018.05.29. 其它参考: Helm Charts仓库,https://github.com/kubernetes/charts 本文用到的yaml文件,https://github.com/openthings/kubernetes-tools/tree/master/nfs kunbernetes存储系统-基于NFS的PV服务,https://my.oschina.net/u/2306127/blog/1819620 Jupyter Hub on Kubernetes Part II: NFS ,https://my.oschina.net/u/2306127/blog/1818470 NFS Server Provisioner 是Kubernetes源码外部的动态存储提供者,底层是通过NFS(网络文件系统)来提供的。你可以通过它快速地部署一个几乎可以在任何地方使用的网络共享存储。 该Helm chart 将会部署一个Kubernetes的 external-storage projects nfs 提供者,包含一个内建的NFS server,但是不会连接到一个已经存在的NFS server上(可以通过PV直接使用)。连接到已有的 NFS Server可以通过 NFS Client Provisioner 来访问。 $ helm install stable/nfs-server-provisioner 警告:上面的命令按照缺省...
openthings 发布于 3周前 阅读 197

Kafka基于topic的分区设计

1.若没有分区,一个topic对应的消息集在分布式集群服务组中,就会分布不均匀,即可能导致某台服务器A记录当前topic的消息集很多,若此topic的消息压力很大的情况下,服务器A就可能导致压力很大,吞吐也容易导致瓶颈。 有了分区后,假设一个topic可能分为10个分区,kafka内部会根据一定的算法把10分区尽可能均匀分布到不同的服务器上,比如:A服务器负责topic的分区1,B服务器负责topic的分区2,在此情况下,Producer发消息时若没指定发送到哪个分区的时候,kafka就会根据一定算法上个消息可能分区1,下个消息可能在分区2。当然高级API也能自己实现其分发算法。 ============================================================= 1.kafka为什么要在topic里加入分区的概念? topic是逻辑的概念,partition是物理的概念,对用户来说是透明的。producer只需要关心消息发往哪个topic,而consumer只关心自己订阅哪个topic,并不关心每条消息存于整个集群的哪个broker。 为了性能考虑,如果topic内的消息只存于一个broker,那这个broker会成为瓶颈,无法做到水平扩展。所以把topic内的数据分布到整个集群就是一个自然而然的设计方式。Partition的引入就是解决水平扩展问题的一个方案...
键盘上跳舞 发布于 3周前 阅读 547

Apache Flink 端到端(end-to-end)Exactly-Once特性概览 (翻译)

## Apache Flink 端到端(end-to-end)Exactly-Once特性概览 本文是flink博文的翻译,原文链接[https://flink.apache.org/features/2018/03/01/end-to-end-exactly-once-apache-flink.html](https://flink.apache.org/features/2018/03/01/end-to-end-exactly-once-apache-flink.html) 2017年12月份发布的Apache Flink 1.4版本,引进了一个重要的特性:TwoPhaseCommitSinkFunction (关联Jira[https://issues.apache.org/jira/browse/FLINK-7210](https://issues.apache.org/jira/browse/FLINK-7210)) ,它抽取了两阶段提交协议的公共部分,使得构建端到端Excatly-Once的Flink程序变为了可能。这些外部系统包括Kafka0.11及以上的版本,以及一些其他的数据输入(data sources)和数据接收(data sink)。它提供了一个抽象层,需要用户自己手动去实现Exactly-Once语义。 如果仅仅是使用,可以查看这个文档[https://ci.apache.org/projects/flink/flink-docs-release-1.4/api/java/org/apache/flink/streaming/api/functions/sink/TwoPhaseCommitSinkFunction.html](https://ci.apache.org/projects/flink/flink-docs-release-1.4/api/java/org/apache/flink/streaming/api/fu...
moyiguke 发布于 3周前 阅读 254

Centos 7+CDH5.7.2全部署流程

Centos 7+CDH5.7.2全部署流程 一、前期准备 1、虚拟机配置     这个配置是我在网上看到的,我就借用了这个配置:     主节点:8g内存、硬盘80g     从节点:2g内存、硬盘80g     安装系统的时候,我建议将IP和主机名都给配置好,这样就省的在系统中进行配置了,当然下面也有在系统中配置的方法。虚拟机系统安装可以参见:虚拟机:CentOS 7系统安装     所以如果你要使用虚拟机来完成这个配置的话,那么,你的主机的配置内存就不能低于16G了。而且还要找一个盘符较大的磁盘空间,不然到后面操作CDH的时候会很尴尬,我第一次就被卡在了硬盘空间不足上,然后又重新找了一个较大的盘符进行了重新安装,包括虚拟机系统。 2、软件版本     1.JDK版本:jdk-8u131-linux-x64.tar.gz     2.Scala版本:scala-2.11.0.tgz     以上两个包建议使用rpm或者yum安装,这样可以省点事,不过我是使用的这两个包。     3.jdbc连接包:mysql-connector-java-5.1.38-bin.jar     4.MySQL相关包:     MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm     MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm     5.CDH安装相关的包:     ...
星汉 发布于 4周前 阅读 674 评论 3 点赞 1

Hadoop问题:DataNode进程不见了

DataNode进程不见了 问题描述     最近配置Hadoop的时候出现了这么一个现象,启动之后,使用jps命令之后是这样的:     看不到DataNode进程,但是能够正常的工作,是不是很神奇啊?     在一番百度谷歌之后,得出了结论:     我在启动Hadoop之前和启动之后,曾经多次使用如下命令,针对NameNode进行格式化: hadoop namenode -format     这个问题,还不是你直接多次格式化造成的,而是你格式化之后,启动了Hadoop,然后将Hadoop关闭,重新格式化,再启动Hadoop造成的,这个时候你就发现,DataNode线程在jps命令中消失了,还能正常使用,就如我开头的那张图一样。造成这个问题的根源,是NameNode和DataNode的版本号不一致所致。这个问题不仅仅会出现在伪分布式,完全分布式中也会出现。这里以伪分布式进行展示。     如下是正常的两个文件的信息。     NameNode VERSION文件信息: namespaceID=51628800 clusterID=CID-97bb16dc-c439-427c-9841-5e6e4667cb65 cTime=0 storageType=NAME_NODE blockpoolID=BP-1918730739-172.17.241.131-1526803461127 layoutVersion=-63     DataNode VERSION文件信息: storageID=DS-4281731b-7a44-4c86-8844-e1927a4...
星汉 发布于 1个月前 阅读 136 评论 9 点赞 1

[Spring Cloud Task]4 Spring Batch批处理探究

# 概述 本文是Spring Cloud Task系列的第四篇文章,如果你尚未使用过Spring Cloud Task,请 移步[spring cloud task1 简介与示例](http://www.jianshu.com/p/fb2e973fb325)。 本文主要讲述的是Spring的另一个核心子项目 Spring Batch,一个轻量级的综合的批处理框架。框架主要为规范、简化企业级具有健壮性要求的重要日常任务。 Spring Batch为大批量数据处理提供很多可重用的核心组件,包括日志、追踪、事务管理、任务处理分析、任务重启、跳读以及资源管理器。另外它还提供了更为先进的技术服务与特性,如通过最优和分区技术来支持超大规模数据的高性能批处理。总之,无论是简单的,还是复杂的大数据量的处理任务,都可以利用该框架为信息处理提供可扩展的支持。 Spring Batch有以下特性: * 事务管理器 * 任务块处理 * 声明式I/O * Start/Stop/Restart状态控制 * Retry/Skip 任务重试与跳过 * 管理员web操作接口(需要依赖Spring Cloud Data Flow) # 详情 在企业级应用中许多关键任务都需要批处理操作,需求大致可以分为如下几类: * 自动化对大批量数据进行复杂处理。这些任务大部分都是基于时间事件驱动的无人值守任务(如月度统计、通知、通信任务)。 * 在超大数据...
为为02 发布于 1个月前 阅读 255

在浏览器中进行深度学习:TensorFlow.js (六)构建一个卷积网络 Convolutional Network

在上一篇中,我们介绍了了用TensorflowJS构建一个神经网络,然后用该模型来进行手写MINST数据的识别。和之前的基本模型比起来,模型的准确率上升的似乎不是很大。(在我的例子中,验证部分比较简单,只是一个大致的统计)甚至有些情况下,如果参数选择不当,训练效果还会更差。 卷积网络,也叫做卷积神经网络(con-volutional neural network, CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。例如时间序列数据(可以认为是在时间轴上有规律地采样形成的一维网格)和图像数据(可以看作是二维的像素网格)。对于MINST手写数据来说,应用卷积网络会不会是更好的选择呢? 先上图: 代码见Codepen 该图是我应用CNN对MINST数据进行训练的结果,准确率在97%,可以说和之前的模型来比较,提高显著。要知道,要知道在获得比较高的准确率后,要提高一点都是比较困难的。那我们就简单的看看卷积网络是什么,他为什么对于手写数据的识别做的比其他模型的更好? CNN的原理实际上是模拟了人类的视觉神经如何识别图像。每个视觉神经只负责处理不同大小的一小块画面,在不同的神经层次处理不同的信息。 卷积和核 大家可能有用过Photoshop的经验,Photoshop提供很多不同类型的...
naughty 发布于 1个月前 阅读 1461 评论 12 点赞 4

hadoop中运行wordcount

上一节我们已经在[ubuntu中安装好了hadoop集群](https://my.oschina.net/blueyuquan/blog/1811442),这一篇就在搭建好的hadoop中运行一个国际惯例wordcount程序, * 一是可以验证我们hadoop集群是否真的搭建成功 * 二是顺便熟悉一下hadoop程序的运行流程 ![输入图片说明](https://static.oschina.net/uploads/img/201805/14110234_JGYv.png "在这里输入图片标题") # 1.在本地 创建一个wordcount文件 ``` root@master:~# vim wordcount.txt root@master:~# cat wordcount.txt hello world hello ``` # 2.将这个文件上传到hdfs中 ``` root@master:~# hadoop dfs -put ./wordcount.txt /firstTestDir DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. root@master:~# hadoop dfs -ls / DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it. Found 2 items drwxr-xr-x - root supergroup 0 2018-05-14 10:03 /firstTestDir drwx------ - root supergroup 0 2018-05-14 09:42 /tmp root@master:~# hadoop dfs -ls /firstTestDir DEPRECATED: Use of thi...
蓝色雨全 发布于 1个月前 阅读 152

SparkSQL简介及入门

SparkSQL简介及入门 一、概述     Spark为结构化数据处理引入了一个称为Spark SQL的编程模块。它提供了一个称为DataFrame(数据框)的编程抽象,DF的底层仍然是RDD,并且可以充当分布式SQL查询引擎。 1、SparkSQL的由来     SparkSQL的前身是Shark。在Hadoop发展过程中,为了给熟悉RDBMS但又不理解MapReduce的技术人员提供快速上手的工具,Hive应运而生,是当时唯一运行在hadoop上的SQL-on-Hadoop工具。但是,MapReduce计算过程中大量的中间磁盘落地过程消耗了大量的I/O,运行效率较低。     后来,为了提高SQL-on-Hadoop的效率,大量的SQL-on-Hadoop工具开始产生,其中表现较为突出的是:     1)MapR的Drill     2)Cloudera的Impala     3)Shark     其中Shark是伯克利实验室Spark生态环境的组件之一,它基于Hive实施了一些改进,比如引入缓存管理,改进和优化执行器等,并使之能运行在Spark引擎上,从而使得SQL查询的速度得到10-100倍的提升。       但是,随着Spark的发展,对于野心勃勃的Spark团队来说,Shark对于hive的太多依赖(如采用hive的语法解析器、查询优化器等等),制约了Spark的One Stack rule them all的既定方针,制...
星汉 发布于 1个月前 阅读 325

Apache Cassandra和Apache Ignite:分布式数据库的明智之选

有时,Cassandra和Ignite配合得很好,但是有时,选择一个解决方案更好。
李玉珏 发布于 1个月前 阅读 274 评论 6 点赞 1

用500行纯前端代码在浏览器中构建一个Tableau

在Gartner最新的对商务智能软件的专业分析报告中,Tableau持续领跑。Microsoft因为PowerBI表现出色也处于领导者象限。而昔日的领导者像SAP,SAS,IBM,MicroStrategy等逐渐被拉开了差距。 Tableau因为其灵活,出色的数据表现已经成为BI领域里无可争议的领头羊。而其数据驱动的可视化和核心思想是来自于Leland Wilkinson的The Grammar Of Graphics ,同样受到该思想影响的还有R的图形库ggplot。 在数据可视化开源领域里,大家对百度开发的echarts可谓耳熟能详,echarts经过多年的发展,其功能确实非常强大,可用出色来形容。但是蚂蚁金服开源的基于The Grammar Of Graphics的语法驱动的可视化库G2,让人眼前一亮。那我们就看看如何利用G2和500行左右的纯前端代码来实现一个的类似Tableau的数据分析功能。 演示参见 https://codepen.io/gangtao/full/OZvedx/ 代码参见 https://gist.github.com/gangtao/e053cf9722b64ef8544afa371c2daaee  数据加载 第一步是加载数据: 数据加载主要用到了三个库: axios  基于Promise的HTTP客户端 alasql 基于JS的开源SQL数据库 jquery datatable JQuery的数据表格插件 数据通过我存放在GitHub中的csv格式的文件,以REST请求的方式来...
naughty 发布于 1个月前 阅读 321 点赞 2

Spark的架构

Spark的架构 1、概述     为了更好地理解调度,先来鸟瞰一下集群模式下的Spark程序运行架构图。   2、角色 1.cluster manager     cluster manager:集群管理器,也就是master,负责集群的资源调度。     比如:为Worker Node分配CPU、内存等资源。并实时监控Worker的资源使用情况。一个Worker Node默认情况下分配一个Executor(进程)。     从图中可以看到sc和Executor之间画了一根线条,这表明:程序运行时,sc是直接与Executor进行交互的。所以,cluster manager只是负责资源的管理调度,而任务的分配和结果处理它不管。 1>Driver Program     负责程序运行的开始和结束。     用户编写的Spark程序称为Driver Program。每个Driver程序包含一个代表集群环境的SparkContext对象,程序的执行从Driver程序开始,所有操作执行结束后回到Driver程序中,在Driver程序中结束。     如果你是用spark shell,那么当你启动Spark shell的时候,系统后台自启了一个Spark驱动器程序,就是在Spark shell中预加载的一个叫作sc的SparkContext对象。如果驱动器程序终止,那么Spark应用也就结束了。 2>SparkContext对象     每个Driver Program里都有一...
星汉 发布于 1个月前 阅读 317

ubuntu中安装hadoop集群

hadoop是由java 语言编写的主从结构分布式计算存储架构 # 准备工作: 1. 操作系统: Ubuntu16.04 2. 软件安装包:jdk-8u171-linux-x64.tar.gz ; hadoop-2.6.5.tar.gz 3. 配置环境:3台虚拟机 master:192.168.122.10 node1 :192.168.122.11 node1 :192.168.122.12 * 前提条件:三台虚拟机已经配置过SSH和主机名,如果没有,请自行百度配置。 # 第一步:安装jdk 因为hadoop是由java编写的,所以底层需要依赖java环境, jdk下载地址,可选择合适的版本 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html **在master上操作** ## 1.下载jdk 用wget下载,如下 ``` root@master:/opt/tar# wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz root@master:/opt/tar# l jdk-8u171-linux-x64.tar.gz ``` ## 2.解压tar包 可以自己先创一个目录来解压方便以后管理,这次我就解压在opt目录下 ``` root@master:/opt/tar# tar -zxvf jdk-8u171-linux-x64.tar.gz -C /opt/ root@master:/opt# l jdk1.8.0_171/ ``` ## 3.将jdk添加到环境变量中 ``` root@master:/opt# vim /etc...
蓝色雨全 发布于 1个月前 阅读 182 点赞 1

Spark框架核心概念

Spark框架核心概念     首先介绍Spark中的核心名词概念,然后再逐一详细说明。     RDD:弹性分布式数据集,是Spark最核心的数据结构。有分区机制,所以可以分布式进行处理。有容错机制,通过RDD之间的依赖关系来恢复数据。     依赖关系:RDD的依赖关系是通过各种Transformation(变换)来得到的。父RDD和子RDD之间的依赖关系分两种:①窄依赖②宽依赖。     ①窄依赖:父RDD的分区和子RDD的分区关系是:一对一。     窄依赖不会发生Shuffle,执行效率高,spark框架底层会针对多个连续的窄依赖执行流水线优化,从而提高性能。例如map、flatMap等方法都是窄依赖方法。     ②宽依赖:父RDD的分区和子RDD的分区关系是:一对多。     宽依赖会产生shuffle,会产生磁盘读写,无法优化。     DAG:有向无环图,当一个RDD的依赖关系形成之后,就形成了一个DAG。一般来说,一个DAG,最后都至少会触发一个Action操作,触发执行。一个Action对应一个Job任务。     Stage:一个DAG会根据RDD之间的依赖关系进行Stage划分,流程是:以Action为基准,向前回溯,遇到宽依赖,就形成一个Stage。遇到窄依赖,则执行流水线优化(将多个连续的窄依赖放到一...
星汉 发布于 1个月前 阅读 171

在浏览器中进行深度学习:TensorFlow.js (五)构建一个神经网络

这一次我终于可以开始真正的深度学习了,从一个神经网络开始。 神经网络(Neural Network)是深度学习的基础,基本概念包括:神经元,层,反向传播等等。如果细讲我估计没有五到十篇文章那是讲不完的。简单说它模拟了大脑神经元工作的方式,利用把多个神经元组合成网络结构的模型来对数据进行分类。 神经网络是一个多层结构的反馈网络,包括输入,输出和隐藏层。 每一层由若干个神经元组成。 整个网络利用反向传播,反馈输出的结果和期望值的差异来进行学习。 可以理解网络是一个函数ouput=function(input), 随着网络层次的加深,神经网络可以模拟一个非常复杂的非线性函数,当然学习的成本就更高,因为要学习的参数会随着层数和每一层的神经元的个数增加而增加。 TensorFlowJs提供了对神经网络/深度神经网络提供了很好的支持。包括:模型 tf.model, 层 tf.layer。 下面我们就看看如果利用TensorFlowJS来构建一个简单的神经网络来进行MINST数据的手写识别。 构建网络 function nn_model() { const model = tf.sequential(); model.add(tf.layers.dense({ units: 32, inputShape: [784] })); model.add(tf.layers.dense({ units: 256 })); model.add(t...
naughty 发布于 1个月前 阅读 377

Spark Streaming实时计算海量用户UV

# 提出需求 实时统计业务系统(web,APP之类)的访问人数,即所谓UV,或者DAU指标. 这个需求怕是流计算最最最常见的需求了. 计算UV的关键点就在于去重,即同一个人访问两次是只计一个UV的.在离线计算中统计UV比较容易想到的方法就是用group或distinct机制来去重.但是在实时计算场景,还用group就不太科学了,一个是全量数据的group是比较费时的,第二个是全量数据的group是很费内存和CPU的.特别是当用户量巨大的时候,还要做到秒级更新就更难了. 总结起来,需求就是:海量用户场景UV实时计算. # 接受挑战 不难发现,问题的主要难点就是**去重**. Spark Streaming目前没有给出内置方案(这个其实可以有),但是海量数据去重问题早就有解决办法了. 所以Spark Streaming程序完全可以利用其他系统的现有方案解决去重问题,比如Redis. ## Redis的海量去重计数方案 ### Bitmap方案 所谓的Bitmap就是用一个bit位来标记某个元素对应的Value,比如ID为2的用户,就用第2个bit位来表示,然后用该位的值来表示该用户是否访问过.如果要计算UV,那就只要数一下有多少个1就行啦. 假设我们有40亿用户,使用Bitmap需要2^32个bit位,算下来也就500M左右. 你可能没想到的是,Redis中最常用的数据结构string,就可以实现b...
Liam8 发布于 2个月前 阅读 378 评论 3 点赞 1

Storm介绍及原理

  Storm介绍及原理 一、概述     Storm是一个开源的分布式实时计算系统,可以简单、可靠的处理大量的数据流。     Storm有很多使用场景:如实时分析,在线机器学习,持续计算,分布式RPC,ETL等等。     Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个结点每秒可以处理数以百万计的消息)。     Storm的部署和运维都很便捷,而且更为重要的是可以使用任意编程语言来开发应用。   二、组件 1、结构     storm结构称为topology(拓扑),由stream(数据流)、spout(数据流的生成者)、bolt(数据流运算者)组成。 下图为官网提供的模型:       不同于Hadoop中的job,Storm中的topology会一直运行下去,除非进程被杀死或取消部署。 2、Stream     Storm的核心数据结构是tuple(元组),本质上是包含了一个或多个键值对的列表。Stream是由无限个的tuple组成的序列。 3、spout     spout连接数据源,将数据转化为tuple,并将tuple作为数据流进行发射。开发一个spout的主要工作就是利用API编写代码从数据源消费数据流。     spout的数据源可以有很多种来源:     web或者移动程序的点击流...
星汉 发布于 2个月前 阅读 232 点赞 1

Kafka的存储机制以及可靠性

Kafka的存储机制以及可靠性 一、kafka的存储机制 kafka通过topic来分主题存放数据,主题内有分区,分区可以有多个副本,分区的内部还细分为若干个segment。 所谓的分区其实就是在kafka对应存储目录下创建的文件夹,文件夹的名字是主题名加上分区编号,编号从0开始。 1、segment 所谓的segment其实就是在分区对应的文件夹下产生的文件。 一个分区会被划分成大小相等的若干segment,这样一方面保证了分区的数据被划分到多个文件中保证不会产生体积过大的文件;另一方面可以基于这些segment文件进行历史数据的删除,提高效率。 一个segment又由一个.log和一个.index文件组成。 1..log .log文件为数据文件用来存放数据分段数据。 2..index .index为索引文件保存对对应的.log文件的索引信息。 在.index文件中,保存了对对应.log文件的索引信息,通过查找.index文件可以获知每个存储在当前segment中的offset在.log文件中的开始位置,而每条日志有其固定格式,保存了包括offset编号、日志长度、key的长度等相关信息,通过这个固定格式中的数据可以确定出当前offset的结束位置,从而对数据进行读取。 3.命名规则 这两个文件的命名规则为: partition全局的第一个...
星汉 发布于 2个月前 阅读 399

什么是大数据及大数据技术?

一方面,从技术角度看,大数据只是一种方法;一方面从现实角度看,大数据是一种新产生的业态,并且还处于初级阶段;一方面是从规模上看,体量大,范围广;一方面是从本质上看,大数据就是能够采集到的全部生命活动、非生命活动产生的记录所生成的数据,并通过技术手段存储、传输、计算、统计、分析、利用及提取有价值的信息的整个活动过程及所采用到的技术的整体,包括宇宙本身及活动,生命体自身、生存环境及全部生命及非生命活动所产生的记录所生成的数据。 大数据学习QQ群:716581014 关于因果关系与相关关系的问题。所谓相关关系思维,例如可以通过环境数据反映环境中的生命体的一些情况,并通过这些情况可以反映出其他方面的情况,或者通过某种方法计算、统计、分析之后预测到有因果关系或存在相关关系的某种领域的情况;反过来,也可以通过生命体自身的生理特征数据或者行为特征数据,反映出自然环境存在的状况,或者提取某种信息以预测到其他存在因果关系或相关关系的事件或领域存在状况,或者是将会发生的状况。 应用于商业,可以通过某种历史数据或现实数据,预测到某地区,或某类人群,或某段时间,人们的购买力,消费欲望指数,成交比例,成交金额等等。 应用于...
董黎明 发布于 3天前 阅读 12

Hadoop Yarn调度器的选择和使用

# 一、引言 Yarn在Hadoop的生态系统中担任了资源管理和任务调度的角色。在讨论其构造器之前先简单了解一下Yarn的架构。 ![](https://upload-images.jianshu.io/upload_images/11678900-b7f645d304b0f458.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 上图是Yarn的基本架构,其中ResourceManager是整个架构的核心组件,它负责整个集群中包括内存、CPU等资源的管理;ApplicationMaster负责应用程序在整个生命周期的任务调度;NodeManager负责本节点上资源的供给和隔离;Container可以抽象的看成是运行任务的一个容器。本文讨论的调度器是在ResourceManager组建中进行调度的,接下来就一起研究一下包括FIFO调度器、Capacity调度器、Fair调度器在内的三个调度器。 # 二、FIFO调度器 ![](https://upload-images.jianshu.io/upload_images/11678900-59fdef5c5986a263.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 上图为FIFO调度器的执行过程示意图。FIFO调度器也就是平时所说的先进先出(First In First Out)调度器。FIFO调度器是Hadoop最早应用的一种调度策略,可以简单的将其理解为一个Java队列,它的含义在于集群中同时只能有一个作业在运行。将所...
p柯西 发布于 13小时前

SpringCloud(Data Flow)

dataflow-server
赵-猛 发布于 56分钟前

「华为云」云中优选惠,全场低至2折,6.19-6.30开抢,签到抽P20

华为云年中钜惠,注册抽免费高配(2核4G)云服务器,单人成团2折起抢购热销云产品;云服务器、数据库、安全防护、大数据等150+云产品,更有精彩好礼送不停!
华为云

用PySpider搜集2017年高校招生章程

个人认为PySpider是一个十分容易上手而且功能强大的Python爬虫框架。支持多线程爬取、JS动态解析、出错重试、定时爬取等等的功能。最重要的是,它通过web提供了可操作界面,使用非常人性化。 最近由于工作的原因,秉承这服务广大高考考生和家长的态度ヾ(≧O≦)〃嗷~,我搜集了2017年2000多所高校的高校招生章程。 安装PySpider 首先先要安装pip跟phantomjs: 1 sudo apt install python-pip phantomjs phantomjs是一个基于webkit内核的无界面浏览器,提供JavaScript API接口。在PySpider中用于JS动态解析。 之后可以用pip直接安装PySpider: 1 sudo pip install pyspider 通过以下指令就可以启动PySpider啦: 1 pyspider all 打开浏览器访问http://localhost:5000可以看到web界面: 之后点击Create可以新建一个爬虫项目: 之后就可以看到一个爬虫操作的页面: 页面分开为两半。左半边是爬虫结果预览,右半边是爬虫代码编写区域。 左侧上半部分是爬虫的每个网络请求的解析。下半部分是爬虫页面浏览。 最下面有5个按钮: enable css selector helper按钮:点击它启动css selector helper。用鼠标点击页面的元素可以很方便地生成该元素的css选择器表达式; web: 点击可以查看抓取的...
临江仙卜算子 发布于 1个月前 阅读 10

DataNode Pause Duration 

线上Hadoop环境节点报DataNode Pause Duration,页面错误信息如下: Pause Duration  Average time spent paused was 44.4 second(s) (74.00%) per minute over the previous 5 minute(s). Critical threshold: 60.00%. 对应该节点的jvm heap使用情况如下: 翻看cloudera官网,找到该选项 DataNode Pause Duration 解释如下: DataNode Pause Duration This DataNode health test checks that the DataNode threads are not experiencing long scheduling pauses. The test uses a pause monitoring thread in the DataNode that tracks scheduling delay by noting if it is run on its requested schedule. If the thread is not run on its requested schedule, the delay is noted and considered pause time. The health test checks that no more than some percentage of recent time is spent paused. A failure of this health test may indicate that the DataNode is not getting enough CPU resources, or that it is spending too much time doing garbage collection. Inspect the DataNode logs for any pause monitor output and check garbage collec...
刀锋 发布于 16小时前

2018年大数据安全性发展的趋势和商业价值方向的展望

如今,数据是已成为组织最大的资产之一,数据对组织的重要性将日益增长。相信大数据的成长也将是飞速而澎湃的,基于中国企业的特殊创新精神,我们很期待看到大数据的发展和成长。 数字化变化的速度如此之快,以至于人们难以准确预测趋势。然而,可以肯定的是,大数据将继续影响商业世界的每一个角落。而且,如果人工智能和物联网的进步将继续占主导地位,那么人们很可能会看到更多的企业比以往更容易受到数据驱动。 大数据 数据只在可访问时才有用,但数据访问和安全性之间必须保持平衡。工作人员可能是组织的数据安全面临的最大风险,其责任将超越其领导团队。随着黑客利用向工作人员使用自助服务数据的转变,企业将再次成为网络攻击的对象。 企业会采取传统的商业智能方法,严格控制数据和报表,但这会导致分析的采用率降低,从而导致不明智的决策。现代商业智能将越来越受到青睐,因为它促进了数据治理,并有助于为自助式分析创建安全可靠的环境,从而产生准确、可访问和审核的仪表板和报告。   数据可视化工具不仅易于提取和学习,还可以根据个人需求定制数据,因此每个成员可以关注部门至关重要的细节,节省了时间和精力。每个获得这些工具的用户都可以在一个操作视图...
董黎明 发布于 4小时前

Kubernetes加入新节点,经验总结

Kubernetes主控节点建立后,就可以随时添加更多的工作节点进去构建更大的集群(minikube设计为单机开发使用,不能添加工作节点),容器实例可以在所有符合条件的node上调度运行,这是Kubernetes最为强大的功能。本文介绍在K8S集群添加node工作节点的方法。
openthings 发布于 1个月前 阅读 109

时间同步-ntp服务器的搭建(docker版本)

# introduce 用于构建cdm所需要的ntp服务器镜像,实现宿主机和ntpserver同步,ntpserver于ntpclient的同步 # 项目地址 [项目github](https://github.com/osenlin/docker-ntp) # image build ```shell docker image build -t docker.finogeeks.club/linzhihuang/fino-cdm-ntp:v2.0 ``` # run ```shell docker run --rm -it docker.finogeeks.club/linzhihuang/fino-cdm-ntp:v2.0 ``` # run cluster ```shell docker compose up ``` ## config 我们通过下面的几步来完成ntp服务端和客户端的搭建 1. 在server的服务机器上我们通过 ```yaml volumes: - /etc/localtime:/etc/localtime:ro ``` 让docker和服务器的时间保持一致 2. 在server的服务上还需要配置/etc/ntp.conf,方式如下shell ```shell rm /etc/ntp.conf cat >> /etc/ntp.conf <> /etc/ntp.conf echo "restrict ${NTP_SERVER_HOSTNAME} " >> /etc/ntp.conf ```...
osenlin 发布于 2周前 阅读 7

大数据分析的下一代架构--IOTA

IOTA是什么?你是否为下一代大数据架构做好准备? 经过这么多年的发展,已经从大数据1.0的BI/Datawarehouse时代,经过大数据2.0的Web/APP过渡,进入到了IOT的大数据3.0时代,而随之而来的是数据架构的变化。 ▌Lambda架构 在过去Lambda数据架构成为每一个公司大数据平台必备的架构,它解决了一个公司大数据批量离线处理和实时数据处理的需求。一个典型的Lambda架构如下: 数据从底层的数据源开始,经过各种各样的格式进入大数据平台,在大数据平台中经过Kafka、Flume等数据组件进行收集,然后分成两条线进行计算。一条线是进入流式计算平台(例如 Storm、Flink或者Spark Streaming),去计算实时的一些指标;另一条线进入批量数据处理离线计算平台(例如Mapreduce、Hive,Spark SQL),去计算T+1的相关业务指标,这些指标需要隔日才能看见。 Lambda架构经历多年的发展,其优点是稳定,对于实时计算部分的计算成本可控,批量处理可以用晚上的时间来整体批量计算,这样把实时计算和离线计算高峰分开,这种架构支撑了数据行业的早期发展,但是它也有一些致命缺点,并在大数据3.0时代越来越不适应数据分析业务的需求。缺点如下: ● 实时与批量计算结果不一致引起的数据口径问题...
果树啊 发布于 2个月前 阅读 92

使用jMeter构造大量并发HTTP请求进行微服务性能测试

比如我开发好了一个微服务,想测试其在大并发请求下的性能表现如何。 比较方便的一个做法是使用工具[jMeter](http://jmeter.apache.org/)来构造这些请求。 创建一个新的工程: ![](https://upload-images.jianshu.io/upload_images/2085791-440a792c1ffcfca4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 创建一个新的Thread Group,下图意思是这个工程会使用3个线程同时发请求,每个请求执行一次。 ![](https://upload-images.jianshu.io/upload_images/2085791-01ecdcffe380b209.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 在这个Thread Group里创建一个新的HTTP请求,维护如下属性。 * Protocol: https * Server name: * Http request method: GET * Http path: /sap/c4c/odata/v1/c4codata/AccountCollection/ * Use KeepAlive: 不选择 ![](https://upload-images.jianshu.io/upload_images/2085791-2c854f2e900a8aa2.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 在参数标签页,维护参数名称$search, 值为'Wang'。这个请求的意思是使用Odata请求查询账号名称为'Wang'的实例。 创建一个新的HTTP Header Manager,维护执行这个...
JerryWang_SAP 发布于 1个月前 阅读 21

什么叫大数据 大数据的概念和价值

1、大数据定义  对于“大数据”(Big data)研究机构Gartner给出了定义,“大数据”是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力 的海量、高增长率和多样化的信息资产。 大数据学习群:716581014   大数据技术的战略意义不在于掌握庞大的数据信息,而在于对这些含有意义的数据进行专业化处理。换言之,如果把大数据比作一种产业,那么这种产业实现盈利的关键,在于提高对数据的“加工能力”,通过“加工”实现数据的“增值”。 从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分。大数据必然无法用单台的计算机进行处理,必须采用分布式架构。它的特色在于对海量数据进行分布式数据挖掘,但它必须依托云计算的分布式处理、分布式数据库和云存储、虚拟化技术。 随着云时代的来临,大数据(Big data)也吸引了越来越多的关注。《著云台》的分析师团队认为,大数据(Big data)通常用来形容一个公司创造的大量非结构化数据和半结构化数据,这些数据在下载到关系型数据库用于分析时会花费过多时间和金钱。大数据分析常和云计算联系到一起,因为实时的大型数据集分析需要像MapReduce一样的框架来向数十、数百或甚至数千的电脑分配工作。...
董黎明 发布于 1周前 阅读 9

HBase原理解析

1. HBase元数据       HBase 表的元数据存储于 hbase:meta表中,HBase默认会 创建meta表,它属于系统命名空间hbase下面的表,.META. 结构如下 通过这个表可以清晰的查找表的region对应的元数据信息和服务器地址。 然而meta也是HBase里面的表,meta的数据的元数据存放在哪呢?HBase会使用ZooKeeper来存放 -ROOT-表的元数据。默认的路径是/hbase/root-region-server ,这个地址下面存放了-ROOT-表的地址的RegionServer地址,-ROOT-表的的结构和.META.表结构一致,唯一不同是,-ROOT-表存储的是.META.表的数据。-ROOT-表结构如下:        数据定位流程 : Zookeeper ->  -ROOT- -> .META.  ->  User_Table 2. HBase HFile数据存储格式        详情可见官网      http://hbase.apache.org/book.html#_hfile_format_2 3. HBase 框架图          HMaster的作用 为Region server分配region。 负责Region server的负载均衡。 发现失效的Region server并重新分配其上的region到正常的RegionServer。 HDFS上的垃圾文件回收。 处理schema更新请求。 HRegionServer作用 维护master分配给他的region,处理对这些region的io请求. 负责切分正在运行过程中变的过...
满小茂 发布于 7天前 阅读 6

五月底的数博会,众享比特带你熟悉最新参会指南

中国国际大数据产业博览会作为全球首个大数据主题博览会,已连续成功举办了三届,2017年正式升格为国家级博览会。2018数博会将在于5月26日-29日,在贵阳国际会议展览中心举行。   2018中国国际大数据产业博览会突出“全球视野、国家高度、产业视角、企业立场”的办会理念,坚持“国际化、专业化、高端化、产业化、可持续化”原则,在“数据创造价值 创新驱动未来”的大会主题下,以“数化万物 智在融合”为年度主题,举办“同期两会、一展、一赛及系列活动”。 同期两会 即中国国际大数据产业博览会与中国电子商务创新发展峰会(以下简称电商峰会)同期举办。其中,数博会包含1场高峰会议、开(闭)幕式、8场高端对话、60余场专业论坛,电商峰会包含1场主论坛、8场分论坛、年度盛典以及CEO沙龙活动。 一展 即中国国际大数据产业博览会专业展,展览面积达6万平方米,共设置了国际综合馆、数字应用馆、前沿技术馆、数字硬件馆、国际双创馆、数字体验馆及“一带一路”国际合作伙伴城市展区。 (PS:众享比特在3号馆-前沿技术馆 3101展位哦~) 一赛 即2018中国国际大数据融合创新·人工智能全球大赛。 系列活动 即在数博会期间以企业为主举办的各类活动、大数据发展成果观摩、“数...
众享比特 发布于 1个月前 阅读 17

四个填空题,你会如何回答怎么学大数据?看看阿里的大数据学习!

今天小编逛论坛看见一篇百万阅读量的爆文,里面出了四个填空题,问你:____是铜牌,____是银牌,____是金牌,____是王牌。小编我的答案是:Java是铜牌,Linux是银牌,Hadoop是金牌,学好大数据是王牌。因为Java是学大数据的基础,有基础然后就可以学后续的;最后只有学好大数据这一王牌才能出去找一份好工作。那怎么才能学好大数据呢,下面小编就从阿里云大学得来的,告诉大家该如何学大数据。在这里相信有许多想要学习大数据的同学 长话短说,让我们用实例来告诉你大数据有多么的强大。在这里还是要推荐下我自己建的***大数据学习交流群:784557197***,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),包括我自己整理的一份2018最新的大数据进阶资料和高级开发教程,欢迎进阶中和进想深入大数据的小伙伴加入。 ### 一、Linux基础: 通过Linux的学习,系统的掌握企业级Linux操作系统,能熟练操作与管理Linux系统及运行在Linux系统上的各种应用与服务;如今大数据平台只能部署在Linux环境下。 ![](https://upload-images.jianshu.io/upload_images/11678900-30a34375cbb3a635.png?imageMo...
p柯西 发布于 7天前 阅读 3

Hive历史

Hive产生背景: “云化”过程 1) MapReduce编程十分非常特别的不方便 2) 传统RDBMS人员的需求: SQL来处理大数据         <== Hive诞生了!!!!!!!!! Hive存储结构: 假设数据存放在HDFS: /ruozedata/hadoop/a.txt 1        zhangsan        30 2        ruoze         31 3        jepson        18 rdbms:meta/schema person id:int name:string age:int select id,name from person; 总结:        HDFS上面的文件就是普通的文件,它并没有schema的概念        schema:RDBMS中的表结构        people.txt <== id name age address        sql  ===>  搞定海量数据的统计分析   Hive: SQL on Hadoop 官网: hive.apache.org Hive 是一个使用SQL来操作分布式存储系统上面的大数据集的读写和管理操作的一个客户端,Hive它不是一个集群。 用JDBC去连接Server的话,不应该是走查询统计分析,而是去拿到统计结果,只拿结果,不做计算。   data warehouse: 离线、实时 Structure:半  非   分布式系统:HDFS/S3     问题:HDFS存的是近期的数据         1min:几百G...
GordonNemo 发布于 6天前 阅读 1

基于Kubeadm的Flannel分析

Flannel概述 Flannel是将多个不同子网(基于主机Node)通过被Flannel维护的Overlay网络拼接成为一张大网来实现互联的,通过官方的一张网络拓扑图我们可以对其基本原理一目了然: 值得探讨的是,flannel的这个overlay网络支持多种后端实现,除上图中的UDP,还有VXLAN和host-gw等。此外,flannel支持通过两种模式来维护隧道端点上FDB的信息,其中一种是通过连接Etcd来实现,另外一种是直接对接K8S,通过K8S添加删除Node来触发更新。 Flannel部署常见问题 1. Node状态显示为“NotReady” 我的K8S环境使用kubeadm来容器化运行K8S的各个组件(除kubelet直接运行在裸机上外),当我使用kubeadm join命令加入新的Minion Node到K8S集群中后,通过kubectl get node会发现所有的node都还是not ready状态,这是因为还没有配置好flannel网络。 2. 使用kube-flannel.yml无法创建DaemonSet 我使用的是K8S的1.6.4的版本,然后按照官方的说明,使用kube-flannel.yml来创建flannel deamon set,结果始终报错。正确的姿势是先使用kube-flannel-rbac.yml来创建flannel的ClusterRole并授权。该yml的主要作用是创建名叫flannel的ClusterRole,然后将该ClusterRole与ServiceAccount(flannel)绑定。...
openthings 发布于 4周前 阅读 19

ssh+hadoop+flink+zookpeer+kafka安装

# ssh+hadoop+flink+zookeeper+kafka安装记录 ​ **2018/6/14**----- (当然很多软件不是第一次安装了,治理知识记录一下.) ## SSH 1. `ssh-keygen`一般用户名什么的我都不填的(一路`enter`键完事),前提你把改建的用户建好,权限什么的都弄好.(不推荐root用户,但root用户可省略权限什么的) 2. `cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_key` 3. 注意修改`/etc/hosts`文件 ```shell 192.168.199.99 master 192.168.199.100 slave1 192.168.199.101 slave2 ``` (给windows系统也改了,这样就可以通过主机名直接访问机器了) 4. `ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@master` 5. `ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave1` 6. `ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop@slave2` 7. 测试: `ssh slave1`,`ssh slave2` ## hadoop 1. **hadoop-env.sh** ```shell export JAVA_HOME=/home/hadoop/hadoop/jdk1.8.0_111 ``` 2. **yarn-env.sh** ``` export JAVA_HOME=/home/hadoop/hadoop/jdk1.8.0_111 ``` ​ 3. **slaves** ```4. shell 192.168.199.99 master 192.168.199.100 slave1 192.168.199.101 slave2 ``` 4. **core-site.xml**(需创建一个文件夹) ```shell fs...
xd03122049 发布于 6天前 阅读 10

R语言计算KS值、绘制KS曲线

更多风控建模、大数据分析等内容请关注公众号《大数据风控的一点一滴》 将代码封装在函数PlotKS_N里,Pred_Var是预测结果,可以是评分或概率形式;labels_Var是好坏标签,取值为1或0,1代表坏客户,0代表好客户;descending用于控制数据按违约概率降序排列,如果Pred_Var是评分,则descending=0,如果Pred_Var是概率形式,则descending=1;N表示在将数据按风险降序排列后,等分N份后计算KS值。 PlotKS_N函数返回的结果为一列表,列表中的元素依次为KS最大值、KS取最大值的人数百分位置、KS曲线对象、KS数据框。 代码如下: 1 #################### PlotKS_N ################################ 2 PlotKS_N<-function(Pred_Var, labels_Var, descending, N){ 3 # Pred_Var is prop: descending=1 4 # Pred_Var is score: descending=0 5 library(dplyr) 6 7 df<- data.frame(Pred=Pred_Var, labels=labels_Var) 8 9 if (descending==1){ 10 df1<-arrange(df, desc(Pred), labels) 11 }else if (descending==0){ 12 df1<-arrange(df, Pred, labels) 13 } 14 15 df1$good1<-ifelse(df1$labels==0,1,0) 16 df1$bad1<-ifelse(df1$la...
佛曰不可多说 发布于 4周前 阅读 16

Centos 7+CDH5.7.2全部署流程

Centos 7+CDH5.7.2全部署流程 一、前期准备 1、虚拟机配置     这个配置是我在网上看到的,我就借用了这个配置:     主节点:8g内存、硬盘80g     从节点:2g内存、硬盘80g     安装系统的时候,我建议将IP和主机名都给配置好,这样就省的在系统中进行配置了,当然下面也有在系统中配置的方法。虚拟机系统安装可以参见:虚拟机:CentOS 7系统安装     所以如果你要使用虚拟机来完成这个配置的话,那么,你的主机的配置内存就不能低于16G了。而且还要找一个盘符较大的磁盘空间,不然到后面操作CDH的时候会很尴尬,我第一次就被卡在了硬盘空间不足上,然后又重新找了一个较大的盘符进行了重新安装,包括虚拟机系统。 2、软件版本     1.JDK版本:jdk-8u131-linux-x64.tar.gz     2.Scala版本:scala-2.11.0.tgz     以上两个包建议使用rpm或者yum安装,这样可以省点事,不过我是使用的这两个包。     3.jdbc连接包:mysql-connector-java-5.1.38-bin.jar     4.MySQL相关包:     MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm     MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm     5.CDH安装相关的包:     ...
星汉 发布于 4周前 阅读 674 评论 3 点赞 1

hive 多级分区表

### 建表 ``` create external table stg_log_xetlparse_error ( err_id int ,err_source string ,act_id string ,data string ) COMMENT '未被解析的埋点数据' PARTITIONED BY (month STRING comment "按月的分区表字段",day string comment "按天的分区表字段") ROW FORMAT DELIMITED FIELDS TERMINATED BY '\001' LINES TERMINATED BY '\n' STORED AS TEXTFILE LOCATION '/log_data/stg_log_xetlparse_error'; ``` ### 插入数据 ``` insert into table stg_log_xetlparse_error PARTITION ( month='2018-01',day='2018-01-01') select 1,"a","b","c" ``` ### 在HDFS上的存储目录 ``` [wenhuanhuan@task1-sandbox include]$ hadoop fs -text /log_data/stg_log_xetlparse_error/month=2018-01/day=2018-01-01/000000_0 1abc [wenhuanhuan@task1-sandbox include]$ hadoop fs -ls /log_data/stg_log_xetlparse_error/month=2018-01 Found 2 items drwxrwxr-x - wenhuanhuan bigdata 0 2018-05-30 17:21 /log_data/stg_log_xetlparse_error/month=2018-01/day=2018-01-01 drwxrwxr-x - wenhuanhuan bigdata 0 2018-05-30 17:27 /log_data/stg_log_xetlparse_error/month=20...
_小茗同学_ 发布于 3周前 阅读 19

centos7下hadoop-3.1.0集群搭建

# centos7下hadoop-3.1.0集群搭建 ## 环境准备 **1.服务器概览** | hostname | ip | 说明 | | ----- | ----- | ----- | | node1.spark | 192.168.2.140 | node1节点(master) | | node2.spark | 192.168.2.141 | node2节点 | | node3.spark | 192.168.2.142 | node3节点 | 分别在三台服务器上执行以下命令 ``` #添加host [root@node1 ~] vim /etc/hosts 192.168.2.140 node1.spark 192.168.2.141 node2.spark 192.168.2.142 node3.spark #执行以下命令关闭防火墙 [root@node1 ~]systemctl stop firewalld && systemctl disable firewalld [root@node1 ~]setenforce 0 #将SELINUX的值改成disabled [root@node1 ~]vim /etc/selinux/config SELINUX=disabled #重启服务器 [root@node1 ~]reboot ``` **2.配置免密码登录** ``` #node1执行以下命令 #生成密钥Pair,输入之后一直选择enter即可。生成的秘钥位于 ~/.ssh文件夹下 [root@node1 ~]# ssh-keygen -t rsa [root@node1 .ssh]# scp /root/.ssh/id_rsa.pub root@spark.node2:~ [root@node1 .ssh]# scp /root/.ssh/id_rsa.pub root@spark.node3:~ ##node2,node3 执行以下命令 [root@node2 ~]# mkdir -p ~/.ssh [root@node2 ~]# ...
张shieppp 发布于 1个月前 阅读 349

Ubuntu18.04 LTS上安装Kubernetes 1.10.x版

基本方法与以前版本相同,参见:https://my.oschina.net/u/2306127/blog/1628082 但是镜像版本需要更新,如下: 获取1.10.1版镜像 下载脚本如下: echo "Pulling Images..." echo "==>kube-apiserver:" docker pull mirrorgooglecontainers/kube-apiserver-amd64:v1.10.1 docker tag mirrorgooglecontainers/kube-apiserver-amd64:v1.10.1 gcr.io/google_containers/kube-apiserver-amd64:v1.10.1 echo "==>kube-controller-manager:" docker pull mirrorgooglecontainers/kube-controller-manager-amd64:v1.10.1 docker tag mirrorgooglecontainers/kube-controller-manager-amd64:v1.10.1 gcr.io/google_containers/kube-controller-manager-amd64:v1.10.1 echo "==>kube-scheduler:" docker pull mirrorgooglecontainers/kube-scheduler-amd64:v1.10.1 docker tag mirrorgooglecontainers/kube-scheduler-amd64:v1.10.1 gcr.io/google_containers/kube-scheduler-amd64:v1.10.1 echo "==>kube-proxy:" docker pull mirrorgooglecontainers/kube-proxy-amd64:v1.10.1 docker tag mirrorgooglecontainers/kube-proxy-amd64:v1.10.1 gcr.io/google_containers/kube-pr...
openthings 发布于 2个月前 阅读 191

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

本文是Ignite事务架构系列的最后一篇文章,在之前的文章中,讨论了与键值API的事务处理有关的一系列主题。 [第一篇文章](https://my.oschina.net/liyuj/blog/1626309)中,主要介绍了二阶段提交协议及其工作方式; [第二篇文章](https://my.oschina.net/liyuj/blog/1627248)中,介绍了锁模型和隔离级别,介绍了悲观锁和乐观锁中不同隔离级别对应的消息流的细节,还介绍了死锁检测机制; [第三篇文章](https://my.oschina.net/liyuj/blog/1791800)中,介绍了故障和恢复机制,介绍了Ignite如何管理备份节点故障、主节点故障以及事务协调器节点故障; [第四篇文章](https://my.oschina.net/liyuj/blog/1793912)中,聚焦于原生持久化的事务处理,其中着重介绍了预写日志(WAL)和检查点; 在最后一部分,会聚焦于Ignite如何处理第三方持久化的事务。 ## 通读和通写 Ignite的两个主要优势是扩展性和性能。Ignite遵循的一个基本原则是不撕裂不替换,换句话说,组织中的已有系统,正在支撑关键的业务且无法被轻易替换,但是可以通过更高的扩展性和性能来增强很多的业务查询,比如,Ignite可以提供内存数据网格服务(IMDG)或者在开启通读(当缓存中不存在时数据会从数据库中加载到I...
李玉珏 发布于 2个月前 阅读 131

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了语言排行第一名。 从学习难易度来看,作为一个为“优雅”而生的语言,Python语法简捷而清晰,对底层做了很好的封装,是一种很容易上手的高级语言。在一些习惯于底层程序开发的“硬核”程序员眼里,Python简直就是一种“伪代码”。   大数据学习QQ群:199427210 在大数据和数据科学领域,Python几乎是万能的,任何集群架构软件都支持Python,Python也有很丰富的数据科学库,所以Python不得不学。 Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会 shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。 好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。 Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的...
董黎明 发布于 2天前 阅读 9

工欲善其事必先利其器。100万项目资金助你成为自由职业者

广告
优质开发商申请规则细则落地了,赶紧来看看自己符合不符合。
众包

Kubernetes存储系统-云原生存储Rook部署

Rook是基于的Ceph的分布式存储系统,可以使用kubectl命令部署,也可以使用Helm进行管理和部署。Rook是专用于Cloud-Native环境的文件、块、对象存储服务。它实现了一个自我管理的、自我扩容的、自我修复的分布式存储服务。
openthings 发布于 3周前 阅读 25 点赞 1

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征?   RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的RDDs、转换现有的RDDs,或者调用RDDs上的操作来计算结果。        在Spark中,一个RDD仅仅是一个不可变的分布式对象集合.每个RDD被切分成多个可以在不同集群节点上进行计算的partitions.RDDs可以包含Python,Java和Scala任何类型的对象,包括用户自定义的class文件。        用户创建RDD的两种方法:通过加载外部数据集或者通过在使用者运行的driver程序中分配一个对象集合。 一旦创建,RDD提供两种操作类型:转换(transformations)和执行(actions)。Transformations会根据之前的RDD构造一个新的RDD Transformations和actions的区别在于Spark计算RDD的方式.尽管你可以随时定义新的RDD,但是Spark只在他们第一次被action使用的时候进行计算。 最终,每当你在Spark的RDD上运行一个action,默认会重新计算。如果你想在多个action上重新使用一个RDD,RDD.persist()方法可以进行保存。 总的来讲,每个Spark项目或者shell对话都包含以下步骤: 1.从外部数据创建一些输入RDD 2...
tuoleisi77 发布于 2天前 阅读 5

什么是大数据及大数据技术?

一方面,从技术角度看,大数据只是一种方法;一方面从现实角度看,大数据是一种新产生的业态,并且还处于初级阶段;一方面是从规模上看,体量大,范围广;一方面是从本质上看,大数据就是能够采集到的全部生命活动、非生命活动产生的记录所生成的数据,并通过技术手段存储、传输、计算、统计、分析、利用及提取有价值的信息的整个活动过程及所采用到的技术的整体,包括宇宙本身及活动,生命体自身、生存环境及全部生命及非生命活动所产生的记录所生成的数据。 大数据学习QQ群:716581014 关于因果关系与相关关系的问题。所谓相关关系思维,例如可以通过环境数据反映环境中的生命体的一些情况,并通过这些情况可以反映出其他方面的情况,或者通过某种方法计算、统计、分析之后预测到有因果关系或存在相关关系的某种领域的情况;反过来,也可以通过生命体自身的生理特征数据或者行为特征数据,反映出自然环境存在的状况,或者提取某种信息以预测到其他存在因果关系或相关关系的事件或领域存在状况,或者是将会发生的状况。 应用于商业,可以通过某种历史数据或现实数据,预测到某地区,或某类人群,或某段时间,人们的购买力,消费欲望指数,成交比例,成交金额等等。 应用于...
董黎明 发布于 3天前 阅读 12

Python计算KS值,并绘制KS曲线

更多风控建模、大数据分析等内容请关注公众号《大数据风控的一点一滴》 python实现KS曲线,相关使用方法请参考上篇博客-R语言实现KS曲线 代码如下: ####################### PlotKS ########################## def PlotKS(preds, labels, n, asc): # preds is score: asc=1 # preds is prob: asc=0 pred = preds # 预测值 bad = labels # 取1为bad, 0为good ksds = DataFrame({'bad': bad, 'pred': pred}) ksds['good'] = 1 - ksds.bad if asc == 1: ksds1 = ksds.sort_values(by=['pred', 'bad'], ascending=[True, True]) elif asc == 0: ksds1 = ksds.sort_values(by=['pred', 'bad'], ascending=[False, True]) ksds1.index = range(len(ksds1.pred)) ksds1['cumsum_good1'] = 1.0*ksds1.good.cumsum()/sum(ksds1.good) ksds1['cumsum_bad1'] = 1.0*ksds1.bad.cumsum()/sum(ksds1.bad) if asc == 1: ksds2 = ksds.sort_values(by=['pred', 'bad'], ascending=[True, False]) elif asc == 0: ksds2 = ksds.sort_values(by=['pred', 'bad'], ascending=[...
佛曰不可多说 发布于 4周前 阅读 147

Apache Ignite核心特性介绍(2.5.0版)

## 1.摘要 ### 1.1.Ignite是什么? Apache Ignite是一个以内存为中心的分布式**数据库**、**缓存**和**处理**平台,支持事务、分析以及流式负载,可以在PB级数据上享有内存级的性能。 ![](https://ignite.apache.org/images/durable-memory.png) #### 1.1.1.Ignite定位 **Ignite是不是内存数据库?** **是**,虽然Ignite的固化内存在内存和磁盘中都工作得很好,但是磁盘持久化可以禁用从而成为一个纯粹的内存数据库,支持SQL和分布式关联。 **Ignite是不是内存数据网格(IMDG)?** **是**,Ignite是一个全功能的分布式键-值数据网格,它既可以用于纯内存模式,也可以带有Ignite的原生持久化,它也可以与任何第三方数据库集成,包括RDBMS和NoSQL。 **Ignite是不是一个分布式缓存?** **是**,如果禁用原生持久化,Ignite就是一个分布式缓存,它实现了JCache规范(JSR107),并且提供了比规范更多的功能,包括分区和复制分布式模式、分布式ACID事务、SQL查询、原生持久化等等。 **Ignite是不是分布式数据库?** **是**,在整个集群的多个节点中,Ignite中的数据要么是分区模式的,要么是复制模式的,这给系统带来了伸缩性,增加了弹性。Ignite可以自动地控制数据如何分区,另...
李玉珏 发布于 1周前 阅读 44 评论 7 点赞 1

Apache Cassandra和Apache Ignite:分布式数据库的明智之选

有时,Cassandra和Ignite配合得很好,但是有时,选择一个解决方案更好。
李玉珏 发布于 1个月前 阅读 274 评论 6 点赞 1

InputFormat加载数据

InputFormat是一个抽象类,其定义如下: ``` public abstract class InputFormat { public abstract List getSplits(JobContext context) throws IOException, InterruptedException; public abstract RecordReader createRecordReader(InputSplit split, TaskAttemptContext context ) throws IOException, InterruptedException; ``` InputFormat会对数据进行两方面的处理: * 对输入数据进行逻辑切分,形成一个个split * 针对每个split,新建一个RecorReader读取split里面的数据,形成一个个形式的记录(record),作为Map任务的输入。 运行作业的客户端通过调用getSplits()计算分片,然后将它们发送到application master,application master使用其存储位置信息来调度map任务从而在集群上处理这些分片数据。map任务把输入分片传给InputFormat的createRecordReader()方法来获得这个分片的RecordReader。RecordReader就像是记录上的迭代器,map任务用一个RecordReader来生成记录的键值对,然后在传递给map函数。Mapper的run方法如下: ``` public void run(Context context) throws IOException, InterruptedException { setup(context); try { while (context.nextKeyVa...
Jason_typ 发布于 7天前 阅读 6

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 发布于 3个月前 阅读 72

IP有哪些类型?(一)

IP有哪些类型? IP有不同的类型,不同的角度划分的类型也不一样。   按照网络类型划分IP: 住宅动态IP 什么时候需要购买住宅动态IP? 住宅动态IP是指私人的IP地址,这意味着你在访问网络时是通过真实的用户发送你的请求。 购买住宅IP可确保你不会被目标网站屏蔽或提供误导信息。   数据中心 / 静态IP 什么时候需要购买数据中心/静态IP? 什么时候购买数据中心IP? 数据中心IP也称为静态IP,或是固定IP。意味着你可以使用一个特定的IP,且这个IP固定不变。 适合用需要进行长时间的请求会话中,你可以持续使用该IP。 通常价格要比住宅动态IP价格便宜一些。   手机移动端IP 什么时候购买移动端IP? 移动IP是指通过蜂窝(3G / 4G网络)连接的一部分住宅IP,这些IP连接到互联网不是通过wifi,也不是通过有线连接。 移动IP通常用于检测你刊登在网上的广告,是否在不同提供商的移动设备上都是准确无虚假地被投放。 Q:2907070328 7天试用350万各国居民动态IP:http://suo.im/4yWgDD
倪六六 发布于 2个月前 阅读 23

Zookeeper如何保证数据的一致性?

1.如何保证数据一致性有两种情况:第一重新选取leader之后的数据同步;第二leader处理完事务请求后与follower保持数据同步。 2.首先是重新选举leader之后的数据同步,通过FastleaderElection选举算法选出leader,选出leader之后,leader需与其他节点进行同步,同步完成leader才能真正变为leader,当超过一半的follower和leader同步结束后才算完成同步,然后follower会带上自己最大的zxid,尝试连接leader,来确定数据是否同步。 然后就是第二种情况,处理完事务请求的leader与follwer保持同步。事务请求全部由leader处理。当leader收到请求后,将请求事务转化为事务proposal,由于leader会为每一个follower创建一个队列,将该事务放入响应队列,保证事务的顺序性。之后会由队列中顺序向其他节点广播该提案,follower收到后会将其以事务的形式写入到本地日志中,并向leader发送反馈ack,leader会等待其他follower的回复,当收到一半以上follower响应时,leader会向其他节点发送commit消息,同时leader提交该提案。当follower将数据同步完成之后,leader会将该follower加入到真正可用的follower列表中。...
无精疯 发布于 3个月前 阅读 136

在Kubernetes平台上运行Hadoop的实践

Hadoop与Kubernetes就好像江湖里的两大绝世高手,一个是成名已久的长者,至今仍然名声远扬,一个则是初出茅庐的青涩少年,骨骼惊奇,不走寻常路,一出手便惊诧了整个武林。Hadoop与Kubernetes之间有很深的渊源,因为都出自IT豪门——Google,只不过,后者是亲儿子,正因为有大佬背书,所以Kubernetes一出山,江湖各路门派便都蜂拥而至,拥护称王。 不知道是因为Hadoop是干儿子的缘故还是因为“廉颇老矣”,总之,Hadoop朋友圈的后辈们如Spark、Storm等早都有了在Kubernetes上部署运行的各种资料和案例,但Hadoop却一直游离于Kubernetes体系之外,本文我们给出Hadoop在Kubernetes上的实践案例,以弥补这种缺憾。 Hadoop容器化的资料不少,但Hadoop部署在Kubernetes上的资料几乎没有,这主要是以下几个原因导致的: 第一, Hadoop集群重度依赖DNS机制,一些组件还使用了反向域名解析,以确定集群中的节点身份,这对Hadoop在Kubernetes上的建模和运行带来极大挑战,需要深入了解Hadoop集群工作原理并且精通Kubernetes,才能很好解决这一难题。 第二, Hadoop新的Map-Reduce计算框架Yarn的模型出现的比较晚,它的集群机制要比HDFS复杂,资料也相对较少,增加了Hadoop整体建模与...
蓝色雨全 发布于 1个月前 阅读 69

Kubernetes知识体系-从入门到精通

Kubernetes知识体系-从入门到精通 Kubernetes是一个基于容器技术、实现容器编排、提供微服务和总线的集群系统,涉及到大量的知识体系。这里将Kubernetes的基础安装和持续交付、容器存储、服务网格、机器学习、区块链应用的相关资源整理如下,便于逐步深入学习,希望对大家从传统企业级架构向容器驱动的微服务架构的快速演进有所帮助。 架构图版,https://my.oschina.net/u/2306127/blog/1830356 Kubenrnetes集群安装参考: kubeadm安装Kubernetes实践记录, https://my.oschina.net/u/2306127/blog/1628082 Kubernetes加入新节点,经验总结, https://my.oschina.net/u/2306127/blog/1816989 Kubernetes v1.10.x HA 全手动安装教程, https://my.oschina.net/u/2306127/blog/1818008 使用kubeadm创建Kubernetes集群, https://my.oschina.net/u/2306127/blog/1627651 Kubernetes部署与应用解决方案大全, https://my.oschina.net/u/2306127/blog/1627166 Kubenrnetes高级应用进阶 基于Kubernetes的持续交付平台, https://my.oschina.net/u/2306127/blog/1822629 基于Kubernetes的容器存储系统, https://my.oschina.net/u/2306127/blog/1822634 基于Kubernetes的服...
openthings 发布于 3周前 阅读 76

Zookeeper完全分布式集群的搭建

Zookeeper完全分布式集群的搭建 一、集群模式 1、单机模式     在zoo.cfg中只配置一个server.id就是单机模式了。     这种模式下,如果当前主机宕机,那么所有依赖于当前zookeeper服务工作的其他服务器都不能在进行正常工作,这种事件称为单节点故障。所以这种模式一般用在测试环境。 2、伪分布式     在zoo.cfg中配置多个server.id,其中ip都是当前机器,而端口各不相同,启动时就是伪集群模式了。     这种模式和单机模式产生的问题是一样的。这种模式也是用在测试环境中。 3、完全分布式     多台机器各自配置zoo.cfg文件,将各自互相加入服务器列表,上面搭建的集群就是这种完全分布式。     这种模式是真实生产环境中使用的zookeeper集群模式。 二、zookeeper完全分布式集群的搭建     搭建zookeeper集群需要最少三台机器,需要安装jdk作为基础支持。此次使用的Zookeeper3.4.7版本。 1、准备虚拟机     准备三台虚拟机,将ip和端口规划好。这里最好将主机名,以及主机名和ip的映射关系配置好,配置此项关系可以参看Hadoop完全分布式集群搭建。 2、安装jdk     在虚拟机中安装jdk,并且配置jdk的环境变量。 3、搭建集群 1.下载安...
星汉 发布于 2个月前 阅读 35

2018年值得关注的5个大数据趋势

随着大数据系统日益高效,每年的大数据趋势变得更具开创性。根据调研机构Forrester Research最近发布的营销报告,随着组织的领导者开始意识到大量使用大数据技术所需的工作量,人工智能(AI)正在超越其流行术语的阶段。 研究报告指出,实施人工智能来实现目标需要精确的部署、规划和治理。尽管如此,该报告预测随着大数据趋势进一步倾向于人工智能,该技术将有巨大的改进。实际上,Forrester公司预计将重新设计数据分析和管理角色,这将改变智能交付物流和创建新的信息市场。这种预测很有可能发生,因为多达70%的企业计划在2018年实施人工智能技术,比去年增加了50%以上。   然而,最近“福布斯”杂志发布的一篇文章从另一个角度看待人工智能的发展。这篇文章将人工智能作为一种资源,向消费者提供建议,为供应商提供暂定条款,并在工作场所引导员工,无需人工干预。该文章还预测,人工智能将对非结构化信息提供可操作的分析,这些信息可与大数据系统解析的结构化信息源的评估相媲美。 大数据QQ学习群:716581014 此外,更多企业可以在未来几个月内获得使用数百TB的现有非结构化数据的能力。然而,2018年也是许多拥有这种信息量的公司(通常称为数据湖)将要求人工智能计划的...
董黎明 发布于 6天前 阅读 8

Elasticsearch高级查询

Elasticsearch
仔仔1993 发布于 3个月前 阅读 16

在浏览器中进行深度学习:TensorFlow.js (五)构建一个神经网络

这一次我终于可以开始真正的深度学习了,从一个神经网络开始。 神经网络(Neural Network)是深度学习的基础,基本概念包括:神经元,层,反向传播等等。如果细讲我估计没有五到十篇文章那是讲不完的。简单说它模拟了大脑神经元工作的方式,利用把多个神经元组合成网络结构的模型来对数据进行分类。 神经网络是一个多层结构的反馈网络,包括输入,输出和隐藏层。 每一层由若干个神经元组成。 整个网络利用反向传播,反馈输出的结果和期望值的差异来进行学习。 可以理解网络是一个函数ouput=function(input), 随着网络层次的加深,神经网络可以模拟一个非常复杂的非线性函数,当然学习的成本就更高,因为要学习的参数会随着层数和每一层的神经元的个数增加而增加。 TensorFlowJs提供了对神经网络/深度神经网络提供了很好的支持。包括:模型 tf.model, 层 tf.layer。 下面我们就看看如果利用TensorFlowJS来构建一个简单的神经网络来进行MINST数据的手写识别。 构建网络 function nn_model() { const model = tf.sequential(); model.add(tf.layers.dense({ units: 32, inputShape: [784] })); model.add(tf.layers.dense({ units: 256 })); model.add(t...
naughty 发布于 1个月前 阅读 377

6月25日至27日,为何全球开源大咖齐聚国家会议中心?LC3来啦!

广告
今年6月25日至27日, LinuxCon + ContainerCon + CloudOpen(LC3)将在北京国家会议中心召开。本次会议针对开源技术在人工智能和深度学习、区块链、云原生、虚拟服务器架构和微服务、新兴技术、基础实施和自动化、IoT和M2M、KVM、Linux系统、网络编排等10大前沿领域的应用,邀请了全球数百位业界大咖,用三天时间、超过200场分享,从市场、技术、产业甚至整个生态层面,将做全方位的探讨。
LinuxCon + ContainerCon + CloudOpen(LC3)

Envoy 作为 Kubernetes 的 API 网关

Envoy 作为 Kubernetes 的 API 网关 本文来源-https://servicemesher.github.io/envoy/start/distro/ambassador.html 使用 Ambassador 的一个常见场景是将其部署为 Kubernetes 的 edge 服务( API 网关)。Ambassador 是开源 Envoy 的分布式版本,专门为 kubernetes 设计的。 本例将介绍如何通过 Ambassador 在 Kubernetes 上部署 Ambassador 。 部署 Ambassador Ambassador 的设置是通过 kubernetes 部署的。为了在 kubernetes 安装 Ambassador/Envoy,如果你的集群启动了 RBAC: kubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-rbac.yaml 如果您没启动 RBAC: kubectl apply -f https://www.getambassador.io/yaml/ambassador/ambassador-no-rbac.yaml 上面的 YAML 将会为 Ambassador 创建 kubernetes 部署,包含 readiness 和 liveness 检查。默认,将会创建3个 Ambassador 实例。每一个 Ambassador 实例包含一个 Envoy 代理以及一个 Ambassador 控制器。 我们现在需要创建一个 Kubernetes 服务来指向 Ambassador 的部署,我们将使用 LoadBalancer 服务。如果你的集群不支持 LoadBalancer 服务,你需要改成 NodePort 或者 Clu...
openthings 发布于 21小时前 阅读 3

hive check in checkDiagnosticMessage found error

## 原因 库quota不足,数据写入不进去,请清理一下对应库数据 ## setQuota指的是对HDFS中某个目录设置文件和目录数量之和的最大值 hdfs dfsadmin -setQuota 5 /user/hadoop/quota ## setSpaceQuota针对的是设置HDFS中某个目录可用存储空间大小 hdfs dfsadmin -setSpaceQuota 134217728 /user/hadoop/spaceQuota
Joseph_hu 发布于 23小时前 阅读 2

DbVisualizer 使用Impala驱动连接Hive数据库

在最近工作中使用到Hive数据库存储大数据,但是CDH环境没有提供好的管理Hive数据的界面,因此考虑到使用客户端工具连接Hive数据库进行数据查询。 连接Hive数据库的GUI客户端工具有DBeaver和DBVisualizer,我这里使用DBVisualizer来连接Hive数据库 。 连接Hive数据库的驱动有hive2驱动和impala驱动,使用hive2驱动连接hive数据库可以参考这篇文章 https://www.cnblogs.com/cauwt/p/dbvisualizer--connect-hive.html 但是hive2驱动连接hive数据库需要使用的jar文件太多,我们这里使用impala驱动连接hive数据库。 impala驱动文件使用Cloudera提供的Cloudera Impala JDBC库,从 https://www.cloudera.com/downloads/connectors/impala/jdbc/2-6-3.html 下载。 下载后解压,使用JDBC41的jar包作为驱动包(如下图所示) 在DBVisualizer的[Tools]-[Driver Manager]菜单窗口中添加impala驱动,格式如图所示 驱动文件选取下载的JDBC41驱动jar文件。 在创建数据库连接时,在向导界面中选择impala驱动 在连接参数界面中设置DB url和用户名以及密码 点击Finish后即成功创建Hive数据库连接,可以使用impala驱动访问Hive数据。 我使用的DBVisualizer的版本是10.0.1,连接的Hive数据库是CDH 5...
杨延庆 发布于 23小时前 阅读 5

Istio-通过Helm快速安装

Istio-通过Helm快速安装 Istio是一个服务网格(Service Mesh)软件,可以在Kubernetes中快速安装: 1、创建配置文件 helm template install/kubernetes/helm/istio --name istio --namespace istio-system > $HOME/istio.yaml 2、运行Kubectl安装 $ kubectl create namespace istio-system $ kubectl create -f $HOME/istio.yaml 3、下载镜像 上面的命令运行后,由于镜像长时间下载不成功,导致Istio服务无法正常运行,可以手工下载,然后刷新下状态即可: docker pull quay.io/coreos/hyperkube:v1.7.6_coreos.0 4、参考资源: 通过Helm安装,https://istio.io/docs/setup/kubernetes/helm-install/ Istio 0.8 的 Helm Chart 解析,https://my.oschina.net/u/2306127/blog/1831807 Service Mesh-Istio安装与使用,https://my.oschina.net/u/2306127/blog/1793740 Envoy集群服务总线入门指南,https://my.oschina.net/u/2306127/blog/1823006 Envoy 作为 Kubernetes 的 API 网关,https://my.oschina.net/u/2306127/blog/1832304 基于Kubernetes的服务网格系统,https://my.oschina.net/u/2306127/blog/1822918 ServiceMesh中文站,https://servicemesher.github.io/...
openthings 发布于 23小时前 阅读 3

hadoop技术入门学习之发行版选择

经常会看到这样的问题:零基础学习hadoop难不难?有的人回答说:零基础学习hadoop,没有想象的那么难,也没有想象的那么容易。看到这样的答案不免觉得有些尴尬,这个问题算是白问了,因为这个回答似乎什么也没给出来。这个问题的关键在于“零基础”到底是个什么样的基础? 所谓的零基础大体可以分为两种:第一种是hadoop初学者,有一定的Linux基础、虚拟机和Java基础;第二种是hadoop兴趣爱好者,但缺乏最基本的Linux基础、虚拟机和Java基础。如果是第一种,其实学习hadoop的难度就会相对较小;但如果是第二种,那么难度就会非常大了。 要学习hadoop除了要了解hadoop是什么?Hadoop能够帮助我们做什么?以及hadoop的使用场景等基本问题,对于初学者而言选择一个合适的hadoop版本作为学习平台也是非常重要的事情。 国内的Hadoop商业发行版还是比较多,以对hadoop的二次包装为主。基本上国内的这些发行版hadoop的安装环境都是大同小异,网上查一下就会发现很多人在安装这些hadoop的运营环境时,整个安装过程非常复杂,耗时较长,重点就是很多人在经历了漫长的安装等待后,等到的结果可能是安装失败······ Hadoop运行环境的搭建就是初学者要解决的一个大问题,运行环境搭...
左手的倒影 发布于 1天前 阅读 7

Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群

    有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识。今天主要讲一讲Zookeeper+Hadoop+Hbase分布式集群的搭建,在我前几篇的集群搭建的博客中已经分别讲过了Zookeeper和Hadoop的集群搭建:     集群四部曲(一):完美的Zookeeper集群搭建     集群四部曲(二):完美的Hadoop集群搭建 ,剩下的就只有Hbase集群了,下面就来说一下基于Zookeeper和Hadoop的Hbase分布式集群的搭建。     一、环境:同样的启用三个节点,分别是虚拟机slave01,slave02,slave03,基于之前已经搭建好的环境,包括JDK、Zookeeper、Hadoop     二、Hbase配置(自己解压哈)     配置前,着重说一下:版本匹配问题,若出现不匹配的情况,后面启动会失败,关于版本匹配大家可以参考该链接内容:     https://blog.csdn.net/anningzhu/article/details/60468723     接下来了解一下HMaster、HRegionServer,这里准备将slave01作为HMaster,slave02、slave03作为HRegionServer,下面的操作都是以这个为前提展开的,请大家做好战前温习,以防不知下面的操作的意义,开始配置吧:     关闭防火墙,大家切记: systemctl stop firewalld #只在...
海岸线的曙光 发布于 1天前 阅读 3

MapReduce简单需求分析-共同好友及查找互粉的情况

MapReduce的设计,最重要的是要找准key,然后制定一系列的数据处理流程。MapReduce的Map中,会把key相同的分配到同一个reduce中,对于key的选择,可以找到某个相同的因素。以下面的几个例子说明。 ## 查找共同好友 有一份多个人的好友名单,求哪两个人之间有共同好友,共同好友是谁。测试数据如下: ``` A B,C,D,E,F,O B A,C,E,K C F,A,D,I D A,E,F,L E B,C,D,M,L F A,B,C,D,E,O,M G A,C,D,E,F H A,C,D,E,O I A,O J B,O K A,C,D L D,E,F M E,F,G O A,H,I,H ``` **问题分析**问题要求解的是共同好友,如A有好友D,C也有好友D,那么这里的共同因素就是共同好友D,因此会想到把这个共同好友作为一个key,而这个共同好友的所有owners作为value,这样在reduce中,循环遍历values两两配对就可以求解。 ## 查找互粉的情况 **问题分析**如A的好友中有B,B的好友中有A,则这种情况就是互粉。这种情况下,不变的共同因素其实是互相之间的关系:我们可以将A和B组成一对,当作一个key,如“A-B”,value则是此种关系对的数目。如果某个关系对的数目等于2,则表明A是B的好友,B也是A的好友。从而就是互粉的情况。代码如下。 ``` package mutualfriend; import org.apache.hadoop.io.Long...
Jason_typ 发布于 1天前 阅读 3

超全Hadoop实用工具介绍,想学大数据的小伙伴千万不能错过

Hadoop是现在最流行的大数据分布式基础架构,其实现了很多大数据相关的核心功能,并且支持大量的核心项目。今天就给大家盘点一下Hadoop以及Hadoop生态圈。   一、Hadoop内部核心模块   Hadoop Common:大量低层核心组件和接口,主要用于支持和集成其他模块。 大数据学习扣扣群:716581014   Hadoop MapReduce:Hadoop分布式计算框架,其实现了海量数据高速并行计算,需要基于Yarn。 Hadoop Distributed File System:Hadoop分布式文件系统,也就是我们通常说的HDFS,是海量数据存储和高吞吐的核心基础,所有的计算框架都是基于HDFS的。 Hadoop Yarn:Yarn主要负责协调和分配Hadoop集群中的所有资源(CPU、内存等),所有作业的调度都依赖Yarn。   二、Hadoop生态圈的其他核心组件: Hbase:一个基于列的存储的分布式数据库,其数据模型为Key-Value模式,便于扩展并且查询高效。 Hive:Hive是Hadoop提供的一个数据仓库,也提供数据库部分功能。其最大的作用还是简化了编写MapReduce程序的过程,只需要利用SQL语句即可完成MapReduce计算。 Cassandra:Cassandra也是基于列存储的,但是其数据模型为column-based,即一列就是一条数据。它最大的优点就是有多个Master,不会出...
董黎明 发布于 1天前 阅读 4

Istio Service Mesh 教程

Istio Service Mesh 教程 作者 宋净超 | 5400字 | 阅读大约需要11分钟 | 归档于istio | 发表于 2018-05-22 标签 #Istio #教程,来自 https://servicemesher.github.io/blog/istio-service-mesh-tutorial/   本文是 Istio 管理 Java 微服务的案例教程,使用的所有工具和软件全部基于开源方案,替换了 redhat-developer-demos/istio-tutorial 中的 minishift 环境,使用 kubernetes-vagrant-centos-cluster 替代,沿用了原有的微服务示例,使用 Zipkin 做分布式追踪而不是 Jaeger。 本文中的代码和 YAML 文件见 https://github.com/rootsongjc/istio-tutorial。 原文地址:https://jimmysong.io/posts/istio-tutorial/ 准备环境 在进行本教程前需要先准备以下工具和环境。 8G 以上内存 Vagrant 2.0+ Virtualbox 5.0 + 提前下载 kubernetes1.9.1 的 release 压缩包 docker 1.12+ kubectl 1.9.1+ maven 3.5.2+ istioctl 0.7.1 git curl、gzip、tar kubetail siege 安装 Kubernetes 请参考 kubernetes-vagrant-centos-cluster 在本地启动拥有三个节点的 kubernetes 集群。 git clone https://github.com/rootsongjc/kubernetes-vagrant-centos-cluster.git cd ku...
openthings 发布于 1天前 阅读 4

Istio 0.8 的 Helm Chart 解析

Istio 0.8 的 Helm Chart 解析 作者 崔秀龙 | 2300字 | 阅读大约需要5分钟 | 归档于istio | 发表于 2018-06-04 标签 #Istio #Helm #Chart,来自 https://servicemesher.github.io/blog/helm-chart-for-istio-0.8/ 儿童节期间,拖拉了一个多月的 Istio 0.8 正式发布了,这可能是 Istio 1.0 之前的最后一个 LTS 版本,意义重大。 新版本中,原来的 Kubernetes 安装文件 install/kubernetes/istio.yaml,变成了 install/kubernetes/istio-demo.yaml,是的,你没看错,这个 LTS 的安装文件名字叫 demo。查看了一下文档,大概察觉到不靠谱的 Istio 发布组的意图了:这个项目的组件相对比较复杂,原有的一些选项是靠 ConfigMap 以及 istioctl 分别调整的,现在通过重新设计的 Helm Chart,安装选项用 values.yml 或者 helm 命令行的方式来进行集中管理了。下面就由看看 Istio 的 Helm Chart 的安装部署及其结构。 使用 Helm 安装 Istio 安装包内的 Helm 目录中包含了 Istio 的 Chart,官方提供了两种方法: 用 Helm 生成 istio.yaml,然后自行安装。 用 Tiller 直接安装。 很明显,两种方法并没有什么本质区别。例如第一个命令: helm template install/kubernetes/hel...
openthings 发布于 1天前 阅读 1

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击事件。 随着攻击者提高其攻击能力,企业也必须提高其保护访问和防止攻击的能力,安全和风险领导者必须评估并使用最新技术来抵御高级攻击,更好地实现数字业务转型以及拥抱新计算方式,例如云计算、移动和DevOps。 下面是可帮助企业保护其数据和信息的10项顶级技术: ## 1. 云计算工作负载保护平台 目前,企业有不同类型的工作负责、基础设施以及位置,其中包括物理/虚拟机和容器,除了公共/私有云之外。 云计算工作负责保护平台允许企业从单个管理控制台管理其各种工作负载、基础设施以及位置,这样他们也可以跨所有位置部署共同的安全策略。 ## 2. 云访问安全代理(CASB) 很多企业使用多个云服务和应用程序,所有这些应用程序从一个CASB监控,因此,企业可有效执行安全策略、解决云服务风险,并跨所有云服务(公共云和私有云)确保合规性。 ## 3. 托管检测和响应(MDR) 通常企业没有资源或者没有人员来持续监控威胁时,才会考虑使用MDR服务。这些服务提供商使企业能够通过持续监控功能来...
p柯西 发布于 2天前 阅读 9

Google 是如何收集我们的个人数据的

简评:还有其他公司比 Facebook 更能收集我们的数据么?大概,可能,没准是谷歌。(文末彩蛋)   最近 Facebook 已经因为收集个人数据而站在了聚光灯前,它收集用户数据并因此获利。   但是要知道,Facebook 不是单独一家「在用户毫不知情」的情况下收集数据的公司,Google 可能更甚:它的信息搜集量,追踪范围,以及用户在 Google 相应网站和应用上花费更多的时间。   但是尽管如此,仍然有很多用户不了解自己的信息被收集和使用的程度。   欧洲正在拟定新法规[1],推动谷歌等公司公开更多信息,让用户自主选择数据权限。普林斯顿大学的助理教授 Arvind Narayanan 说:「这是系统性问题,它不仅限于 Facebook。他认为,更大的问题是这些公司的商业模式是面向公众隐私而获利。」   我们需要了解 Google 在这方面的角色。 ![](https://upload-images.jianshu.io/upload_images/11678900-8510ea54d9a6736b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 在这里还是要推荐下我自己建的***大数据学习交流群:784557197***,群里都是学大数据开发的,如果你正在学习大数据 ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有大数据软件开发相关的),...
p柯西 发布于 2天前 阅读 1

深度:Hadoop对Spark五大维度正面比拼报告!

每年,市场上都会出现种种不同的数据管理规模、类型与速度表现的分布式系统。在这些系统中,Spark和hadoop是获得最大关注的两个。然而该怎么判断哪一款适合你?   如果想批处理流量数据,并将其导入HDFS或使用Spark Streaming是否合理?如果想要进行机器学习和预测建模,Mahout或MLLib会更好地满足您的需求吗? ![](https://upload-images.jianshu.io/upload_images/11678900-7120f23e4f0b6ed6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) 为了增加混淆,Spark和Hadoop经常与位于HDFS,Hadoop文件系统中的Spark处理数据一起工作。但是,它们都是独立个体,每一个体都有自己的优点和缺点以及特定的商业案例。   本文将从以下几个角度对Spark和Hadoop进行对比:体系结构,性能,成本,安全性和机器学习。   什么是Hadoop? * Hadoop在2006年开始成为雅虎项目,随后成为顶级的Apache开源项目。它是一种通用的分布式处理形式,具有多个组件: * HDFS(分布式文件系统),它将文件以Hadoop本机格式存储,并在集群中并行化; * YARN,协调应用程序运行时的调度程序; * MapReduce,实际并行处理数据的算法。 * Hadoop使用Java搭建,可通过多种编程语言访问,用于通过...
p柯西 发布于 2天前

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征?   RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的RDDs、转换现有的RDDs,或者调用RDDs上的操作来计算结果。        在Spark中,一个RDD仅仅是一个不可变的分布式对象集合.每个RDD被切分成多个可以在不同集群节点上进行计算的partitions.RDDs可以包含Python,Java和Scala任何类型的对象,包括用户自定义的class文件。        用户创建RDD的两种方法:通过加载外部数据集或者通过在使用者运行的driver程序中分配一个对象集合。 一旦创建,RDD提供两种操作类型:转换(transformations)和执行(actions)。Transformations会根据之前的RDD构造一个新的RDD Transformations和actions的区别在于Spark计算RDD的方式.尽管你可以随时定义新的RDD,但是Spark只在他们第一次被action使用的时候进行计算。 最终,每当你在Spark的RDD上运行一个action,默认会重新计算。如果你想在多个action上重新使用一个RDD,RDD.persist()方法可以进行保存。 总的来讲,每个Spark项目或者shell对话都包含以下步骤: 1.从外部数据创建一些输入RDD 2...
tuoleisi77 发布于 2天前 阅读 5

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了语言排行第一名。 从学习难易度来看,作为一个为“优雅”而生的语言,Python语法简捷而清晰,对底层做了很好的封装,是一种很容易上手的高级语言。在一些习惯于底层程序开发的“硬核”程序员眼里,Python简直就是一种“伪代码”。   大数据学习QQ群:199427210 在大数据和数据科学领域,Python几乎是万能的,任何集群架构软件都支持Python,Python也有很丰富的数据科学库,所以Python不得不学。 Linux:因为大数据相关软件都是在Linux上运行的,所以Linux要学习的扎实一些,学好Linux对你快速掌握大数据相关技术会有很大的帮助,能让你更好的理解hadoop、hive、hbase、spark等大数据软件的运行环境和网络环境配置,能少踩很多坑,学会 shell就能看懂脚本这样能更容易理解和配置大数据集群。还能让你对以后新出的大数据技术学习起来更快。 好说完基础了,再说说还需要学习哪些大数据技术,可以按我写的顺序学下去。 Hadoop:这是现在流行的大数据处理平台几乎已经成为大数据的...
董黎明 发布于 2天前 阅读 9

maven编译scala,依赖包打包到jar里

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>haha</groupId> <artifactId>test</artifactId> <version>1.0-SNAPSHOT</version> <dependencies> <dependency> <!-- Spark dependency --> <groupId>org.apache.spark</groupId> <artifactId>spark-sql_2.11</artifactId> <version>2.2.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-mllib_2.10 --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-mllib_2.11</artifactId> <version>2.2.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifa...
守望者之父 发布于 3天前 阅读 5

什么是大数据及大数据技术?

一方面,从技术角度看,大数据只是一种方法;一方面从现实角度看,大数据是一种新产生的业态,并且还处于初级阶段;一方面是从规模上看,体量大,范围广;一方面是从本质上看,大数据就是能够采集到的全部生命活动、非生命活动产生的记录所生成的数据,并通过技术手段存储、传输、计算、统计、分析、利用及提取有价值的信息的整个活动过程及所采用到的技术的整体,包括宇宙本身及活动,生命体自身、生存环境及全部生命及非生命活动所产生的记录所生成的数据。 大数据学习QQ群:716581014 关于因果关系与相关关系的问题。所谓相关关系思维,例如可以通过环境数据反映环境中的生命体的一些情况,并通过这些情况可以反映出其他方面的情况,或者通过某种方法计算、统计、分析之后预测到有因果关系或存在相关关系的某种领域的情况;反过来,也可以通过生命体自身的生理特征数据或者行为特征数据,反映出自然环境存在的状况,或者提取某种信息以预测到其他存在因果关系或相关关系的事件或领域存在状况,或者是将会发生的状况。 应用于商业,可以通过某种历史数据或现实数据,预测到某地区,或某类人群,或某段时间,人们的购买力,消费欲望指数,成交比例,成交金额等等。 应用于...
董黎明 发布于 3天前 阅读 12

Redis Cluster介绍与搭建

https://blog.csdn.net/men_wen/article/details/72853078
林小宝 发布于 4天前 阅读 3

月薪30-50K的大数据开发工程师们,他们背后是如何学习的

这两天小编去了解了下大数据开发相关职位的薪资,主要有hadoop工程师,数据挖掘工程师、大数据算法工程师等,从平均薪资来看,目前大数据相关岗位的月薪均在2万以上,随着项目经验的增长工资会越来越高。 那么对于新手来说,应该如何开始学习,才能够早日的实现月薪2万多的目标。就小编了解的来说,新手一般需要一年以上的时间才能够达到2万以上的薪资,目前很多人选择参加培训然后快速进入工作岗位,积累经验,客观的讲在目前的情况下,不失为一种方法。另外一种就是自学,优点是如果能够坚持下来,所积累的东西更多,后期爆发成长更好,但是缺点也比较明显,周期比较长,需要长期的坚持。 分享之前我还是要推荐下我自己创建的大数据分析分享群 716581014,这是大数据学习交流的地方,不管你是小白还是大牛,小编都欢迎,今天的资料已经上传到群里,不定期分享干货,包括我整理的一份适合2018年学习的大数据分析以及可视化的资料和零基础入门教程,欢迎初学和进阶中的小伙伴。 大数据是一个很有前景的行业,但是同样进入门槛也比较高,对于想要进入的朋友,如有经济条件允许,可以去参加培训;但是同样也可以尝试下自学,对于想要从0开始自学的朋友,欢迎进入我们的大数据...
董黎明 发布于 4天前 阅读 18

Spark随机森林RandomForest

位于ml/tree/impl/目录下。mllib目录下的随机森林算法也是调用的ml下的RandomForest。ml是mllib的最新实现,将来是要替换掉mllib库的。 RandomForest核心代码 train方法 每次迭代将要计算的node推入堆栈,选择参与计算的抽样数据,计算该节点,循环该过程。   while (nodeStack.nonEmpty) {       // Collect some nodes to split, and choose features for each node (if subsampling).       // Each group of nodes may come from one or multiple trees, and at multiple levels.       val (nodesForGroup, treeToNodeToIndexInfo) =         RandomForest.selectNodesToSplit(nodeStack, maxMemoryUsage, metadata, rng)       // Sanity check (should never occur):       assert(nodesForGroup.nonEmpty,         s"RandomForest selected empty nodesForGroup.  Error for unknown reason.")         // Only send trees to worker if they contain nodes being split this iteration.       val topNodesForGroup: Map[Int, LearningNode] =         nodesForGroup.keys.map(treeIdx => treeIdx ->...
守望者之父 发布于 4天前 阅读 9

华为云」云中优选惠,全场低至2折,6.19-6.30开抢,签到抽P20

华为云年中钜惠,注册抽免费高配(2核4G)云服务器,单人成团2折起抢购热销云产品;云服务器、数据库、安全防护、大数据等150+云产品,更有精彩好礼送不停!
华为云

在浏览器中进行深度学习:TensorFlow.js (六)构建一个卷积网络 Convolutional Network

在上一篇中,我们介绍了了用TensorflowJS构建一个神经网络,然后用该模型来进行手写MINST数据的识别。和之前的基本模型比起来,模型的准确率上升的似乎不是很大。(在我的例子中,验证部分比较简单,只是一个大致的统计)甚至有些情况下,如果参数选择不当,训练效果还会更差。 卷积网络,也叫做卷积神经网络(con-volutional neural network, CNN),是一种专门用来处理具有类似网格结构的数据的神经网络。例如时间序列数据(可以认为是在时间轴上有规律地采样形成的一维网格)和图像数据(可以看作是二维的像素网格)。对于MINST手写数据来说,应用卷积网络会不会是更好的选择呢? 先上图: 代码见Codepen 该图是我应用CNN对MINST数据进行训练的结果,准确率在97%,可以说和之前的模型来比较,提高显著。要知道,要知道在获得比较高的准确率后,要提高一点都是比较困难的。那我们就简单的看看卷积网络是什么,他为什么对于手写数据的识别做的比其他模型的更好? CNN的原理实际上是模拟了人类的视觉神经如何识别图像。每个视觉神经只负责处理不同大小的一小块画面,在不同的神经层次处理不同的信息。 卷积和核 大家可能有用过Photoshop的经验,Photoshop提供很多不同类型的...
naughty 发布于 1个月前 阅读 1461 评论 12 点赞 4

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

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

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个月前 阅读 1106 点赞 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 发布于 4个月前 阅读 4055 评论 6 点赞 5

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

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

大数据平台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 发布于 4个月前 阅读 1878 评论 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 发布于 6个月前 阅读 2256 点赞 8

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

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

深度思考Spark Runtime机制

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

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

一个Hive SQL语句的执行需要经历哪些阶段? 在这些阶段中,我们可以做哪些事来影响它? Hive为我们提供了很多的钩子函数,我们可以怎样利用它为Hive实现扩展?
问津已非少年 发布于 10个月前 阅读 906 评论 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...
雪饼 发布于 12个月前 阅读 2522 评论 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...
雪饼 发布于 12个月前 阅读 5304 评论 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
小帅帅丶 发布于 1年前 阅读 7203 评论 5 点赞 6

Elasticsearch 与 Thinkphp 增删改查操作

qq群:486252137
VHUOI 发布于 1年前 阅读 1624 评论 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...
狂奔小蜗牛 发布于 1年前 阅读 3636 评论 3 点赞 3 打赏 2

CentOS7搭建 Hadoop + HBase + Zookeeper集群

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

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

本文是系列文章的最后一篇,这个系列会详细描述如何使用像Ignite这样的内存数据网格(IMDG)技术来构建容错和可扩展的微服务解决方案。
李玉珏 发布于 1年前 阅读 1824 评论 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年前 阅读 3923 评论 53 点赞 19
顶部