云服务器内容精选

  • 注册华为账号并开通华为云 在使用obsfs之前,您需要拥有一个华为账号并且成功开通OBS。OBS提供按需和资源包两种计费方式,充值或购买资源包即开通OBS服务。成功开通OBS后即可进行访问和使用。如果您已有账号且账号已开通OBS服务,可以略过此部分内容。 打开华为云网站www.huaweicloud.com。 注册账号。 使用OBS前需注册一个华为账号。如果您已有账号,请从3开始。 在顶部导航栏右侧,单击“注册”。 在注册页面,根据提示信息完成注册。 注册成功后,系统会自动跳转至您的个人信息界面。 在顶部导航栏右侧,单击“登录”,输账号名和密码。 在顶部导航栏右侧,单击“控制台”,进入华为云控制台。
  • 验证obsutil上传文件到OBS是否正常 创建测试文件。例如:test.txt。 touch test.txt 使用obsutil上传创建的文件到obs。 ~/tools/obsutil/obsutil_linux_amd64_5.4.6/obsutil cp test.txt obs://{OBS桶名称} 请将{OBS桶名称}替换为已创建的待使用的OBS桶名称,本示例选择的桶名为cae-obs,将在当前目录新建的test.txt文件上传到cae-obs桶中。提示“Upload successfully”表示上传成功。 图1 上传文件到obs 登录OBS控制台,选择“桶列表”。 单击本示例桶名名称cae-obs,进入“概览”页面。 选择“对象”,可查看已经上传的文件test.txt。 图2 查看已上传文件
  • 安全认证代码(Scala版) 目前样例代码统一调用LoginUtil类进行安全认证。 在Spark样例工程代码中,不同的样例工程,使用的认证代码不同,基本安全认证或带ZooKeeper认证。样例工程中使用的示例认证参数如表3所示,请根据实际情况修改对应参数值。 表3 参数描述 参数 示例参数值 描述 userPrincipal sparkuser 用户用于认证的账号Principal,您可以联系管理员获取此账号。 userKeytabPath /opt/FIclient/user.keytab 用户用于认证的Keytab文件,您可以联系管理员获取文件。 krb5ConfPath /opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf krb5.conf文件路径和文件名称。 ZKServerPrincipal zookeeper/hadoop.hadoop.com ZooKeeper服务端principal。请联系管理员获取对应账号。 基本安全认证: Spark Core和Spark SQL程序不需要访问HBase或ZooKeeper,所以使用基本的安全认证代码即可。请在程序中添加如下代码,并根据实际情况设置安全认证相关参数: val userPrincipal = "sparkuser" val userKeytabPath = "/opt/FIclient/user.keytab" val krb5ConfPath = "/opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf" val hadoopConf: Configuration = new Configuration() LoginUtil.login(userPrincipal, userKeytabPath, krb5ConfPath, hadoopConf); 带ZooKeeper认证: 由于“Spark Streaming”、“通过JDBC访问Spark SQL”和“Spark on HBase”样例程序,不仅需要基础安全认证,还需要添加ZooKeeper服务端Principal才能完成安全认证。请在程序中添加如下代码,并根据实际情况设置安全认证相关参数: val userPrincipal = "sparkuser" val userKeytabPath = "/opt/FIclient/user.keytab" val krb5ConfPath = "/opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf" val ZKServerPrincipal = "zookeeper/hadoop.hadoop.com" val ZOOKEEPER_DEFAULT_LOGIN_CONTEXT_NAME: String = "Client" val ZOOKEEPER_SERVER_PRINCIPAL_KEY: String = "zookeeper.server.principal" val hadoopConf: Configuration = new Configuration(); LoginUtil.setJaasConf(ZOOKEEPER_DEFAULT_LOGIN_CONTEXT_NAME, userPrincipal, userKeytabPath) LoginUtil.setZookeeperServerPrincipal(ZOOKEEPER_SERVER_PRINCIPAL_KEY, ZKServerPrincipal) LoginUtil.login(userPrincipal, userKeytabPath, krb5ConfPath, hadoopConf);
  • 安全认证代码(Java版) 目前样例代码统一调用LoginUtil类进行安全认证。 在Spark样例工程代码中,不同的样例工程,使用的认证代码不同,基本安全认证或带ZooKeeper认证。样例工程中使用的示例认证参数如表2所示,请根据实际情况修改对应参数值。 表2 参数描述 参数 示例参数值 描述 userPrincipal sparkuser 用户用于认证的账号Principal,您可以联系管理员获取此账号。 userKeytabPath /opt/FIclient/user.keytab 用户用于认证的Keytab文件,您可以联系管理员获取文件。 krb5ConfPath /opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf krb5.conf文件路径和文件名称。 ZKServerPrincipal zookeeper/hadoop.hadoop.com ZooKeeper服务端principal。请联系管理员获取对应账号。 基本安全认证: Spark Core和Spark SQL程序不需要访问HBase或ZooKeeper,所以使用基本的安全认证代码即可。请在程序中添加如下代码,并根据实际情况设置安全认证相关参数: String userPrincipal = "sparkuser"; String userKeytabPath = "/opt/FIclient/user.keytab"; String krb5ConfPath = "/opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf"; Configuration hadoopConf = new Configuration(); LoginUtil.login(userPrincipal, userKeytabPath, krb5ConfPath, hadoopConf); 带ZooKeeper认证: 由于“Spark Streaming”、“通过JDBC访问Spark SQL”和“Spark on HBase”样例程序,不仅需要基础安全认证,还需要添加ZooKeeper服务端Principal才能完成安全认证。请在程序中添加如下代码,并根据实际情况设置安全认证相关参数: String userPrincipal = "sparkuser"; String userKeytabPath = "/opt/FIclient/user.keytab"; String krb5ConfPath = "/opt/FIclient/KrbClient/kerberos/var/krb5kdc/krb5.conf"; String ZKServerPrincipal = "zookeeper/hadoop.hadoop.com"; String ZOOKEEPER_DEFAULT_LOGIN_CONTEXT_NAME = "Client"; String ZOOKEEPER_SERVER_PRINCIPAL_KEY = "zookeeper.server.principal"; Configuration hadoopConf = new Configuration(); LoginUtil.setJaasConf(ZOOKEEPER_DEFAULT_LOGIN_CONTEXT_NAME, userPrincipal, userKeytabPath); LoginUtil.setZookeeperServerPrincipal(ZOOKEEPER_SERVER_PRINCIPAL_KEY, ZKServerPrincipal); LoginUtil.login(userPrincipal, userKeytabPath, krb5ConfPath, hadoopConf);
  • 前提条件 已按照准备开发和运行环境章节准备好开发用户,例如developuser,并下载用户的认证凭据文件到本地。 用户需要具备Oozie的普通用户权限,HDFS访问权限,Hive表读写权限,HBase读写权限以及Yarn的队列提交权限。 已在Linux环境中安装了完整的集群客户端。 获取Oozie服务器URL(任意节点),这个URL将是客户端提交流程任务的目标地址。 URL格式为:https://Oozie节点业务IP:21003/oozie。端口为“OOZIE_HTTPS_PORT”参数对应值,默认为21003。 例如,“https://10.10.10.176:21003/oozie”。
  • 前提条件 已按照准备开发和运行环境章节准备好开发用户,例如developuser,并下载用户的认证凭据文件到本地。 用户需要具备Oozie的普通用户权限,HDFS访问权限,Hive表读写权限,HBase读写权限以及Yarn的队列提交权限。 已在Linux环境中安装了完整的集群客户端。 获取Oozie服务器URL(任意节点),这个URL将是客户端提交流程任务的目标地址。 URL格式为:https://Oozie节点业务IP:21003/oozie。端口为“OOZIE_HTTPS_PORT”参数对应值,默认为21003。 例如,“https://10.10.10.176:21003/oozie”。
  • 创建连接器 用户登录TICS控制台。 进入TICS控制台后,单击页面左侧“计算节点管理”。 在“计算节点管理”页面,查找需要发布数据的计算节点名称,单击“计算节点名称”进入计算节点详情页。 图1 选择计算节点 在“计算节点详情”页,单击“前往计算节点”,在登录页正确输入部署计算节点时设置的“登录用户名”和“密码”。 图2 前往计算节点 登录成功后,进入到计算节点界面,选择左侧导航栏中“连接器管理”,单击“创建”,在弹出的界面配置创建连接器的参数,配置完成后单击“确定”。 测试功能为数据源连通性及密码正确性的检查测试。 图3 创建连接器(以RDS服务为例) 表1 参数说明 参数名 描述 连接器类型 “连接器类型”选择Hive连接时,需要选择Hive版本,当前仅支持MRS2.x和MRS3.x版本,选择的MRS集群需与当前计算节点部署CCE或IEF(非云上IEF节点不支持接入Hive)在同一VPC。“用户名”为MRS集群中拥有Hive权限的集群用户,“用户认证凭据”需要上传对应用户的认证凭据,MRS2.x版本请在MapReduce服务的下载用户认证文件中获取,MRS3.x版本请在导出认证凭据文件中获取。 “连接器类型”选择RDS服务时,所选择的RDS服务实例需与计算节点在同一VPC下,且端口开放。填写的用户名,需具有数据库的读写权限(参考修改权限)。“密码”为该用户登录RDS实例的密码。 “连接器类型”选择MySql时,需保证计算节点与数据库所在虚机的连通性,“驱动文件”需与目标MySQL数据库版本一致。驱动类名com.mysql.cj.jdbc.Driver,仅支持mysql-connector-java-5.x以后的版本,驱动文件请在Mysql驱动下载地址中获取。 “连接器类型” 选择DWS连接时,填写的用户名,需具有数据库的读写权限(参考权限管理)。“密码”为该用户登录DWS实例的密码。 “连接器类型” 选择ORACLE连接时,需保证计算节点与数据库的连通性,当前仅支持ORACLE 12c和19c版本。驱动文件需与目标ORACLE数据库版本一致,请在ORACLE驱动下载地址中获取。 “连接器类型” 选择API连接时,需保证计算节点与api接口的连通性,当前仅支持基础认证方式。 连接器名称 根据实际情况设置即可。 数据库版本 “连接器类型”选择MySql和ORACLE时,呈现此参数。根据实际情况设置即可。 数据库名称 “连接器类型”选择ORACLE时,呈现此参数。根据实际情况设置即可。 数据库服务器 “连接器类型”选择ORACLE时,呈现此参数。用户根据实际情况设置。 端口 “连接器类型”选择ORACLE时,呈现此参数。用户根据实际情况设置。 实例名称 “连接器类型”选择RDS或DWS服务时,呈现此参数。下拉选择实例即可。 数据库 “连接器类型”选择DWS服务时,呈现此参数。可手动输入DWS服务里面购买的数据库名称。 用户名 用户根据实际情况设置。 密码 用户根据实际情况设置。 驱动类名 “连接器类型”选择MySql和ORACLE时,呈现此参数。根据实际情况设置,注意驱动类名com.mysql.cj.jdbc.Driver仅支持mysql-connector-java-5.x以后的版本。 JDBC URL “连接器类型”选择MySql时,呈现此参数。JDBC访问端口。取值样例:198.0.0.1:3306。 驱动文件 “连接器类型”选择MySql和ORACLE时,呈现此参数。JDBC驱动。 其他属性 “连接器类型”选择MySql时,呈现此参数。用户根据实际情况设置任务所需的Key和Value。
  • 前提条件 计算节点处于运行中,且所在空间信息的“认证状态”为“已认证”。 建议使用者提前了解MapReduce服务(MRS Hive)集群。 “连接器类型”选择MapReduce服务(MRS Hive)时,选择的MRS集群需与当前计算节点部署CCE在同一VPC。填写的用户名,需具有Hive的读写权限。“集群名称”为用户所需要使用的MRS Hive数据源所在的MRS集群。“用户名”为MRS集群中拥有Hive权限的集群用户。
  • CCE服务委托授权 由于CCE在运行中对计算、存储、网络以及监控等各类云服务资源都存在依赖关系,因此当您首次登录CCE控制台时,CCE将自动请求获取当前区域下的云资源权限,从而更好地为您提供服务。 CCE的服务授权为全局配置,只要您所使用的账号在当前Region曾经进行过服务授权,则无需重新配置,可以跳过本节操作。 图1 服务授权 当您同意授权后,CCE将在IAM中创建名为“cce_admin_trust”委托,统一使用系统账户“op_svc_cce”对您的其他云服务资源进行操作,cce_admin_trust委托具有Tenant Administrator权限。Tenant Administrator拥有除IAM管理外的全部云服务管理员权限,用于对CCE所依赖的其他云服务资源进行调用,且该授权仅在当前区域生效。关于资源委托详情,您可参考委托进行了解。
  • 操作步骤 打开IDEA工具,选择“Create New Project”。 图1 创建工程 在“New Project”页面,选择“Scala”开发环境,并选择“IDEA”,然后单击“Next”。 如果您需要新建Java语言的工程,选择对应参数即可。 图2 选择开发环境 在工程信息页面,填写工程名称和存放路径,设置JDK版本、Scala SDK版本,然后单击“Finish”完成工程创建。 图3 填写工程信息
  • 服务授权操作 进入TICS服务控制台,为保证正常创建TICS服务,需要先设置服务委托。 进入计算节点购买页面,根据弹出窗口提示勾选对应的委托权限。 同意授权后,TICS将在统一身份认证服务IAM下为您创建名为tics_admin_trust的委托,授权成功后,可以进入委托列表查看。注意:委托tics_admin_trust创建成功后,请勿删除。 图1 授权访问权限名1 图2 授权访问权限名2 表1 TICS委托权限列表 权限名 详细信息 备注 CCE Administrator TICS服务计算节点依赖CCE作为底层资源,因此需要CCE Administrator角色来创建集群和部署应用。 由于云服务缓存需要时间,该权限3分钟左右才能生效。 OBS Administrator TICS计算节点使用OBS作为存储方式时,需要获取OBS权限以同步数据到计算节点。 IEF Administrator TICS服务计算节点依赖IEF作为底层资源,因此需要IEF Administrator角色来部署应用。
  • Hive操作权限 在进行应用程序开发之前,使用的用户的基本权限要求是属于Hive组,额外操作权限需从系统管理员处获取,具体权限要求请参见表2。用户运行样例程序,需要在default数据库中有CREATE权限。 表2 操作权限要求 操作类型/作用对象 操作 权限要求 DATABASE CREATE DATABASE dbname [LOCATION "hdfs_path"] 如果指定了HDFS路径hdfs_path,需要是路径hdfs_path的所有者和具有RWX权限。 DROP DATABASE dbname 拥有数据库dbname的所有权。 ALTER DATABASE dbname SET OWNER user_or_role 具有admin权限。 TABLE CREATE TABLE table_a 拥有数据库的CREATE权限。 CREATE TABLE table_a AS SELECT table_b 拥有数据库的CREATE权限,对表table_b拥有SELECT权限。 CREATE TABLE table_a LIKE table_b 拥有数据库的CREATE权限。 CREATE [EXTERNAL] TABLE table_a LOCATION "hdfs_path" 拥有数据库的CREATE权限,是HDFS上的数据路径hdfs_path的所有者和具有RWX权限。 DROP TABLE table_a 是表table_a的所有者。 ALTER TABLE table_a SET LOCATION "hdfs_path" 是表table_a的所有者,是HDFS上的数据路径hdfs_path的所有者和具有RWX权限。 ALTER TABLE table_a SET FILEFORMAT 是表table_a的所有者。 TRUNCATE TABLE table_a 是表table_a的所有者。 ANALYZE TABLE table_a COMPUTE STATISTICS 对表table_a拥有SELECT和INSERT权限。 SHOW TBLPROPERTIES table_a 对表table_a拥有SELECT权限。 SHOW CREATE TABLE table_a 对表table_a拥有SELECT且带有WITH GRANT OPTION的权限。 Alter ALTER TABLE table_a ADD COLUMN 是表table_a的所有者。 ALTER TABLE table_a REPLACE COLUMN 是表table_a的所有者。 ALTER TABLE table_a RENAME 是表table_a的所有者。 ALTER TABLE table_a SET SERDE 是表table_a的所有者。 ALTER TABLE table_a CLUSTER BY 是表table_a的所有者。 PARTITION ALTER TABLE table_a ADD PARTITION partition_spec LOCATION "hdfs_path" 对表table_a拥有INSERT权限,是HDFS上的数据路径hdfs_path的所有者和具有RWX权限。 ALTER TABLE table_a DROP PARTITION partition_spec 对表table_a拥有DELETE权限。 ALTER TABLE table_a PARTITION partition_spec SET LOCATION "hdfs_path" 是表table_a的所有者,是HDFS上的数据路径hdfs_path的所有者和具有RWX权限。 ALTER TABLE table_a PARTITION partition_spec SET FILEFORMAT 是表table_a的所有者。 LOAD LOAD INPATH 'hdfs_path' INTO TABLE table_a 对表table_a拥有INSERT权限,是HDFS上的数据路径hdfs_path的所有者和具有RWX权限。 INSERT INSERT TABLE table_a SELECT FROM table_b 对表table_a拥有INSERT权限,对表table_b拥有SELECT权限。拥有Yarn的default队列的Submit权限。 SELECT SELECT * FROM table_a 对表table_a拥有SELECT权限。 SELECT FROM table_a JOIN table_b 对表table_a、表table_b拥有SELECT权限,拥有Yarn的default队列的Submit权限。 SELECT FROM (SELECT FROM table_a UNION ALL SELECT FROM table_b) 对表table_a、表table_b拥有SELECT权限。拥有Yarn的default队列的Submit权限。 EXPLAIN EXPLAIN [EXTENDED|DEPENDENCY] query 对相关表目录具有RX权限。 VIEW CREATE VIEW view_name AS SELECT ... 对相关表拥有SELECT且带有WITH GRANT OPTION的权限。 ALTER VIEW view_name RENAME TO new_view_name 是视图view_name的所有者。 DROP VIEW view_name 是视图view_name的所有者。 FUNCTION CREATE [TEMPORARY] FUNCTION function_name AS 'class_name' 具有admin权限。 DROP [TEMPORARY] function_name 具有admin权限。 MACRO CREATE TEMPORARY MACRO macro_name ... 具有admin权限。 DROP TEMPORARY MACRO macro_name 具有admin权限。 以上所有的操作只要拥有Hive的admin权限以及对应的HDFS目录权限就能做相应的操作。 如果当前组件使用了Ranger进行权限控制,需基于Ranger配置相关策略进行权限管理。
  • 登录华为云账号 使用Chrome浏览器访问系统环境地址:https://console.huaweicloud.com/optverse/?agencyId=053a59ad180026111f2ac011f5934368®ion=cn-north-4&locale=zh-cn#/optverse/overview,出现如下界面, 输入华为云账号用户名和密码,点击“登录”按钮, 登录成功后,进入OptVerse首页界面,如下图所示: 父主题: 华为云账号环境准备
  • 场景说明 在安全集群环境下,各个组件之间的相互通信不能够简单的互通,而需要在通信之前进行相互认证,以确保通信的安全性。 用户在提交MapReduce应用程序时,需要与Yarn、HDFS等之间进行通信。那么提交MapReduce的应用程序中需要写入安全认证代码,确保MapReduce程序能够正常运行。 安全认证有两种方式: 命令行认证: 提交MapReduce应用程序运行前,在MapReduce客户端执行如下命令获得认证。 kinit 组件业务用户 代码认证: 通过获取客户端的principal和keytab文件在应用程序中进行认证。
  • 安全认证 Flink整个系统有两种认证方式: 使用kerberos认证:Flink yarn client与Yarn Resource Manager、JobManager与Zookeeper、JobManager与HDFS、TaskManager与HDFS、Kafka与TaskManager、TaskManager和Zookeeper。 使用YARN内部的认证机制:Yarn Resource Manager与Application Master(简称AM)。 Flink的JobManager与YARN的AM是在同一个进程下。 表1 安全认证方式 安全认证方式 说明 配置方法 Kerberos认证 当前只支持keytab认证方式。 从KDC服务器上下载用户keytab,并将keytab放到Flink客户端所在主机的某个文件夹下(例如/home/flinkuser/keytab)。 在“${FLINK_HOME}/conf/flink-conf.yaml”上配置: keytab路径。 security.kerberos.login.keytab: /home/flinkuser/keytab/user.keytab 说明: “/home/flinkuser/keytab/”表示的是用户保存keytab的目录。 principal名(即开发用户名)。 security.kerberos.login.principal:flinkuser 对于HA模式,如果配置了ZooKeeper,还需要设置ZK kerberos认证相关的配置。配置如下: zookeeper.sasl.disable: false security.kerberos.login.contexts: Client 如果用户对于Kafka client和Kafka broker之间也需要做kerberos认证,配置如下: security.kerberos.login.contexts: Client,KafkaClient YARN内部认证方式 该方式是YARN内部的认证方式,不需要用户配置。 - 当前一个Flink集群只支持一个用户,一个用户可以创建多个Flink集群。