云服务器内容精选

  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 响应示例 状态码为 200 时: 请求成功。 { "api_acl_policy" : { "allow_ip_ranges" : [ { "ip_range" : "0.0.0.0-255.255.255.255", "description" : "" }, { "ip_range" : "0.0.0.0-255.255.255.255", "description" : "" } ], "allow_address_netmasks" : [ { "address_netmask" : "192.168.0.1/24", "description" : "" }, { "address_netmask" : "192.168.0.1/24", "description" : "" } ] } }
  • 响应参数 表3 响应Body参数 参数 参数类型 描述 api_acl_policy object 接口访问控制策略。 表4 api_acl_policy 参数 参数类型 描述 allow_address_netmasks Array of objects 允许访问的IP地址或网段,仅在设置了允许访问的IP地址或网段才会返回此字段。 allow_ip_ranges Array of objects 允许访问的IP地址区间,仅在设置了允许访问的IP地址区间才会返回此字段。 表5 allow_address_netmasks 参数 参数类型 描述 address_netmask String IP地址或网段,例如:192.168.0.1/24。 description String 描述信息。 表6 allow_ip_ranges 参数 参数类型 描述 ip_range String IP地址区间,例如0.0.0.0-255.255.255.255。 description String 描述信息。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的云安全挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的IaaS、PaaS和SaaS各类各项云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。 华为云租户的安全责任在于对使用的IaaS、PaaS和SaaS类各项云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、虚拟主机和访客虚拟机的操作系统,虚拟防火墙、API网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 基本概念 DataStream 数据流,是指Flink系统处理的最小数据单元。该数据单元最初由外部系统导入,可以通过Socket、Kafka和文件等形式导入,在Flink系统处理后,在通过Socket、Kafka和文件等输出到外部系统,这是Flink的核心概念。 Data Transformation 数据处理单元,会将一或多个DataStream转换成一个新的DataStream。 具体可以细分如下几类: 一对一的转换:如Map。 一对0、1或多个的转换:如FlatMap。 一对0或1的转换,如Filter。 多对1转换,如Union。 多个聚合的转换,如window、keyby。 CheckPoint CheckPoint是Flink数据处理高可靠、最重要的机制。该机制可以保证应用在运行过程中出现失败时,应用的所有状态能够从某一个检查点恢复,保证数据仅被处理一次(Exactly Once)。 SavePoint Savepoint是指允许用户在持久化存储中保存某个checkpoint,以便用户可以暂停自己的任务进行升级。升级完后将任务状态设置为savepoint存储的状态开始恢复运行,保证数据处理的延续性。
  • 简介 Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。 Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。 Flink技术栈如图1所示。 图1 Flink技术栈 Flink在当前版本中重点构建如下特性,其他特性继承开源社区,不做增强,具体请参考:https://ci.apache.org/projects/flink/flink-docs-release-1.15。 DataStream Checkpoint 窗口 Job Pipeline 配置表
  • 结构 Flink结构如图2所示。 图2 Flink结构 Flink整个系统包含三个部分: Client Flink Client主要给用户提供向Flink系统提交用户任务(流式作业)的能力。 TaskManager Flink系统的业务执行节点,执行具体的用户任务。TaskManager可以有多个,各个TaskManager都平等。 JobManager Flink系统的管理节点,管理所有的TaskManager,并决策用户任务在哪些Taskmanager执行。JobManager在HA模式下可以有多个,但只有一个主JobManager。 Flink系统提供的关键能力: 低时延 提供ms级时延的处理能力。 ExactlyOnce 提供异步快照机制,保证所有数据真正只处理一次。 HA JobManager支持主备模式,保证无单点故障。 水平扩展能力 TaskManager支持手动水平扩展。
  • 样例工程介绍 MRS 样例工程获取地址为https://github.com/huaweicloud/huaweicloud-mrs-example,切换分支为与MRS集群相匹配的版本分支,然后下载压缩包到本地后解压,即可获取各组件对应的样例代码工程。 当前MRS提供以下Flink相关样例工程,安全模式路径为“flink-examples/flink-examples-security”,普通模式路径为“flink-examples/flink-examples-normal”: 表2 Flink相关样例工程 样例工程 描述 FlinkCheckpointJavaExample 异步Checkpoint机制程序的应用开发示例。 假定用户需要每隔1秒钟需要统计4秒中窗口中数据的量,并做到状态严格一致性,即:当应用出现异常并恢复后,各个算子的状态能够处于统一的状态,相关业务场景介绍请参见Flink开启Checkpoint样例程序。 FlinkCheckpointScalaExample FlinkKafkaJavaExample 向Kafka生产并消费数据程序的应用开发示例。 通过调用flink-connector-kafka模块的接口,生产并消费数据,相关业务场景介绍请参见Flink Kafka样例程序。 FlinkKafkaScalaExample FlinkPipelineJavaExample Job Pipeline程序的应用开发示例。 相关业务场景介绍请参见Flink Job Pipeline样例程序。 发布者Job自己每秒钟产生10000条数据,然后经由该job的NettySink算子向下游发送。另外两个Job作为订阅者,分别订阅一份数据并打印输出。 FlinkPipelineScalaExample FlinkSqlJavaExample 使用客户端通过jar作业提交SQL作业的应用开发示例。 FlinkStreamJavaExample DataStream程序的应用开发示例。 相关业务场景介绍请参见Flink DataStream样例程序。 假定用户有某个网站周末网民网购停留时间的日志文本,另有一张网民个人信息的csv格式表,可通过Flink应用程序实现例如实时统计总计网购时间超过2个小时的女性网民信息,包含对应的个人详细信息的功能。 FlinkStreamScalaExample FlinkStreamSqlJoinExample Stream SQL Join程序的应用开发示例。 相关业务场景介绍请参见Flink Join样例程序。 假定某个Flink业务1每秒就会收到1条消息记录,消息记录某个用户的基本信息,包括名字、性别、年龄。另有一个Flink业务2会不定时收到1条消息记录,消息记录该用户的名字、职业信息。实现实时的以根据业务2中消息记录的用户名字作为关键字,对两个业务数据进行联合查询的功能。
  • MapReduce简介 Hadoop MapReduce是一个使用简易的并行计算软件框架,基于它写出来的应用程序能够运行在由上千个服务器组成的大型集群上,并以一种可靠容错的方式并行处理上TB级别的数据集。 一个MapReduce作业(application/job)通常会把输入的数据集切分为若干独立的数据块,由map任务(task)以完全并行的方式来处理。框架会对map的输出先进行排序,然后把结果输入给reduce任务,最后返回给客户端。通常作业的输入和输出都会被存储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。 MapReduce主要特点如下: 大规模并行计算 适用于大型数据集 高容错性和高可靠性 合理的资源调度
  • 常用概念 Colocation 同分布(Colocation)功能是将存在关联关系的数据或可能要进行关联操作的数据存储在相同的存储节点上。HDFS文件同分布的特性是,将那些需进行关联操作的文件存放在相同的数据节点上,在进行关联操作计算时,避免了到别的数据节点上获取数据的动作,大大降低了网络带宽的占用。 Client HDFS Client主要包括五种方式:JAVA API、C API、Shell、HTTP REST API、WEB UI五种方式,可参考常用API介绍、HDFS Shell命令介绍。 JAVA API 提供HDFS文件系统的应用接口,本开发指南主要介绍如何使用Java API进行HDFS文件系统的应用开发。 C API 提供HDFS文件系统的应用接口,使用C语言开发的用户可参考C接口的描述进行应用开发。 Shell 提供shell命令完成HDFS文件系统的基本操作。 HTTP REST API 提供除Shell、Java API和C API以外的其他接口,可通过此接口监控HDFS状态等信息。 WEB UI 提供Web可视化组件管理界面。 keytab文件 存放用户信息的密钥文件,应用程序采用此密钥文件在组件中进行API方式认证。
  • Spark Streaming常用概念 Dstream DStream(又称Discretized Stream)是Spark Streaming提供的抽象概念。 DStream表示一个连续的数据流,是从数据源获取或者通过输入流转换生成的数据流。从本质上说,一个DStream表示一系列连续的RDD。RDD是一个只读的、可分区的分布式数据集。 DStream中的每个RDD包含了一个区间的数据。如图4所示。 图4 DStream与RDD关系 应用到DStream上的所有算子会被转译成下层RDD的算子操作,如图5所示。这些下层的RDD转换会通过Spark引擎进行计算。DStream算子隐藏大部分的操作细节,并且提供了方便的High-level API给开发者使用。 图5 DStream算子转译
  • Spark简介 Spark是分布式批处理框架,提供分析挖掘与迭代式内存计算能力,支持多种语言(Scala/Java/Python)的应用开发。 适用以下场景: 数据处理(Data Processing):可以用来快速处理数据,兼具容错性和可扩展性。 迭代计算(Iterative Computation):支持迭代计算,有效应对多步的数据处理逻辑。 数据挖掘(Data Mining):在海量数据基础上进行复杂的挖掘分析,可支持各种数据挖掘和机器学习算法。 流式处理(Streaming Processing):支持秒级延迟的流式处理,可支持多种外部数据源。 查询分析(Query Analysis):支持标准SQL查询分析,同时提供DSL(DataFrame), 并支持多种外部输入。 本文档重点介绍Spark、Spark SQL和Spark Streaming应用开发指导。
  • Spark SQL常用概念 DataSet DataSet是一个由特定域的对象组成的强类型集合,可通过功能或关系操作并行转换其中的对象。 每个Dataset还有一个非类型视图,即由多个列组成的DataSet,称为DataFrame。 DataFrame是一个由多个列组成的结构化的分布式数据集合,等同于关系数据库中的一张表,或者是R/Python中的data frame。DataFrame是Spark SQL中的最基本的概念,可以通过多种方式创建,例如结构化的数据集、Hive表、外部数据库或者是RDD。
  • Structured Streaming常用概念 Input Source 输入数据源,数据源需要支持根据offset重放数据,不同的数据源有不同的容错性。 Sink 数据输出,Sink要支持幂等性写入操作,不同的sink有不同的容错性。 outputMode 结果输出模式,当前支持3种输出模: Complete Mode:整个更新的结果集都会写入外部存储。整张表的写入操作将由外部存储系统的连接器完成。 Append Mode:当时间间隔触发时,只有在Result Table中新增加的数据行会被写入外部存储。这种方式只适用于结果集中已经存在的内容不希望发生改变的情况下,如果已经存在的数据会被更新,不适合适用此种方式。 Update Mode:当时间间隔触发时,只有在Result Table中被更新的数据才会被写入外部存储系统。注意,和Complete Mode方式的不同之处是不更新的结果集不会写入外部存储。 Trigger 输出触发器,当前支持以下几种trigger: 默认:以微批模式执行,每个批次完成后自动执行下个批次。 固定间隔:固定时间间隔执行。 一次执行:只执行一次query,完成后退出。 连续模式:实验特性,可实现低至1ms延迟的流处理(推荐100ms)。 Structured Streaming支持微批模式和连续模式。微批模式不能保证对数据的低延迟处理,但是在相同时间下有更大的吞吐量;连续模式适合毫秒级的数据处理延迟,当前暂时还属于实验特性。 在当前版本中,若需要使用流流Join功能,则output模式只能选择append模式。 图6 微批模式运行过程简图 图7 连续模式运行过程简图
  • Spark开发接口简介 Spark支持使用Scala、Java和Python语言进行程序开发,由于Spark本身是由Scala语言开发出来的,且Scala语言具有简洁易懂的特性,推荐用户使用Scala语言进行Spark应用程序开发。 按不同的语言分,Spark的API接口如表1所示。 表1 Spark API接口 功能 说明 Scala API 提供Scala语言的API,Spark Core、SparkSQL和Spark Streaming模块的常用接口请参见Spark Scala API接口介绍。由于Scala语言的简洁易懂,推荐用户使用Scala接口进行程序开发。 Java API 提供Java语言的API,Spark Core、SparkSQL和Spark Streaming模块的常用接口请参见Spark Java API接口介绍。 Python API 提供Python语言的API,Spark Core、SparkSQL和Spark Streaming模块的常用接口请参见Spark Python API接口介绍。 按不同的模块分,Spark Core和Spark Streaming使用上表中的API接口进行程序开发。而SparkSQL模块,支持CLI或者JD BCS erver两种方式访问。其中JDB CS erver的连接方式也有Beeline和JDBC客户端代码两种。详情请参见Spark JDBCServer接口介绍。 spark-sql脚本、spark-shell脚本和spark-submit脚本(运行的应用中带SQL操作),不支持使用proxy user参数去提交任务。另外,由于本文档中涉及的样例程序已添加安全认证,建议不要使用proxy user参数去提交任务。