精华内容
下载资源
问答
  • 设计一个图书馆数据库

    千次阅读 2021-01-20 01:06:54
    《设计一个图书馆数据库》由会员分享,可在线阅读,更多相关《设计一个图书馆数据库(2页珍藏版)》请在人人文库网上搜索。1、精品文档设计一个...1.(4分)给出E-R。2.(3分)再将其E-R转换为关系模式。3.(3分)写出...

    《设计一个图书馆数据库》由会员分享,可在线阅读,更多相关《设计一个图书馆数据库(2页珍藏版)》请在人人文库网上搜索。

    1、精品文档设计一个图书馆数据库,此数据库对每个借阅者保持读者记录,包括:读者号、姓名、地址、性别、年龄、单位。对每本书有:书号、书名、作者、出版社。对每本被借出的书有:读者号、借出的日期、应还日期。1.(4分)给出E-R图。2.(3分)再将其E-R图转换为关系模式。3.(3分)写出创建关系表的SQL语句,要求给出完整性约束的定义。1.(本小题4分)书读者借阅书号书名作者出版社借出日期应还日期读者号姓名地址读者号年龄1n单位2. (本小题3分)根据ER图向关系模型转换的原则,将两个实体转换为关系模式如下,其中码用下划线表示,并且不能为空; (注意写成两个关系模式也是正确的)读者(读者号,姓名,地址。

    2、,性别,年龄,单位)-(1)书(书号,书名,作者,出版社) -(1)读者与书两个实体之间的联系“借阅”是一个1:n的联系,因此,根据E-R图向关系模型转换的原则,将读者与书两个实体的码“读者号”、“书号”加上“借阅”联系的属性构成借阅关系,并且“读者号”、“书名”不能取空值。形成的关系模式如下:借阅(读者号,书号,借出日期,应还日期) -(1)3. CREATE TABLE读者( 读者号 char(4) not null primary key,姓名 varchar(8) not null,地址 varchar(30) 性别 char(2),年龄 tinyint check(年龄 betwee。

    3、n 15 and 45),单位 varchar(30) -(1)CREATE TABLE书(书号char(8) not null primary key,书名varchar(30) not null,作者varchar(30) not null,出版社char(30) not null) -(1)CREATE TABLE借阅(读者号 char(4) not null,书号char(8) not null,借出日期 datetime,应还日期 datetime,Foreign key(读者号) references 读者(读者号),Foreign key(书号) references 书(书号),Primary key(读者号, 书号) -(1)可修改。

    展开全文
  • 5、键盘分布.....................................................................................................4 6、键盘功能说明........................................................................
  • 前几天给博客添加了来必力评论系统,但是加载速度实在是慢的可以,原因是来必力是在页面滑到底部的时候才开始加载,但是通过控制台看,来必力确实时间很久,很影响我自己的使用体验(嗯,没有别人,哭),所以在网上...

    前几天给博客添加了来必力评论系统,但是加载速度实在是慢的可以,原因是来必力是在页面滑到底部的时候才开始加载,但是通过控制台看,来必力确实时间很久,很影响我自己的使用体验(嗯,没有别人,哭),所以在网上找到了另外的评论系统—Valine。

    Valine 是什么?

    欢迎访问 Valine 官网

    Valine 是一款基于 Leancloud 的快速、简洁且高效的无后端评论系统。

    Valine 的特性如同官网所说:快速、安全、无后端等等。

    更重要的是,我在 Valine 官网看到了「邮件提醒」,巧了,这正是我想要很久的功能。想想看,我写了一个文章,有位朋友看到了评论然后提出了异议,我过了十天半个月看到了才回复,这我真的羞愧难当。所以评论提醒是很重要的。点开官方文档一看,讲解的很详细了。

    配置评论系统

    Valine 评论系统依托于 Leancoud,这个大家应该不陌生了把。这个就是我们的阅读量统计,在之前的文章《Hexo 的那些事儿》中有相关的使用说明,此处就不做过多展开了。

    在主题配置文件中,找到 Valine 配置项,具体配置信息如下:

    enable: true
      appid: IgXUs8o4trUx8BIt564-gzGzoHsz # your leancloud application appid
      appkey: 5EN3Kw3h7ER24APkfyxQK # your leancloud application appkey
      notify: true # mail notifier , https://github.com/xCss/Valine/wiki
      verify: true # Verification code
      placeholder: Just go go # comment box placeholder
      avatar: mm # gravatar style
      guest_info: nick,mail,link # custom comment header
      pageSize: 10 # pagination size
    

    注意:appid 和 appkey 应该填上你自己 Leancloud 中对应的信息。

    然后我们需要了解一下 Valine 官方提供的邮件提醒功能是基于 Leancloud 的密码重置邮件提醒,操作步骤如下:

    登录 Leancloud,进入控制台,点击应用->设置->邮件模版设置重置密码的邮件内容即可,如下图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BUWPcBNg-1595248815318)(设置重置邮件.png)]

    代码如下:

    <p>Hi, {{username}}</p>
    <p>
      你在 {{appname}} 的评论收到了新的回复,请点击查看:
    </p>
    <p>
      <a
        href="你的网址首页链接"
        style="display: inline-block; padding: 10px 20px; border-radius: 4px; background-color: #3090e4; color: #fff; text-decoration: none;"
        >马上查看</a
      >
    </p>
    

    点击保存即可。

    注意事项

    • 发送次数过多,可能会暂时被 Leancloud 屏蔽邮件发送功能

    • 由于邮件提醒功能使用的 Leancloud 的密码重置邮件提醒,只能传递昵称、邮箱两个属性,所以邮件提醒链接无法直达指定文章页。请悉知。

    • 开启邮件提醒会默认开启验证码选项。

    • 该功能目前还在测试阶段,谨慎使用。

    • 目前邮件提醒正处于测试阶段,仅在子级对存在邮件地址的父级发表评论时发送邮件

    这时,如果你在博客中评论,站长(也就是我)并不会收到提醒,emmm 但是我给你回复或者其他人给你回复,你会收到邮件提醒(前提是你得留了邮箱)。

    但这并不是我想要的效果啊,我想要的是你们评论了,可以及时的提醒我。

    这时候就需要其他帮助了,这里感谢第三方支持:Valine-Admin (by @zhaojun1998)

    第三方支持

    利用第三方支持,就可以在访客评论的时候,将提醒消息发给站长。具体步骤如下:

    • 1.进入 Leancloud 应用,点击云引擎->设置,在源代码部署下面填写:
    https://github.com/zhaojun1998/Valine-Admin
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yFuGJtAd-1595248815321)(源码部署.png)]

    • 2.设置云引擎环境变量,还是在设置中下拉,找到自定义环境变量,添加如下项目:
    参数
    SITE_NAME网站名称。
    SITE_URL网站地址, 最后不要加 / 。
    SMTP_USERSMTP 服务用户名,一般为邮箱地址。
    SMTP_PASSSMTP 密码,一般为授权码,而不是邮箱的登陆密码,请自行查询对应邮件服务商的获取方式
    SMTP_SERVICE邮件服务提供商,支持 QQ、163 等等,请查询https://www.nhtzj.com/高级配置.md#自定义邮件服务器
    SENDER_NAME寄件人名称。
    TO_EMAIL这个是填收邮件提醒的邮箱地址,若没有这个字段,则将邮件发到 SMTP_USER。
    TEMPLATE_NAME设置提醒邮件的主题,目前内置了两款主题,分别为 default 与 rainbow。默认为 default。
    • 3.切换到部署标签页,分支使用 master,点击部署,等待部署完毕即可:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WKi1ol2B-1595248815322)(环境部署.png)]

    注意:部署过程中可能会遇到错误,请根据提示解决,一般都是环境变量设置有问题。

    此时我们测试网站评论提醒效果,访客评论,站长可以收到邮件提醒。

    问题:多封邮件

    此时的邮件提醒,会发现都是两封邮件,一封是漂亮的 Rainbow 样式,一封是默认的重置样式,说明,第三方插件和重置邮件均被触发了。

    我们进入主题配置文件,将 valine 配置项下面的 notify 和 verify 均置为 false 即可解决邮件重复问题。

    评论管理

    我们现在已经可以收到评论相关的邮件提醒了,但是如何管理评论内容呢?Valine 提供了很方便的评论管理功能~可以在网页端对评论进行查看以及删除。

    配置方法如下:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2ZFt2r4S6Ly94dWRvbmdwbyjbi9wb881532N0cy9iZjQxYWIyMy8lRTclOTQlQTglRTYlODglQjclRTQlQkYlQTElRTYlODElQUYucG)n?x-oss-process=image/format,png(EB主机域名.png)]

    在主机域名处随便填上什么,不用关心后缀名和你自己的域名不一样,这个和你自己的域名没关系,就是你设置了这个,访问这个域名,去管理自己的评论内容。

    访问这个域名,提示你输入账户密码,具体信息在存储->数据->_User中,如下图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fRKijAPM-1595248815325)(用户信息.png)]

    其中需要填写 email、password、username 这三个字段。

    email 为账户,password 为密码。即可进入后台对评论内容进行管理。

    目前 Web 后台仅有 查看删除 功能

    (https://xudongpo.cn)_User中可以找到用户信息,登录即可访问后台评论数据。

    评论管理更新

    更新于 2020 年 07 月 20 日:

    记得去年,leancloud 好像要求绑定域名,并且备案。之后貌似只有国际版才不需要备案。

    我的是国内版本,并且个人有自己的域名。针对这种情况,对文章进行修改。

    具体内容如下。邮件的绑定以及评论啥的都同上。主要在于绑定域名。

    首先登陆leancloud,点击设置->域名绑定

    选中云引擎域名,点击绑定新域名,此处推荐绑定二级域名,什么意思呢?

    举例子:我的域名 xudongpo.cn 肯定是绑定在我的 ECS 服务器上的,所以就不能通过 CNAME 解析,会产生冲突,此时就需要我们使用二级域名。

    例如 leancloud.xudongpo.cn 这样就可以绑定了。根据提示,会要求你绑定在 id 前八位.cn-n1-cname.leanapp.cn上。

    在域名服务商处(我的是阿里云)绑定二级域名即可。

    绑定完毕如图所示:

    在这里插入图片描述

    注意:要求域名备案过!备案!备案!备案!

    之后在云引擎 -> 部署位置重新部署。

    重新部署后如下:

    在这里插入图片描述

    访问你的二级域名即可,第一次可能会要求输入管理员信息,如果没有提示输入,在存储->结构化数据->_User中可以找到用户信息,登录即可访问后台评论数据。

    更多精彩内容可以访问我的博客Aelous-BLog

    展开全文
  • [Flink课程]---- 9.1 使用Ambari 搭建Flink 集群

    千次阅读 热门讨论 2019-05-16 21:38:38
    处理(批) 机器学习(批) 复杂事件处理(流) 在dataSet(批处理)API中内置支持迭代程序(BSP) 高效的自定义内存管理,和健壮的切换能力在in-memory和out-of-core中 兼容hadoop的mapreduce和storm 集成YARN,...

    1 前言

    1.1 概览

       Stateful Computations over Data Streams(数据流的状态计算)

       Apache Flink是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。Flink设计为在所有常见的集群环境中运行,以内存速度任何规模执行计算。

    在这里,我们解释了Flink架构的重要方面。

    处理无界和有界数据

    任何类型的数据都是作为事件流产生的。信用卡交易,传感器测量,机器日志或网站或移动应用程序上的用户交互,所有这些数据都作为流生成。

    数据可以作为无界有界流处理。

    1. 无界流有一个开始但没有定义的结束。它们不会在生成时终止并提供数据。必须持续处理无界流,即必须在摄取事件后立即处理事件。无法等待所有输入数据到达,因为输入是无界的,并且在任何时间点都不会完成。处理无界数据通常要求以特定顺序(例如事件发生的顺序)摄取事件,以便能够推断结果完整性。
    2. 有界流具有定义的开始和结束。可以在执行任何计算之前通过摄取所有数据来处理有界流。处理有界流不需要有序摄取,因为可以始终对有界数据集进行排序。有界流的处理也称为批处理。

    Apache Flink擅长处理无界和有界数据集。精确控制时间和状态使Flink的运行时能够在无界流上运行任何类型的应用程序。有界流由算法和数据结构内部处理,这些算法和数据结构专为固定大小的数据集而设计,从而产生出色的性能。

    通过探索在Flink之上构建的用例来使自己信服。

    Deploy Applications Anywhere

    Apache Flink是一个分布式系统,需要计算资源才能执行应用程序。Flink与所有常见的集群资源管理器(如Hadoop YARNApache MesosKubernetes)集成,但也可以设置为作为独立集群运行。

    Flink旨在很好地适用于之前列出的每个资源管理器。这是通过特定于资源管理器的部署模式实现的,这些模式允许Flink以其惯用的方式与每个资源管理器进行交互。

    部署Flink应用程序时,Flink会根据应用程序配置的并行性自动识别所需资源,并从资源管理器请求它们。如果发生故障,Flink会通过请求新资源来替换发生故障的容器。提交或控制应用程序的所有通信都通过REST调用进行。这简化了Flink在许多环境中的集成。

    Run Applications at any Scale

    Flink旨在以任何规模运行有状态流应用程序。应用程序可以并行化为数千个在集群中分布和同时执行的任务。因此,应用程序可以利用几乎无限量的CPU,主内存,磁盘和网络IO。而且,Flink可以轻松维护非常大的应用程序状态。其异步和增量检查点算法确保对处理延迟的影响最小,同时保证一次性状态一致性。

    用户报告了在其生产环境中运行的Flink应用程序的可扩展性数字令人印象深刻,例如

    • 应用程序每天处理数万亿个事件
    • 应用程序维护多个TB的状,以及
    • 应用程序在数千个内核的运行

    Leverage In-Memory Performance

    有状态Flink应用程序针对本地状态访问进行了优化。任务状态始终保留在内存中,或者,如果状态大小超过可用内存,则保存在访问高效的磁盘上数据结构中。因此,任务通过访问本地(通常是内存中)状态来执行所有计算,从而产生非常低的处理延迟。Flink通过定期和异步检查本地状态到持久存储来保证在出现故障时的一次状态一致性。

    1.2 架构

    1.3 Flink特性 

    1. 支持批处理和数据流程序处理
    2. 优雅流畅的支持java(主要使用java 语言编写)和scala api
    3. 同时支持高吞吐量和低延迟
    4. 支持事件处理和无序处理通过SataStream API,基于DataFlow数据流模型
    5. 在不同的时间语义(时间时间,处理时间)下支持灵活的窗口(时间,技术,会话,自定义触发器)
    6. 仅处理一次的容错担保
    7. 自动反压机制
    8. 图处理(批) 机器学习(批) 复杂事件处理(流)
    9. 在dataSet(批处理)API中内置支持迭代程序(BSP)
    10. 高效的自定义内存管理,和健壮的切换能力在in-memory和out-of-core中
    11. 兼容hadoop的mapreduce和storm
    12. 集成YARN,HDFS,Hbase 和其它hadoop生态系统的组件
    13.  

    1.4 应用场景

    1. 多种数据源(有时不可靠):当数据是由数以百万计的不同用户或设备产生的,它是安全的假设数据会按照事件产生的顺序到达,和在上游数据失败的情况下,一些事件可能会比他们晚几个小时,迟到的数据也需要计算,这样的结果是准确的。
    2. 应用程序状态管理:当程序变得更加的复杂,比简单的过滤或者增强的数据结构,这个时候管理这些应用的状态将会变得比较难(例如:计数器,过去数据的窗口,状态机,内置数据库)。flink提供了工具,这些状态是有效的,容错的,和可控的,所以你不需要自己构建这些功能。
    3. 数据的快速处理:有一个焦点在实时或近实时用例场景中,从数据生成的那个时刻,数据就应该是可达的。在必要的时候,flink完全有能力满足这些延迟。
    4. 海量数据处理:这些程序需要分布在很多节点运行来支持所需的规模。flink可以在大型的集群中无缝运行,就像是在一个小集群一样。

    2 安装

    2.1安装flink

    2.1.1 准备工作

    2.1.1.1基本要求

    2.1.1.1.1操作系统

    Centos7.2以上

     

    2.1.1.1.2 jdk、maven和hdp版本

    • jdk-1.8.0_141以上
    • maven-3.3.5 以上
    • hdp-2.6.4.0-91

    2.1.1.1.3 获取flink的lib包

    第一种方法:自己编译flink-1.6.0 (推荐,耗时间,兼容性好)

    1. # wget https://github.com/apache/flink/archive/release-1.6.0.tar.gz
    2. cd /data02/maven/soft/flink-release-1.6.0
    3. mvn clean install -DskipTests -Pvendor-repos -Dhadoop.version=2.7.3.2.4.0-91

    编译好的目: /data02/maven/soft/flink-release-1.6.0/

    编译环境:

    • jdk-1.8
    • flink-1.6.0
    • hdp-hadoop-2.7.3.2.4.0-91
    • maven-3.5.4

    编译时间:1小时左右

    第二种方法:直接下载已经编译好的包(推荐,不耗时,兼容性可能不太好)

    # cd /opt/

    #wget http://www.us.apache.org/dist/flink/flink-1.6.0/flink-1.6.0-bin-hadoop27-scala_2.11.tgz

    #tar -zxvf flink-1.6.0-bin-hadoop27-scala_2.11.tgz

    #mv  flink-release-1.6.0 flink

    #chown -R hdfs:hdfs flink/*

    注意:每台flink集群的设备都需要这些包

     

    2.1.1.1.4修改目录权限

    chmod  755  /var/run

    chmod  755  /etc/profile

    2.1.1.1.5运行用户

    安装过程中,需要用root用户。

    2.1.1.1.6每台设备上必须要有所有设备的hosts和ip映射

    172.16.5.117 bdp03nn01

    172.16.5.118 bdp03nn02

    172.16.5.119 bdp03dn01

    2.1.1.2版本选择

    结合flink的发布说明,需要考虑到兼容性和可扩展性.

    Apache flink : 1.6.0

    2.1.1.3角色规划

    主机

    角色

    备注

    172.16.5.117 bdp03nn01

    Flink gateway 和client

     

    172.16.5.118 bdp03nn02

    Flink gateway

     

    172.16.5.119 bdp03dn01

    Flink gateway

     

     

     

     

     

     

    2.1.2 安装步骤

    在ambari server的设备上下载flink的服务包

    2.1.2.1.下载ambari-flink-service

    1)在ambari server 所在设备上执行

    #VERSION=`hdp-select status hadoop-client | sed 's/hadoop-client - \([0-9]\.[0-9]\).*/\1/'`

    #sudo git clone https://github.com/highfei2011/ambari-flink-service.git /var/lib/ambari-server/resources/stacks/HDP/$VERSION/services/FLINK

    注意:

    https://github.com/highfei2011/ambari-flink-service.git

    这是我的github 资源,如果需要更新flink的版本,那么一样需要修改github仓库的对应参数。

    2)进入目录:

    #cd /opt/

    3)在每台机群设备上下载

    #wget http://www.us.apache.org/dist/flink/flink-1.6.0/flink-1.6.0-bin-hadoop27-scala_2.11.tgz

    4)在每台机群设备上解压到/opt下

    tar –zxvf flink-1.6.0-bin-hadoop27-scala_2.11.tgz  

    mv /opt/flink-1.6.0  /opt/flink

    chown  -R flink:flink /opt/flink/

    chmod 777 -R /opt/flink/

    sudo mkdir –p /opt/flink/conf

     

    5)每台设备添加环境变量

    在每台设备上添加/etc/profile环境变量

    export HADOOP_CLASSPATH=`hadoop classpath`

    export CLASSPATH=$CLASSPATH:$HADOOP_CLASSPATH

    export FLINK_HOME=/opt/flink/

    export PATH=$FLINK_HOME/bin:$PATH

    export PATH

     

     

     

     

     

     

    source /etc/profile

     

    2.1.2.2.重启ambari-server

    在 ambari-server 设备上执行

    #sudo systemctl restart ambari-server

    或者

    #sudo service ambari-server restart

    2.1.2.3.安装flink

    选择Action ---》 Add service

    选择flink-1.6.0

     

    选择flink 启动的一台设备

    添加完成

    2.1.2.4.重启集群

    2.1.2.5.参数修改

    在 Ambari 上修改 Flink 的参数

    A、网络缓冲区大小

    如果以非常高的并行度运行Flink,则可能需要增加网络缓冲区的数量,默认,FlinkJVM堆大小的10%用作网络缓冲区,最小为64MB,最大为1GB,可通过以下参数配置。为什么需要网络缓冲区?

    https://ci.apache.org/projects/flink/flink-docs-master/ops/config.html#configuring-the-network-buffers

    taskmanager.network.memory.min 网络缓冲区最小字节数(默认64M)

    taskmanager.network.memory.max 网络缓冲区的最大字节数(默认1G)

    taskmanager.network.memory.fraction 用于网络缓冲区的JVM内存的占比(默认0.1)

    默认:

    taskmanager.network.memory.fraction: 0.1

    taskmanager.network.memory.min: 67108864

    taskmanager.network.memory.max: 1073741824

    启动异常:org.apache.flink.configuration.IllegalConfigurationException: Invalid configuration value for (taskmanager.network.memory.fraction, taskmanager.network.memory.min, taskmanager.network.memory.max) : (0.1, 67108864, 1073741824) - Network buffer memory size too large: 67108864 >= 8388608 (total JVM memory size)

    Byarn参数

    yarn.nodemanager.resource.memory-mb=30G 每个nodemanager最大可用内存

    yarn.scheduler.maximum-allocation-mb=30G 单个容器可申请的最大内存

    yarn.scheduler.minimum-allocation-mb=1024M 单个容器最小内存

    containerized.heap-cutoff-min=400

    参考:https://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html

    C、Flink on yarn 参数

    flinkyarn上可以直接运行起来

    <property>

          <name>yarn.client.failover-proxy-provider</name>

          <value>org.apache.hadoop.yarn.client.ConfiguredRMFailoverProxyProvider</value>

    </property>

     

    flinkyarn上不能运行起来

    <property>

          <name>yarn.client.failover-proxy-provider</name>

          <value>org.apache.hadoop.yarn.client.RequestHedgingRMFailoverProxyProvider</value>

    </property>

    并重启yarn集群

     

    D、添加环境变量

    export HADOOP_CLASSPATH=`hadoop classpath`

    2.2测试Flink

    2.2.1 命令行测试

    2.2.2 flink run job

    资源管理器:flink on yarn

    设备:bdp03nn01

    提交用户:hdfs

    执行命令:

    flink run --jobmanager yarn-cluster \

    -yn 1 \

    -ytm 768 \

    -yjm 768 \

    /opt/flink/examples/batch/WordCount.jar \

    --input hdfs://bdp03nn01:8020/user/hdfs/demo/input/word  \

    --output hdfs://bdp03nn01:8020/user/hdfs/demo/output/wc/

     

     

     

     

     

    等待执行完成

    查看输出结果

    # hdfs dfs -cat /user/hdfs/demo/output/wc

    运行时可以查看web ui

    http://host:8081

    需要映射8081端口

    172.16.5.117 bdp03nn01

    172.16.5.118 bdp03nn02

    172.16.5.119 bdp03dn01
     

    2.2.3 flink sql client

    # sql-client.sh embedded

    参考文档:

    https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/table/sqlClient.html#starting-the-sql-client-cli

    2.2.2 编程测试(batch测试)

    idea 2018-1.1、jdk-1.8、flink-1.6.0、maven-3.4.5

    项目构建的需要条件:

    https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/scala_api_quickstart.html#maven

    https://flink.apache.org/downloads.html
     

    2.2.2.1 pom.xm文件

    <?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>cn.acewell</groupId>
        <artifactId>dev-flink-1</artifactId>
        <version>1.0-SNAPSHOT</version>
        <!--  ====================================================================  -->
        <!--  ===============             Properties 信息           ===============  -->
        <!--  ====================================================================  -->
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
            <!-- jvm options -->
            <PermGen>128m</PermGen>
            <MaxPermGen>1024m</MaxPermGen>
            <CodeCacheSize>1024m</CodeCacheSize>
            <!--add  maven release-->
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <encoding>UTF-8</encoding>
            <!--maven-scala-plugin-->
            <maven.scala.plugin>2.10</maven.scala.plugin>
            <!-- log4j日志文件管理包版本 -->
            <slf4j.version>1.7.7</slf4j.version>
            <log4j.version>1.2.17</log4j.version>
    
            <!--jvm version-->
            <jvm.version>1.8</jvm.version>
            <!--flink version-->
            <apache.flink.version>1.7.2</apache.flink.version>
            <!--scala version-->
            <scala.version>2.11</scala.version>
            <!--kafka-flink version-->
            <apache.kafka.flink.version>0.10_2.11</apache.kafka.flink.version>
            <!--Alibaba fastjson-->
            <fastjson.version>1.2.47</fastjson.version>
            <!-- roundeights version-->
            <roundeights.version>1.2.0</roundeights.version>
            <!-- joda-time version-->
            <joda-time.version>2.9.1</joda-time.version>
            <!-- scalaj version-->
            <scalaj.version>2.3.0</scalaj.version>
            <!-- json4s version-->
            <json4s.version>3.3.0</json4s.version>
            <!-- flinkspector version -->
            <flinkspector.version>0.9.1</flinkspector.version>
    
        </properties>
        <repositories>
            <!--  ====================================================================  -->
            <!--  =============== 配置依赖库地址(用于加载CDH依赖的jar包) ===============  -->
            <!--  ====================================================================  -->
            <repository>
                <id>horton-works-releases</id>
                <url>http://repo.hortonworks.com/content/groups/public/</url>
            </repository>
            <repository>
                <id>apache maven</id>
                <url>https://repo.maven.apache.org/maven2/</url>
            </repository>
            <repository>
                <id>mvn repository</id>
                <url>https://mvnrepository.com/artifact/</url>
            </repository>
            <repository>
                <id>CDH</id>
                <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
            </repository>
        </repositories>
    
        <organization>
            <name>Acewill</name>
        </organization>
    
        <developers>
            <developer>
                <name>Jeff Yang</name>
                <email>highfei2011@126.com</email>
            </developer>
        </developers>
        <!-- =================================================================== -->
        <!-- ===================== Project dependencies ======================== -->
        <!-- =================================================================== -->
        <dependencies>
            <!--  ====================================================================  -->
            <!--  ===============        引入对应Flink test  包               ==========  -->
            <!--  ====================================================================  -->
            <dependency>
                <groupId>io.flinkspector</groupId>
                <artifactId>flinkspector-datastream_2.11</artifactId>
                <version>${flinkspector.version}</version>
            </dependency>
            <dependency>
                <groupId>io.flinkspector</groupId>
                <artifactId>flinkspector-dataset_2.11</artifactId>
                <version>${flinkspector.version}</version>
            </dependency>
            <!--  ====================================================================  -->
            <!--  ===============        引入对应Flink文件管理包               ==========  -->
            <!--  ====================================================================  -->
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-connector-kafka-0.10_2.11</artifactId>
                <version>${apache.flink.version}</version>
            </dependency>
            <!--  ====================================================================  -->
            <!--  ===============        引入对应日志文件管理包                  ==========  -->
            <!--  ====================================================================  -->
            <!-- log start -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>${log4j.version}</version>
            </dependency>
            <!-- 格式化对象,方便输出日志 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <!--  ====================================================================  -->
            <!--  ===============        引入对应版本的flink包                ==========  -->
            <!--  ====================================================================  -->
    
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-streaming-java_2.11</artifactId>
                <version>${apache.flink.version}</version>
            </dependency>
    
            <!-- flink-table -->
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-table_2.11</artifactId>
                <version>${apache.flink.version}</version>
            </dependency>
            <!--  ====================================================================  -->
            <!--  ===============        引入对应版本的flink 监控包             ==========  -->
            <!--  ====================================================================  -->
    
            <dependency>
                <groupId>org.apache.flink</groupId>
                <artifactId>flink-runtime-web_2.11</artifactId>
                <version>${apache.flink.version}</version>
    
            </dependency>
    
        </dependencies>
    
        <!--  ====================================================================  -->
        <!--  ===============              maven打包                ===============  -->
        <!--  ====================================================================  -->
        <build>
            <finalName>dev-flink-1.6</finalName>
            <sourceDirectory>src/main/java</sourceDirectory>
            <testSourceDirectory>src/test/java</testSourceDirectory>
            <outputDirectory>target/java-${java.version}/classes</outputDirectory>
            <testOutputDirectory>target/java-${java.version}/test-classes</testOutputDirectory>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.21.0</version>
                    <executions>
                        <!--execute all the unit tests-->
                        <execution>
                            <id>default-test</id>
                            <phase>test</phase>
                            <goals>
                                <goal>test</goal>
                            </goals>
                            <configuration>
                                <includes>
                                    <include>**/*Test.*</include>
                                </includes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
    
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>${jvm.version}</source>
                        <target>${jvm.version}</target>
                    </configuration>
                </plugin>
    
                <!-- ==================================将依赖也打包于jar中 =======================================-->
               <!-- <plugin>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <archive>
                            <manifest>
                                <mainClass></mainClass>
                            </manifest>
                        </archive>
                    </configuration>
                    <executions>
                        <execution>
                            <id>make-assembly</id>
                            <phase>package</phase>
                            <goals>
                                <goal>single</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>-->
    
            </plugins>
        </build>
    
    </project>

    2.2.2.2 编写测试类和工具类

    WordCount.java

    package cn.acewill.flink.batch;
    
    import cn.acewill.flink.utils.WordCountData;
    import org.apache.flink.api.common.functions.FlatMapFunction;
    import org.apache.flink.api.java.DataSet;
    import org.apache.flink.api.java.ExecutionEnvironment;
    import org.apache.flink.api.java.tuple.Tuple2;
    import org.apache.flink.api.java.utils.ParameterTool;
    import org.apache.flink.util.Collector;
    
    /**
     * @author Created by yangjf on 20180920.
     * Update date:
     * Time: 下午6:12
     * Project: dev-flink-1.6
     * Package: cn.acewell.flink.batch
     * Describe :
     * Frequency:
     * Result of Test: test ok
     * Command:
     * <p>
     * Email:  highfei2011@126.com
     * Status:Using online
     * <p>
     * Please note:
     * Must be checked once every time you submit a configuration file is correct!
     * Data is priceless! Accidentally deleted the consequences!
     */
    public class WordCount {
        // *************************************************************************
        //     PROGRAM
        // *************************************************************************
    
        public static void main(String[] args) throws Exception {
    
            final ParameterTool params = ParameterTool.fromArgs(args);
    
            // set up the execution environment
            final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
    
            // make parameters available in the web interface
            env.getConfig().setGlobalJobParameters(params);
    
    
            // get input data
            DataSet<String> text;
            if (params.has("input")) {
                // read the text file from given input path
                text = env.readTextFile(params.get("input"));
            } else {
                // get default test text data
                System.out.println("Executing WordCountWindow example with default input data set.");
                System.out.println("Use --input to specify file input.");
                text = WordCountData.getDefaultTextLineDataSet(env);
            }
    
            DataSet<Tuple2<String, Integer>> counts =
                    // split up the lines in pairs (2-tuples) containing: (word,1)
                    text.flatMap(new Tokenizer())
                            // group by the tuple field "0" and sum up tuple field "1"
                            .groupBy(0)
                            .sum(1)
                            .setParallelism(2)
                    // 流水线的同时作业数量 https://ci.apache.org/projects/flink/flink-docs-release-1.2/dev/parallel.html
                    // 如果设置了 setParallelism 则可以理解: 这类任务(transformations/operators, data sources, and sinks)都有2个同时执行
                    ;
    
            // emit result
            if (params.has("output")) {
                counts.writeAsCsv(params.get("output"), "\n", " ");
                // execute program
                env.execute("WordCountWindow Example");
            } else {
                System.out.println("Printing result to stdout. Use --output to specify output path.");
                counts.print();
            }
    
        }
    
        // *************************************************************************
        //     USER FUNCTIONS
        // *************************************************************************
    
        /**
         * Implements the string tokenizer that splits sentences into words as a user-defined
         * FlatMapFunction. The function takes a line (String) and splits it into
         * multiple pairs in the form of "(word,1)" ({@code Tuple2<String, Integer>}).
         */
        public static final class Tokenizer implements FlatMapFunction<String, Tuple2<String, Integer>> {
    
            @Override
            public void flatMap(String value, Collector<Tuple2<String, Integer>> out) {
                // normalize and split the line
                String[] tokens = value.toLowerCase().split("\\W+");
    
                // emit the pairs
                for (String token : tokens) {
                    if (token.length() > 0) {
                        out.collect(new Tuple2<>(token, 1));
                    }
                    try{
                        Thread.sleep(1000);
                    }catch (Exception s){
                        s.printStackTrace();
    
                    }
                }
            }
        }
    }
    

    WordCountData.java

    package cn.acewill.flink.utils;
    
    import org.apache.flink.api.java.DataSet;
    import org.apache.flink.api.java.ExecutionEnvironment;
    /**
     * @author Created by yangjf on 20180920.
     * Update date:
     * Time: 下午6:14
     * Project: dev-flink-1.6
     * Package: cn.acewell.flink.utils
     * Describe :
     *    Provides the default data sets used for the WordCountWindow example program.
     *    The default data sets are used, if no parameters are given to the program.
     * Frequency: Calculate once a day.
     * Result of Test: test ok
     * Command:
     * <p>
     * Email:  highfei2011@126.com
     * Status:Using online
     * <p>
     * Please note:
     * Must be checked once every time you submit a configuration file is correct!
     * Data is priceless! Accidentally deleted the consequences!
     */
    
    
    public class WordCountData {
    
        public static final String[] WORDS = new String[]{
                "To be, or not to be,--that is the question:--",
                "Whether 'tis nobler in the mind to suffer",
                "The slings and arrows of outrageous fortune",
                "Or to take arms against a sea of troubles,",
                "And by opposing end them?--To die,--to sleep,--",
                "No more; and by a sleep to say we end",
                "The heartache, and the thousand natural shocks",
                "That flesh is heir to,--'tis a consummation",
                "Devoutly to be wish'd. To die,--to sleep;--",
                "To sleep! perchance to dream:--ay, there's the rub;",
                "For in that sleep of death what dreams may come,",
                "When we have shuffled off this mortal coil,",
                "When we have shuffled off this mortal coil,",
                "When we have shuffled off this mortal coil,",
                "When we have shuffled off this mortal coil,",
                "Must give us pause: there's the respect",
                "Must give us pause: there's the respect",
                "Must give us pause: there's the respect",
                "Must give us pause: there's the respect",
                "That makes calamity of so long life;",
                "For who would bear the whips and scorns of time,",
                "The oppressor's wrong, the proud man's contumely,",
                "The pangs of despis'd love, the law's delay,",
                "The insolence of office, and the spurns",
                "The insolence of office, and the spurns",
                "The insolence of office, and the spurns",
                "That patient merit of the unworthy takes,",
                "When he himself might his quietus make",
                "With a bare bodkin? who would these fardels bear,",
                "To grunt and sweat under a weary life,",
                "But that the dread of something after death,--",
                "The undiscover'd country, from whose bourn",
                "No traveller returns,--puzzles the will,",
                "And makes us rather bear those ills we have",
                "Than fly to others that we know not of?",
                "Thus conscience does make cowards of us all;",
                "And thus the native hue of resolution",
                "Is sicklied o'er with the pale cast of thought;",
                "And enterprises of great pith and moment,",
                "With this regard, their currents turn awry,",
                "And lose the name of action.--Soft you now!",
                "The fair Ophelia!--Nymph, in thy orisons",
                "Be all my sins remember'd."
        };
    
        public static DataSet<String> getDefaultTextLineDataSet(ExecutionEnvironment env) {
            return env.fromElements(WORDS);
        }
    }

    2.2.2.3 运行WordCount.java

    查看统计结果:

    3 添加监控

    Grafana +Prometheus

    3.1 安装 Grafana

    Ambari 自带 Grafana 所以只需要配置即可。

    4 FAQ

    4.1 ambari安装flink能在生产上使用吗?

    开发service 的作者不建议在生产上使用,但是目前大部分公司都已在生产上使用过了。

    4.2 启动flink的方式

    cd ${FLINK_HOME}

    后台运行:

    yarn-session.sh -n 1 -s 1 -jm 768 -tm 1024 -qu default -nm flinkapp-from-ambari -d >> /var/log/flink/flink-test.log

     

    ./bin/flink run --jobmanager yarn-cluster  --yarnqueue offline --yarnjobManagerMemory 1024  --yarncontainer 2  --yarntaskManagerMemory 1024 --yarnslots 3 ./examples/batch/WordCount.jar --input hdfs:///user/hdfs/demo/data/wc.txt --output hdfs:///user/hdfs/demo/result/wc
     

    5 参考文档

    编译flink:

    https://community.hortonworks.com/articles/2659/exploring-apache-flink-with-hdp.html

    http://doc.flink-china.org/1.1.0/setup/building.html

     

    Flink 教程:https://ci.apache.org/projects/flink/flink-docs-release-1.6/quickstart/setup_quickstart.html

    已编译的:

    http://www.gtlib.gatech.edu/pub/apache/flink/flink-1.6.0/

    http://www.us.apache.org/dist/flink/flink-1.6.0/

     

    安装参考:https://community.hortonworks.com/articles/2659/exploring-apache-flink-with-hdp.html

    run on yarn : https://ci.apache.org/projects/flink/flink-docs-release-1.6/ops/deployment/yarn_setup.html

    Flink样例:

    https://ci.apache.org/projects/flink/flink-docs-release-1.6/dev/batch/examples.html#word-count

    https://ci.apache.org/projects/flink/flink-docs-release-1.6/examples/

     

    Flink培训:http://training.data-artisans.com/

    Flink参考项目:https://github.com/highfei2011/flink-training-exercises

     

    Flink metrics:https://ci.apache.org/projects/flink/flink-docs-release-1.6/monitoring/metrics.html#system-metrics

    Grafana plugns: https://grafana.com/dashboards/5151

     

    Flink 配置:https://ci.apache.org/projects/flink/flink-docs-stable/ops/config.html

    展开全文
  • ESP8266开发之旅 网络篇⑯ 无线更新——OTA固件更新

    万次阅读 多人点赞 2019-06-20 08:58:25
    那么,我们来看看最终新旧固件是怎么用替换,请看下: 没有更新固件前,当前固件(current sketch,绿色部分)和 文件系统(spiffs,蓝色部分)位于flash存储空间的不同区域,中间空白的是空闲空间; 固件...

    授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。

    共同学习成长QQ群 622368884,不喜勿加,里面有一大群志同道合的探路人

    快速导航
    单片机菜鸟的博客快速索引(快速找到你要的)

    如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。

    展开全文
  • 2016最新Java学习计划

    万次阅读 多人点赞 2016-11-08 21:29:17
    一、Java学习路线 二、Java学习路线——视频篇 六大阶段学完后目标知识点配套免费资源(视频+笔记+源码+模板)密码 第一阶段Java基础 入门学习周期:35天学完后目标:1.可进行小型应用程序开发2.对数据库进行...
  • Linux系统启动那些事—基于Linux 3.10内核 csdn 我的空间的下载地址 ,有些做的效果网页上没了,感兴趣建议去上面地址下载pdf版的 下载地址 http://download.csdn.net/detail/shichaog/8054005 ...
  • C#源码500份

    千次阅读 2013-04-27 11:51:34
    毕业设计 现场考试成绩管理系统.rar http://1000eb.com/89n9 2012年4月最新ASP。NET面试题收集.rar http://1000eb.com/8av9 2012年4月最新最全的C#面试参考资料 http://1000eb.com/8ava 精华志 asp,net ...
  • iOS开发选取系统相册

    千次阅读 2015-10-28 10:57:32
    设置是否可以管理已经存在的图片或者视频   [controller setDelegate : self ]; // 设置代理   [ self . navigationController presentModalViewControll er :controller animated : ...
  • Java学习路线

    2018-09-06 14:32:32
    一、Java学习路线     二、Java学习路线——视频篇       六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码  第一阶段 Java基础 ...
  • 395计算机毕业设计

    千次阅读 2014-02-26 23:30:08
    JSP+sql城市公交查询系统(全套计算机毕业设计).rar http://dl.vmall.com/c0xnv6pv1y WMLWML信息查询与后端信息发布系统实现——WML信息查询设计(全套计算机毕业设计).rar http://dl.vmall.com/c0oqjl64ja VB.NET...
  • 绘图杂记【1】Python、R等绘图

    万次阅读 2020-11-04 14:53:47
    离散分布水平条形 Discrete distribution as horizontal bar chart import numpy as np import matplotlib.pyplot as plt category_names = ['Strongly disagree', 'Disagree', 'Neither agree nor disagree',...
  • JAVA学习路线 【黑马版】

    千次阅读 2018-12-12 17:48:41
    使用请点赞和关注,后期还有更多内容分享和...具体内容请点击右侧链接→→: - [ ]JAVA学习路线【黑马版】 手机版: 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) ...
  • Java学习路线,内附完整Java自学视频教程+工具经验

    万次阅读 多人点赞 2018-08-16 13:34:45
    Java学习路线更新日志:    增加视频《2016最新视频struts2》 密码:vhfp(2016.11.10) 增加视频《6天玩转mysql视频》 密码:a8yf(2016.11.10) 增加视频...
  • 几句代码让Ios系统内核崩溃

    万次阅读 2019-02-07 16:26:18
    很久没有更新博客了,最近比较忙,后续会为大家更新更多丰富的文章,例如单机游戏外挂教程以及WiFi监控软件,WiFi管理软件源代码! 这个要看博主最近做什么学什么啦!~如果有感兴趣的可以在评论下面艾特一下博主,...
  • iOS 录像

    2016-11-18 16:09:44
    iOS打开摄像头录像调用系统的UI界面,也可以自定义UI界面一、UIImagePickerController类 UIImagePickerController 这个类可以为大家提供照相的功能,以及图片,视频浏览的功能。 二、检查硬件是否安装有摄像头或者...
  • linux注册表+快捷健+tracker

    千次阅读 2008-08-02 18:51:00
    真的没多少时间学习linux相关的东西了......==============================================1.gconf-editor ----->linux下的注册表,可以修改一些东西,并定义快捷键2.Linux下的快捷键(这个可以在ubuntu的系统-...
  • 这个系统在最初设计时采用了ER图的方式建模,由于ER图模型不关心业务层面上的东西,不同品牌汽车的实体数据看上去都是一种类型的数据,仅仅是一个品牌字段的差异而已,因此被理所当然的设计成了同一张表。...
  • 28 print('我是%s,我今年%d,我在学习%s,成绩%f'%(name, age, 'python', 100)) print('我是%4s,我今年%d,我在学习%s,成绩%.3f'%(name, age, 'python', 100)) 显示如下: 我是小侯,我今年28,我在学习python,成绩100....
  • C#部分源码

    千次阅读 2018-06-17 10:25:33
    毕业设计 现场考试成绩管理系统.rar http://1000eb.com/89n9 2012年4月最新ASP。NET面试题收集.rar http://1000eb.com/8av9 2012年4月最新最全的C#面试参考资料 http://1000eb.com/8ava 精华志 asp,net 中小型...
  • 中兴LTE网管操作_最新

    2021-07-23 06:33:46
    打开后台OMMB软件:点击【视图】-【动态管理】,如下选择需要操作的基站单击2查询小区状态:单击动态命令,拖到最下方找到 TD-LTE双击查询小区状态,即可查询小区运行状态。mik一 I; fi.Bi-EaCTW...
  • 利用H3C ER5100权限绕过漏洞***内网

    千次阅读 2014-04-05 08:11:53
    因为老婆在某豪华车4S店工作,她们单位的WiFi信号隔着一条马路还是满格。虽然用的是WPA/WPA2加密。使用Aircrack-ng直接截获密码文件,上传到我用树莓派搭建的“24小时开机大数据社工库暨超牛逼彩虹表破解平台”用了...
  • sqlserver Change Data Capture&Change Tracking

    万次阅读 2020-12-23 09:48:06
    如下,对用户表的更改,记录到相应的变化表中(change tables)。变化表提供了一个基于时间的变化的历史视图。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTJHd7c2-1608688043491)...
  • R语言与统计分析

    万次阅读 2015-12-16 11:20:29
    会、经济、工农业生产、生物制药、航空航天、质量管理、环境资源等领域中的 各种问题。最后,统计学又是一门技术性很强的科学,由于所研究问题越来越 复杂、变量之间关联性越越强、数据的规模越来越大,使得原有...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 163
精华内容 65
关键字:

4s店管理系统er图

友情链接: 摄像头二值化.rar