架构
介绍
Falcon是一个面向Hadoop的数据集和处理过程的管理平台。Falcon本质上是通过数据处理引擎将数据集和处理过程的配置文件转化为重复的业务处理流程。Falcon并不做任何繁重的工作,所有的过程和处理流管理都是由工作流调度器来完成的。Falcon所做的就是维持实体之间的依赖关系。Falcon给开发人员提供便捷。
架构的整体框架
调度器
Falcon选择Oozie作为默认的调度器。当然Falcon也可以和其他的调度器进行整合。面向Hadoop的许多的数据处理组件都需要具备数据有效性和实时性两方面的要求。Oozie正好满足这些属性,因此将选择Oozie作为Falcon的调度器。
即使Oozie可以工作的很好,但在某些场景中,Oozie的调度也被证明存在限制。在当前的版本中,Falcon依赖Oozie去调度和工作流的执行。 Falcon relies on Oozie for both scheduling and for workflow execution, due to which the scheduling is limited to time based/cron based scheduling with additional gating conditions on data availability. 这本身对数据集的周期性具有了强加的限制.为了提供更好的调度能力,Falcon将推出自己的调度器。
控制流
即使实际工作中,调度器(Oozie)负责工作流,Falcon通过订阅每一个工作流可能产生的信息依旧保持着执行路径。当Falcon在Oozie中产生一个工作流,When Falcon generates a workflow in Oozie, it does so, after instrumenting the workflow with additional steps which includes messaging via JMS.Falcon能够订阅这些控制信息和能够完成例如撤销,处理后序数据等的展示。
Feed Schedule flow
Process Schedule flow
部署模式
Falcon有两种基本组件:Falcon Prism and Falcon Server,正如这个名字所说Falcon Prism切割到达Falcon server的请求。
Stand Alone Mode(独立模式)
当Hadoop工作流和处理相关的数据仅仅涉及一个Hadoop集群就可以使用独立模式。在这种模式中,Falcon Server通过Oozie去调度工作流在hadoop集群。所有的 process/feed都会有提交,调度,挂起,杀死等过程信息被发送到这个服务器。对于这种Falcon在配置过程中应该使用独立模式。
Distributed Mode(分布式) 分布式模式是为了多个hadoop集群的案例,以及需要多个工作流调度器去调度他们。在这种模式中,falcon有两个组件Prism and Server(s),每个Prism and servers都会有他们自己的计划配置(运行时间和启动任务所具备的配置)以及他们各自的配置位置。在这个模式中Prism作为两个falconServer的连接点,所有的命令对于Prism都适用,但是只有read and instance api对Server是有用的。接下来的请求能被发送到每一个Hadoop集群:
Prism:submit, schedule, submitAndSchedule, Suspend, Resume, Kill, instance management
Server: schedule, suspend, resume, instance management
正如上面观察到的,Submit和Kill只能对Prism进行,这样可以保持所有的配置信息在不同的集群中保持同步。
请求可以通过Prism发出直接在CLI指定-colo参数来指定特定的falcon集群,or append the same in web request, if using API.
在Falcon Prism中,当一个cluster被提交,它被默认的发到每一个Falcon server。当Feed被提交或者调度后,只会被发送到feed/process配置文件中指定的FalconServer。Server属性在feed/process的xml文件中通过 CLUSTER标签来指定。
Communication between prism and falcon server (for submit/update entity function) is secured over https:// using a client-certificate based auth.Prism server需要提供有效的客户端验证才能使Falcon server来接收请求。
如果TLS可以使用,启动配置文件在falcon prism和Falcon Server需要配置* keystore.file * keystore.password
Falcon——Prism图解
安全模式
安全模式是为了防止Falcon用户对工作流引擎中的调度实体进行操作,这在下面两种情况中起作用:
Hadoop集群更新
Falcon集群的实体被更新
在安全模式下,用户只能进行限制的操作,其中包括:
用户可以对经过授权的实体对象进行读操作
管理员用户可以对集群中的实体进行更新操作
如果用户想去suspend特定的工作,独立的实例可以被Suspend/Kill
可调度的实体可以被suspend,这是因为用户可能想去挂起实体操作在处理工作流与版本不兼容的问题中。
其中被禁止的动作包括: (1)所有实体的 submit, submitAndSchedule操作 (2)实体的操作: update, schedule, touch, delete, submit, submitAndSchedule, resume (3)实例化的操作不被允许: rerun, resume
Getting into/out-of Safemode. 用户可以使用如下命令进入或者退出安全模式:
falcon-start -setsafemode
/bin/falcon admin [-setsafemode <true /false >]
GET http: //falcon-server:15000/api /admin/set SafeMode/true
OR
GET http: //falcon-server:15000/api /admin/set SafeMode/false
NOTE
用户可以发现是否Falcon Server处与安全模式by calling the Admin Version API,一旦Server被设置成安全模式,他的状态会一直处于安全模式,如果用户想退出安全模式必须进行明确的设置。
配置存储
配置存储文件系统Falcon可以将定义的实体存储在其中,这个文件系统可以是本地文件系统或者HDFS,建议将配置文件存储在和Falcon部署的不同的机器上。这可以避免在Falcon部署的系统出现硬盘损坏或者永久性失效等问题,配置存储也对先前的配置版本或者被删除的配置提供归档操作,这些文件讲永远不能被Falcon server访问和他们仅仅提供追踪实体配置的历史变化。
原子操作
当Falcon执行实体操作时,当需要做许多操作时,如果一个操作失败了,可能造成不统一的状态。为避免这一情况的发生,所有的个人操作都被记录在事务日志里面,这个日志用来回滚整体的用户操作。某些情况下,撤销操作是不成功的,在这些情况下,Falcon尝试尽力去保持系统的一致性。
存储
Falcon introduces a new abstraction to encapsulate the storage for a given feed which can either be expressed as a path on the file system, 文件系统存储或者在Hcatalog的表,such as Hive, Catalog Storage.
<xs:choice minOccurs ="1" maxOccurs ="1" >
<xs:element type ="locations" name ="locations" />
<xs:element type ="catalog-table" name ="table" />
xs:choice >
任何一个Feed都应该包含其中的一个
File System Storage(文件系统存储) 这表示为文件系统上的一个存储路径,这个路径指定了Feed在这个集群上的哪个地方具有有效性,一个路径的标签包含:data, meta, stats 以及他们相应的路径,一个Feed至少包含data路径标签,这个标签指定了feed周期性产生数据的HDFS的路径,例如: ex: type=”data” path=”/projects/TrafficHourly/ Y E A R − {MONTH}-${DAY}/traffic” The granularity of date pattern in the path should be at least that of a frequency of a feed.
type="data" path="/projects/falcon/clicks" />
type="stats" path="/projects/falcon/clicksStats" />
type="meta" path="/projects/falcon/clicksMetaData" /
Catalog Storage (Table)表
一个表的标签指定了在catalog中注册的表的URI:
catalog:$database -name :$table -name #partition -key = partition-value );partition-key = partition-value );*
这是一个URI的模板,它并没有对 Hive or HCatalog任何的参考,它对于所有实现catalog registry都能够适用,The catalog implementation specified in the startup config provides implementation for the catalog URI. 高级分区必须是一个日期的模式,在日期模式的设置必须和feed的频率设置一致。
例如:
"catalog:default:clicks#ds=${YEAR} -${MONTH} -${DAY} -${HOUR} ;region=${region} " />
"catalog:src_demo_db:customer_raw#ds=${YEAR} -${MONTH} -${DAY} -${HOUR} " />
"catalog:tgt_demo_db:customer_bcp#ds=${YEAR} -${MONTH} -${DAY} -${HOUR} " />
Falcon配置
Falcon配置详见Falcon配置专题
实体管理操作
所有的操作都可以使用Falcon’s RESTful API来完成
Submit
实体Submit操作允许用户将新的cluster/feed/process提交到falcon,被Submit的实体并没有被调度,只是为falcon服务提供简单的配置信息,除了对验证添加的实体本身进行验证之外,也会对配置文件中的相应的配置进行验证和验证这个实体所依赖的实体。
List
列出falcon 配置仓库下所有的特定的类型的实体,包括被调度和被提交的实体配置。
Dependency
列出所指定的实体的所依赖的实体。这个会显示出这个实体被当做依赖的部分和被依赖的部分两部分进行显示。
Schedule
对于已经提交的Feed/Process可以被调度,对于被调度的实体,Falcon将把这些重复性的行为作为Oozie的协调器和利用Oozie 调度器去执行他们(它也可以是除了Oozie以外的调度器),Falcon对feed/process工作流产生另外的ID,这个额外的IP可以被用来对实例的管理。
这个调度将用户的指定的工作流和库复制到一个临时的路径,而调度器引用工作流和库在这个临时路径。
Suspend
这个动作只对已经提交的实体有用,这个触发器可已将早起进行调度的实体进行执行,在挂起装态下的Feed/Process没有被执行。
Resume
将一个挂起的feed/process实体重新返回的执行状态。
Status
返回当前的实体的状态
Definition
得到已经被提交的实体的定义. Please note that user documentations in the entity will not be retained.
Delete
delate操作将删除所有在调度期的工作流,并且将提交的实体从falcon中删除,只有当这个实体没有被依赖的时候,这个实体才会被删除。
Update
Update操作允许对早已经提交或者调度的实体进行更新操作,更新Feed可能导致所有串联的Process进行更新,Process update triggers update in falcon if entity is scheduled.
Cluster update will require user to update dependent Feed and Process entities that are already scheduled. 集群更新需要在falcon安全模式下进行. We provide a CLI command for the user to update the scheduled dependent entities after cluster update and exiting safemode.
下列的动作将被视为更新:
更新旧的被调度的实体设置结束时间为“now”
调度每一个开始时间为“now”的process/feed
实例管理操作
参考源网页(后序优化)
你可能感兴趣的:(Falcon入门)
Deep learning for Computer Vision with Python(1)从零开始入门计算机视觉
Hazelyu27
计算机视觉 大数据 计算机视觉 深度学习
本书的内容分成三个部分:1.初始阶段初始阶段学习:机器学习、神经网络、卷积神经网络、建立数据集。2.实践阶段实践阶段:深入学习深度学习,理解先进技术,发现最佳实践方式。3.图像网络阶段完成计算机视觉领域的经验积累。使用大规模数据集和真实图片案例作为数据集,包括年龄和性别预测,交通工具模型识别。本书提供了对应网站:http://pyimg.co/fnkxk本文介绍前两章内容:基本介绍和深度学习简介。
pythoncharm安装配置_pycharm的安装与配置
weixin_39887183
pythoncharm安装配置
1.pycharm的下载step1:打开下载网址:http://www.jetbrains.com/pycharm/step2:点击下载按钮。step3:专业版是收费的,社区版是免费的,并且社区版新手使用足够,我们这里下载社区版。2.pycharm的安装pycharm的安装依然是傻瓜化安装,基本一路next,这里只强调一点安装时切记勾选64-bit那么一个选项3.pycharm的入门基础配置ste
深度学习目标检测入门COCO数据集
日暮途远z
深度学习 目标检测 人工智能
常见数据集类型:COCO数据集:Pytorch加载COCO数据集:COCO数据集的读取COCO_dataset=torchvision.datasets.CocoDetection(root="./dataset/val2017",annFile="./instances_val2017/instances_val2017.json")root(strorpathlib.Path)–Rootdir
ASP.NET Core 入门教学二十一 分布式追踪技术
充值内卷
asp.net 分布式
分布式追踪技术在微服务架构中非常重要,它可以帮助开发者理解和监控应用程序在分布式环境中的行为。ASP.NETCore提供了对分布式追踪的原生支持,主要通过OpenTelemetry和ApplicationInsights实现。1.OpenTelemetryOpenTelemetry是一个开源的观测框架,用于生成、收集和导出遥测数据(如追踪、指标和日志)。ASP.NETCore可以通过集成OpenT
2021-06-08
2018心如止水
张雲芳焦点解决网络课程学习坚持分享第785天20210608本周第1次(约练总285)焦点解决短期心理治疗是一个入门易,精进难的学派,需要学习者多年的学习、练习、反思与坚持。学习焦点不能一步登天,更不能一蹴而就,她需要循序渐进的学习,才能慢慢形成焦点的思维模式。
音视频入门基础:WAV专题(5)——FFmpeg源码中解码WAV Header的实现
cuijiecheng2018
FFmpeg源码分析 音视频技术 音视频 ffmpeg
=================================================================音视频入门基础:WAV专题系列文章:音视频入门基础:WAV专题(1)——使用FFmpeg命令生成WAV音频文件音视频入门基础:WAV专题(2)——WAV格式简介音视频入门基础:WAV专题(3)——FFmpeg源码中,判断某文件是否为WAV音频文件的实现音视频入门基础:W
Spring Cloud Alibaba(5)---Nacos(配置中心)
Java代码狗
java spring spring boot 大数据 linux
有关SpringCloudAlibaba之前写过四篇文章,这篇也是在上面项目的基础上进行开发。SpringCloudAlibaba(1)---入门篇SpringCloudAlibaba(2)---RestTemplate微服务项目SpringCloudAlibaba(3)---Nacos概述SpringCloudAlibaba(4)---Nacos(注册中心)前言有关Nacos客户端的搭建和Nac
Jmeter、Python、Postman测试工具对比
测试界的海飞丝
软件测试 自动化测试 测试工具 jmeter python
一、JMeter总结:适合对代码不敏感的使用人员,不会代码也可以完成接口自动化,设计框架。适合紧急迭代的项目。JMeter接口测试的优势小巧轻量级,并且开源免费,社区接受度高,比较容易入门支持多协议,并提供了比较高级的扩展能力,允许自己定义和扩展新的协议支持,比如扩展支持阿里提供的Dubbo协议的JMeter插件等学习者不需要会代码,不需要编程,熟悉http请求,熟悉业务流程,就可以根据页面中in
【Redis基础篇】详细讲解Redis
小林同学学JAVA
redis数据库 redis 服务器 nosql 缓存 数据库 java spring boot
这篇文章让你详细了解Redis的相关知识,有代码讲解以及图片剖析,让你更轻松掌握制作不易,感觉不错,请点赞收藏哟!!!目录1redis基础1.1定义1.2SQL和NOSQL不同点1.3特征1.4Redis通用命令1.5Redis数据结构介绍1.6Redis的java客户端2Jedis快速入门2.1操作步骤2.2Jedis连接池3SpringDataRedis3.1定义3.2优势3.3API3.4操
VSCode查看Android源码,从入门到放弃
阳哥说全栈
Android android vscode java
VSCode查看Android源码比较简单,首先下载Android源码,我用的Mac,所以比较方便,对了repo在homebrew里面就有,直接brewinstallrepo就可以,但是版本比官方的略低,但是可以用,只是有警告。下载之后直接用VSCode加载文件夹即可,直接可以在目录里面打开文件,对于非jdk的类能定位到文件位置,但是jdk的源码无法定位,显示的是.class文件反编译出来的代码,
babel系列科普文
赖次Go
《Babel插件开发入门指南》https://www.chyingp.com/posts/how-to-write-a-babel-plugin/《babel-preset-env学习指南》https://www.chyingp.com/posts/understanding-babel-preset-env/《Babel:plugin、preset的区别与使用》https://www.chyin
Rust入门(十五):高级特性
摸鱼老萌新
rust入门 rust 开发语言 后端
rust具有很多高级的特性,比如高级的trait、高级的类型和高级的函数和闭包高级trait关联类型关联类型(associatedtypes)是一个将类型占位符与trait相关联的方式,这样trait的方法签名中就可以使用这些占位符类型。我们使用type来定义占位符类型一个带有关联类型的trait的例子是标准库提供的Iteratortrait,它有一个叫做Item的关联类型来替代遍历的值的类型,这
Python文件操作完全指南:从基础到高级技巧的全面解析
步入烟尘
Python超入门指南全册 python 开发语言
本文已收录于《Python超入门指南全册》本专栏专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从基础到精通不断进阶深入,后续还有实战项目,轻松应对面试,专栏订阅地址:https://blog.csdn.net/mrdeam/category_12647587.html优点:订阅限时19.9付费专栏,私信博主还可进入全栈VIP答疑群,作者优先解答机会(代码指导、远程服务),群里大佬众多可以
QT之QML从入门到精通(第二章)
only-lucky
qt 开发语言
本章介绍QML部件(component)和加载(Loader)的基本使用引言importQtQuick2.12importQtQuick.Window2.12importQtQuick.Controls2.12Window{visible:truewidth:640height:480title:qsTr("HelloWorld")Component.onCompleted:{console.lo
DOCKER入门概述
木冷风
一、Docker主要组成部分的总体概述、二、Docker镜像生成1.构建环境的上下文dockerbuild–ttest/cowsay-dockerfile.(.就是上下文,能够被dockerfile的ADD或COPY指令所引用,通常以目录路径的形式指定,该目录下的所有文件和目录形成了构建环境的上下文)。“-”可以将STDIN输入作为构建环境的上下文2.镜像层Dockerfile中的每个指令执行后都
C++入门基础篇学习手记: 读取数量不定的输入数据
linhuanzhi
西加加 C++ 数据求和
问题:编写C++程序,要求计算用户输入数据的总和,并打印显示。问题分析:用户输入数据时,由于我们事先不知道要对多少个数据进行求和计算,因此我们需要不断地读取数据直至没有新的输入为止。程序实现的源码如下:#include"iostream"usingnamespacestd;intmain(){doublesum=0,inValue=0;cout>inValue)sum+=inValue;cout<
vuex小白入门
前端一菜鸟
首先:Vuex是什么?有关于Vuex,官网是这样定义的:Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。我是这么认为的:Vuex是为了解决多个组件共享状态而存在的。他能够有效的解决兄弟组件,父子组件,爷孙组件的传值。他将组件的共享状态抽取出来,以一个全局单例模式管理。Vuex有以下5个重要属性:1
Python语言程序设计入门-0.2
孟德尔的小豌豆007
0.2.1课程内容概述课程内容设计-符合认知规律、快速入门、全体系内容-三部分:第一部分:快速入门(2)2个实例,基本语法元素第二部分:基础语法(5)五个方面基础语法全体系,10个实例第三部分:编程思维(2)方法学0.2.2渐进式体验1.快速入门week1.观察一段代码,学会编写和运行-感受风格-了解逻辑-理解每个词week2.python基本图形绘制,学会绘图进一步观察一段代码-感受风格-了解逻
数据分析师之打杂入门--运营学习
爱数据爱分析
接上篇数据分析师之打杂入门--数据技能学习(网址:https://www.jianshu.com/writer#/notebooks/41435296/notes/58416752)在经历了辛苦的业务学习、数据学习后,很多分析师们以为可以羽扇纶巾、指点江山、激扬数据、提出策略、指导业务发展了。然而现实是:1、今天拉个数据,明天换个统计口径再拉数据。2、本周开发个报表,下周叠加字段继续开发报表,加班
python web应用开发神器 入门十六
openwin_top
python 前端 开发语言 web streamlit
系列文章目录目录pythonweb应用开发神器入门一pythonweb应用开发神器入门二pythonweb应用开发神器入门三pythonweb应用开发神器入门四pythonweb应用开发神器入门五pythonweb应用开发神器入门六
【海外自媒体运营】ins
自行车上的邮差
Ins营销快速入门指南——原文来自:https://zhuanlan.zhihu.com/p/54016350Ins(照片墙)是一款运行在移动端上的社交应用,以一种快速、美妙和有趣的方式将我们随时抓拍下的图片彼此分享。分享的时候可以采用它自带的十几种滤镜效果,同时可以分享到Facebook,Twitter等社交媒体。Ins有10亿多个活跃账户,其中5亿用户每天都在活跃。4亿个账户每天都在使用故事(
2.工厂相关(简单工程、工厂方法、抽象工厂)——设计模式入门系列
胡耀超
设计模式 设计模式 java 开发语言
工厂模式是一种创建型设计模式,目的是将对象的创建过程与其使用过程分离,从而提高代码的可维护性、扩展性和灵活性。工厂模式主要包括三种常见的形式:简单工厂模式、工厂方法模式、和抽象工厂模式。每种模式都有各自的特点、应用场景及优缺点。1.简单工厂模式(SimpleFactoryPattern)概述简单工厂模式又称为静态工厂方法模式,是由一个工厂类决定创建哪一种产品类的实例。客户端通过工厂类的静态方法创建
Node.js入门与生态全解析:包管理与构建工具详解
Switch616
前端 node.js 服务器 前端 es6 前端框架
Node.js入门与生态全解析:包管理与构建工具详解目录包管理使用npm和yarn:项目依赖管理的利器创建和发布npm包:实现模块化与共享⚙️构建工具使用Webpack和Babel:高效打包与代码转换配置构建流程:优化与自动化的最佳实践包管理-使用npm和yarn:项目依赖管理的利器在Node.js的开发过程中,包管理是核心环节之一,它提供了管理第三方库、共享代码及简化依赖项管理的功能。Node.
编程小白如何成为大神:大学新生的最佳入门攻略
专家大圣
学习
在当今数字化的时代,编程已经成为一项不可或缺的技能。对于大学新生来说,掌握编程不仅可以为他们的学业提供帮助,还能为未来的职业发展打下坚实的基础。然而,对于许多编程小白来说,面对众多的编程语言和学习资源,往往会感到迷茫和不知所措。本文将为大学新生提供一份最佳入门攻略,帮助他们从编程小白逐渐成长为大神。一、引言(一)编程在当代社会的重要性编程在当今社会的各个领域都发挥着重要的作用。无论是科学研究、数据
pytorch NLP自然语言处理入门一:文本表示
whyte王
pytorch NLP基础 pytorch 自然语言处理 人工智能
开始编辑:2024/2/16;最后编辑2024/2/16教程出自:https://learn.microsoft.com/en-sg/training/modules/intro-natural-language-processing-pytorch/第二部分:https://blog.csdn.net/qq_33345365/article/details/136142152本博客旨在探讨处理自
【代码随想录训练营第42期 续Day52打卡 - 图论Part3 - 卡码网 103. 水流问题 104. 建造最大岛屿
逝去的秋风
代码随想录打卡 算法 深度优先 图论
目录一、做题心得二、题目与题解题目一:卡码网103.水流问题题目链接题解:DFS题目二:卡码网104.建造最大岛屿题目链接题解:DFS三、小结一、做题心得也是成功补上昨天的打卡了。这里继续图论章节,还是选择使用DFS来解决这类搜索问题(单纯因为我更熟悉DFS一点),今天补卡的是水流问题和岛屿问题。个人感觉这一章节题对于刚入门图论还是挺有难度的,我们需要搞清楚DFS函数的作用,以及具体的代码书写,然
C语言初阶 --- ⾃定义类型:结构体
tbRNA
c语言 开发语言
个人主页:tbRNA-CSDN博客个人简介:在校大学生一枚.希望我的文章对大家有着不一样的帮助,欢迎大家关注我,感谢大家的多多支持!欢迎点赞✍评论⭐收藏往期文章:C语言初阶---数据在内存中的存储C语言初阶---字符串函数C语言入门---函数递归C语言初阶---内存函数C语言入门---分支循环C语言初阶---指针类型目录1.结构体类型的声明1.1结构体回顾1.1.1结构的声明1.1.2结构体变量的
网络安全最新网络安全-SSRF漏洞原理、攻击与防御(1),2024年最新网络安全程序员架构之路该如何继续学习
2401_84265972
程序员 网络安全 学习 面试
如何自学黑客&网络安全黑客零基础入门学习路线&规划初级黑客1、网络安全理论知识(2天)①了解行业相关背景,前景,确定发展方向。②学习网络安全相关法律法规。③网络安全运营的概念。④等保简介、等保规定、流程和规范。(非常重要)2、渗透测试基础(一周)①渗透测试的流程、分类、标准②信息收集技术:主动/被动信息搜集、Nmap工具、GoogleHacking③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF
Java 入门指南:初识 Java 异常(Exception)
ZachOn1y
Java java 开发语言 后端 java-ee 个人开发 团队开发
初识Java异常何为异常在Java中,异常是一个不需要的或意外的事件,它发生在程序执行期间,即在运行时,破坏了程序指令的正常流程。异常可以被程序捕获(catch)和处理(handle)。方法中发生异常时,它会创建一个对象,称为异常对象(ExceptionObject)。它包含有关异常的信息,例如异常的名称和描述以及异常发生时程序的状态。导致异常的原因无效用户输入设备故障网络连接丢失物理限制(磁盘内
Python实用技巧: 获取 后缀名(扩展名) 或 文件名
高斯小哥
Python基础【高质量合集】 python 开发语言 str 扩展名 后缀名
Python实用技巧:获取后缀名(扩展名)或文件名个人主页:高斯小哥高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程希望得到您的订阅和支持~创作高质量博文,分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)文章目录一、引言二、获取文件名三、获取文件扩展名四、实战案例五、总结六、最后一、引言
java数字签名三种方式
知了ing
java jdk
以下3钟数字签名都是基于jdk7的
1,RSA
String password="test";
// 1.初始化密钥
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA");
keyPairGenerator.initialize(51
Hibernate学习笔记
caoyong
Hibernate
1>、Hibernate是数据访问层框架,是一个ORM(Object Relation Mapping)框架,作者为:Gavin King
2>、搭建Hibernate的开发环境
a>、添加jar包:
aa>、hibernatte开发包中/lib/required/所
设计模式之装饰器模式Decorator(结构型)
漂泊一剑客
Decorator
1. 概述
若你从事过面向对象开发,实现给一个类或对象增加行为,使用继承机制,这是所有面向对象语言的一个基本特性。如果已经存在的一个类缺少某些方法,或者须要给方法添加更多的功能(魅力),你也许会仅仅继承这个类来产生一个新类—这建立在额外的代码上。
读取磁盘文件txt,并输入String
一炮送你回车库
String
public static void main(String[] args) throws IOException {
String fileContent = readFileContent("d:/aaa.txt");
System.out.println(fileContent);
js三级联动下拉框
3213213333332132
三级联动
//三级联动
省/直辖市<select id="province"></select>
市/省直辖<select id="city"></select>
县/区 <select id="area"></select>
erlang之parse_transform编译选项的应用
616050468
parse_transform 游戏服务器 属性同步 abstract_code
最近使用erlang重构了游戏服务器的所有代码,之前看过C++/lua写的服务器引擎代码,引擎实现了玩家属性自动同步给前端和增量更新玩家数据到数据库的功能,这也是现在很多游戏服务器的优化方向,在引擎层面去解决数据同步和数据持久化,数据发生变化了业务层不需要关心怎么去同步给前端。由于游戏过程中玩家每个业务中玩家数据更改的量其实是很少
JAVA JSON的解析
darkranger
java
// {
// “Total”:“条数”,
// Code: 1,
//
// “PaymentItems”:[
// {
// “PaymentItemID”:”支款单ID”,
// “PaymentCode”:”支款单编号”,
// “PaymentTime”:”支款日期”,
// ”ContractNo”:”合同号”,
//
POJ-1273-Drainage Ditches
aijuans
ACM_POJ
POJ-1273-Drainage Ditches
http://poj.org/problem?id=1273
基本的最大流,按LRJ的白书写的
#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int ma
工作流Activiti5表的命名及含义
atongyeye
工作流 Activiti
activiti5 - http://activiti.org/designer/update在线插件安装
activiti5一共23张表
Activiti的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
A
android的广播机制和广播的简单使用
百合不是茶
android 广播机制 广播的注册
Android广播机制简介 在Android中,有一些操作完成以后,会发送广播,比如说发出一条短信,或打出一个电话,如果某个程序接收了这个广播,就会做相应的处理。这个广播跟我们传统意义中的电台广播有些相似之处。之所以叫做广播,就是因为它只负责“说”而不管你“听不听”,也就是不管你接收方如何处理。另外,广播可以被不只一个应用程序所接收,当然也可能不被任何应
Spring事务传播行为详解
bijian1013
java spring 事务传播行为
在service类前加上@Transactional,声明这个service所有方法需要事务管理。每一个业务方法开始时都会打开一个事务。
Spring默认情况下会对运行期例外(RunTimeException)进行事务回滚。这
eidtplus operate
征客丶
eidtplus
开启列模式: Alt+C 鼠标选择 OR Alt+鼠标左键拖动
列模式替换或复制内容(多行):
右键-->格式-->填充所选内容-->选择相应操作
OR
Ctrl+Shift+V(复制多行数据,必须行数一致)
-------------------------------------------------------
【Kafka一】Kafka入门
bit1129
kafka
这篇文章来自Spark集成Kafka(http://bit1129.iteye.com/blog/2174765),这里把它单独取出来,作为Kafka的入门吧
下载Kafka
http://mirror.bit.edu.cn/apache/kafka/0.8.1.1/kafka_2.10-0.8.1.1.tgz
2.10表示Scala的版本,而0.8.1.1表示Kafka
Spring 事务实现机制
BlueSkator
spring 代理 事务
Spring是以代理的方式实现对事务的管理。我们在Action中所使用的Service对象,其实是代理对象的实例,并不是我们所写的Service对象实例。既然是两个不同的对象,那为什么我们在Action中可以象使用Service对象一样的使用代理对象呢?为了说明问题,假设有个Service类叫AService,它的Spring事务代理类为AProxyService,AService实现了一个接口
bootstrap源码学习与示例:bootstrap-dropdown(转帖)
BreakingBad
bootstrap dropdown
bootstrap-dropdown组件是个烂东西,我读后的整体感觉。
一个下拉开菜单的设计:
<ul class="nav pull-right">
<li id="fat-menu" class="dropdown">
读《研磨设计模式》-代码笔记-中介者模式-Mediator
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
* 中介者模式(Mediator):用一个中介对象来封装一系列的对象交互。
* 中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
*
* 在我看来,Mediator模式是把多个对象(
常用代码记录
chenjunt3
UI Excel J#
1、单据设置某行或某字段不能修改
//i是行号,"cash"是字段名称
getBillCardPanelWrapper().getBillCardPanel().getBillModel().setCellEditable(i, "cash", false);
//取得单据表体所有项用以上语句做循环就能设置整行了
getBillC
搜索引擎与工作流引擎
comsci
算法 工作 搜索引擎 网络应用
最近在公司做和搜索有关的工作,(只是简单的应用开源工具集成到自己的产品中)工作流系统的进一步设计暂时放在一边了,偶然看到谷歌的研究员吴军写的数学之美系列中的搜索引擎与图论这篇文章中的介绍,我发现这样一个关系(仅仅是猜想)
-----搜索引擎和流程引擎的基础--都是图论,至少像在我在JWFD中引擎算法中用到的是自定义的广度优先
oracle Health Monitor
daizj
oracle Health Monitor
About Health Monitor
Beginning with Release 11g, Oracle Database includes a framework called Health Monitor for running diagnostic checks on the database.
About Health Monitor Checks
Health M
JSON字符串转换为对象
dieslrae
java json
作为前言,首先是要吐槽一下公司的脑残编译部署方式,web和core分开部署本来没什么问题,但是这丫居然不把json的包作为基础包而作为web的包,导致了core端不能使用,而且我们的core是可以当web来用的(不要在意这些细节),所以在core中处理json串就是个问题.没办法,跟编译那帮人也扯不清楚,只有自己写json的解析了.
C语言学习八结构体,综合应用,学生管理系统
dcj3sjt126com
C语言
实现功能的代码:
# include <stdio.h>
# include <malloc.h>
struct Student
{
int age;
float score;
char name[100];
};
int main(void)
{
int len;
struct Student * pArr;
int i,
vagrant学习笔记
dcj3sjt126com
vagrant
想了解多主机是如何定义和使用的, 所以又学习了一遍vagrant
1. vagrant virtualbox 下载安装
https://www.vagrantup.com/downloads.html
https://www.virtualbox.org/wiki/Downloads
查看安装在命令行输入vagrant
2.
14.性能优化-优化-软件配置优化
frank1234
软件配置 性能优化
1.Tomcat线程池
修改tomcat的server.xml文件:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" maxThreads="1200" m
一个不错的shell 脚本教程 入门级
HarborChung
linux shell
一个不错的shell 脚本教程 入门级
建立一个脚本 Linux中有好多中不同的shell,但是通常我们使用bash (bourne again shell) 进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell中运行)。 如同其他语言一样
Spring4新特性——核心容器的其他改进
jinnianshilongnian
spring 动态代理 spring4 依赖注入
Spring4新特性——泛型限定式依赖注入
Spring4新特性——核心容器的其他改进
Spring4新特性——Web开发的增强
Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC
Spring4新特性——Groovy Bean定义DSL
Spring4新特性——更好的Java泛型操作API
Spring4新
Linux设置tomcat开机启动
liuxingguome
tomcat linux 开机自启动
执行命令sudo gedit /etc/init.d/tomcat6
然后把以下英文部分复制过去。(注意第一句#!/bin/sh如果不写,就不是一个shell文件。然后将对应的jdk和tomcat换成你自己的目录就行了。
#!/bin/bash
#
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
第13章 Ajax进阶(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
Troubleshooting Crystal Reports off BW
blueoxygen
BO
http://wiki.sdn.sap.com/wiki/display/BOBJ/Troubleshooting+Crystal+Reports+off+BW#TroubleshootingCrystalReportsoffBW-TracingBOE
Quite useful, especially this part:
SAP BW connectivity
For t
Java开发熟手该当心的11个错误
tomcat_oracle
java jvm 多线程 单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
正则表达式大全
yang852220741
html 编程 正则表达式
今天向大家分享正则表达式大全,它可以大提高你的工作效率
正则表达式也可以被当作是一门语言,当你学习一门新的编程语言的时候,他们是一个小的子语言。初看时觉得它没有任何的意义,但是很多时候,你不得不阅读一些教程,或文章来理解这些简单的描述模式。
一、校验数字的表达式
数字:^[0-9]*$
n位的数字:^\d{n}$
至少n位的数字:^\d{n,}$
m-n位的数字:^\d{m,n}$