云服务器内容精选

  • 操作步骤 在SFTP服务器的“/opt/houjt/test03”路径中,创建多个以“table1”为前缀,“.txt”为后缀,中间为yyyyMMdd的日期格式的文件。 图1 示例 创建一个从SFTP服务器导入数据到HDFS的Loader作业,具体操作请参见典型场景:从SFTP服务器导入数据到HDFS/OBS。 使用安装客户端的用户登录客户端所在节点。 执行以下命令,进入schedule-tool工具的conf目录。例如,Loader客户端安装目录为“/opt/client/Loader/”。 cd /opt/client/Loader/loader-tools-1.99.3/schedule-tool/conf 执行以下命令,编辑schedule.properties文件,配置登录方式。 vi schedule.properties schedule-tool工具支持两种登录方式,两者只能选一。详细参数请参见schedule-tool工具使用指导。配置文件中包含认证密码信息可能存在安全风险,建议当前场景执行完毕后删除相关配置文件或加强安全管理。 以密码方式登录,配置信息示例如下: [server.url = 10.10.26.187:21351,127.0.0.2:21351] [authentication.type = kerberos] [use.keytab = false] [authentication.user = admin] # 密码明文存储存在安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全 [authentication.password= xxx] 以keytab文件方式登录,配置信息示例如下: [server.url = 10.10.26.187:21351,127.0.0.2:21351] [authentication.type = kerberos] [use.keytab = true] [client.principal = bar] [client.keytab = /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/hadoop-config/user.keytab] [krb5.conf.file = /opt/hadoopclient/Loader/loader-tools-1.99.3/loader-tool/hadoop-config/krb5.conf] 执行以下命令,编辑job.properties文件,配置作业信息。 vi job.properties #job name job.jobName = sftp2hdfs-schedule-tool #Whether to update the loader configuration parameters(File filter)£?This parameter is used to match the import file name.Values are true or false. #false means update.the file name which is get by schedule tool will be updated to Loader configuration parameters (File filter). #false means no update.the file name which is get by schedule tool will be updated to Loader configuration parameters (import path). file.filter = false #File name = prefix + date + suffix #Need to import the file name prefix file.fileName.prefix=table1 #Need to import the file name suffixes file.fileName.posfix=.txt #Date Days.Value is an integer. #According to the date and number of days to get the date of the import file. date.day = 1 #Date Format.Import file name contains the date format.Format Type£ºyyyyMMdd,yyyyMMdd HHmmss,yyyy-MM-dd,yyyy-MM-dd HH:mm:ss file.date.format = yyyyMMdd #Date Format.Scheduling script execution. Enter the date format. parameter.date.format = yyyyMMdd #Whether the import file is a compressed format.Values ??are true or false. #true indicates that the file is a compressed format£?Execution scheduling tool will extract the files.false indicates that the file is an uncompressed.Execution scheduling tool does not unpack. file.format.iscompressed = false #Hadoop storage type.Values are HDFS or HBase. storage.type = HDFS 根据1的所准备的数据,以文件table120160221.txt为例,过滤规则设置如下: 文件名的前缀 file.fileName.prefix=table1 文件名的后缀 file.fileName.posfix=.txt 文件名中包含的日期格式 file.date.format = yyyyMMdd 调用脚本输入的日期参数 parameter.date.format = yyyyMMdd 顺延的天数 date.day = 1 例如,脚本传入的日期参数是20160220,则通过加法计算,得到的结果是20160221。 如果执行的命令是 ./run.sh 20160220 /user/loader/schedule_01时,以上过滤规则会拼凑出一个字符串:"table1"+"20160221"+.txt = table120160221.txt 根据file.filter的值,选择过滤规则。 精确匹配某一个文件,请执行8。 模糊匹配一系列文件,请执行9。 将job.properties文件中“file.filter”的值修改为“false”。 执行以下命令,运行作业,任务结束。 cd /opt/client/Loader/loader-tools-1.99.3/schedule-tool ./run.sh 20160220 /user/loader/schedule_01 其中20160220为输入的日期,/user/loader/schedule_01为输出的路径。 通过以上过滤规则,拼凑得到的字符串“table120160221.txt”,会直接作为文件名,追加到作业配置的输入路径中。所以,作业只会处理唯一匹配到的文件“table120160221.txt”。 将job.properties文件中“file.filter”的值修改为“true”,“file.fileName.prefix”设置为“*”。 执行以下命令,运行作业,任务结束。 cd /opt/client/Loader/loader-tools-1.99.3/schedule-tool ./run.sh 20160220 /user/loader/schedule_01 其中20160220为输入的日期,/user/loader/schedule_01为输出的路径。 通过以上过滤规则,拼凑到的字符串“*20160221.txt”,会作为文件过滤器的模糊匹配模式,在作业配置的输入路径下,所有符合“*20160221.txt”这个模式的文件都将被作业处理。
  • 技术原理 图1 Database Schema Convertor架构图 Database Schema Convertor支持语法迁移的源端及目标端数据库类型如下: 序号 功能清单 描述 1 Teradata Perl迁移 Database Schema Convertor支持将Teradata Perl文件迁移到GaussDB(DWS)、GaussDB 300和DWS 2 Teradata SQL迁移 Database Schema Convertor支持将Teradata SQL迁移到GaussDB(DWS)、GaussDB 300和DWS 3 Oracle SQL迁移 Database Schema Convertor支持将Oracle SQL迁移到GaussDB(DWS)、GaussDB 300和DWS 4 Oracle(beta) SQL迁移 Database Schema Convertor支持将Oracle SQL迁移到GaussDB(DWS)、GaussDB 300和DWS Database Schema Convertor的具体使用方法请参见《DSC工具指南》。
  • 功能描述 Database Schema Convertor是一款运行在Linux或Windows操作系统上的命令行工具,致力于向客户提供简单、快速、可靠的应用程序sql脚本迁移服务,通过内置的语法迁移逻辑解析源数据库应用程序sql脚本,并迁移为适用于DWS数据库的应用程序sql脚本。 Database Schema Convertor不需要连接数据库,可在离线模式下实现零停机迁移,迁移过程中会显示迁移过程状态,并用日志记录操作过程中发生的错误,便于快速定位问题。 Database Schema Convertor支持迁移Teradata和Oracle至DWS,目前支持迁移的对象有: Oracle和Teradata支持的通用对象:SQL模式,SQL查询 仅Oracle支持的对象:PL/SQL 仅Teradata支持的对象:包含BTEQ和SQL_LANG脚本的Perl文件 目标用户群: 数据库管理员 数据库迁移工程师
  • 任务实例 不更新作业参数,直接运行名称为“sftp-hdfs”的作业。 ./submit_job.sh -n sftp-hdfs -u n 更新名称为“sftp-hdfs”导入作业的输入路径、编码类型、后缀、输出路径和启动的map数量参数,并运行作业。 ./submit_job.sh -n sftp-hdfs -u y -jobType import -connectorType sftp -inputPath /opt/tempfile/1 -encodeType UTF-8 -suffixName '' -frameworkType hdfs -outputDirectory /user/user1/tttest -extractors 10 更新名称为“db-hdfs”导入作业的数据库模式、表名、输出路径参数,并运行作业。 ./submit_job.sh -n db-hdfs -u y -jobType import -connectorType rdb -schemaName public -tableName sq_submission -sql '' -partitionColumn sqs_id -frameworkType hdfs -outputDirectory /user/user1/dbdbt
  • 参数说明 表2 gs_ktool参数说明 参数 参数说明 参数类型 : 取值范围 -g 生成单个密钥,可在配置文件中配置默认的CMK长度。 - -l CMK_LENTH 配合-g使用,可指定生成的CMK长度。 整型 : [16, 112] bytes -d CMK_ID 删除指定CMK。 整型 : [1, 4095]; 字符型 : all -s CMK_ID 查询指定CMK的信息,不包含CMK明文或密文。 整型 : [1, 4095]; 字符型 : all -e 导出当前gs_ktool中的全部密钥到文件中,可使用-f指定导出文件。 - -i 从指定密钥文件中导入全部密钥,必须使用-f指定密钥文件;请注意该操作的覆盖特性。 - -f FILE 配合-i和-e使用,指定密钥文件的位置 (可指定绝对路径或相对路径,但必须是已存在的路径;当配合-e使用时,如果指定的文件不存在,则新建,如果已存在,则会覆盖)。 字符型 : 绝对路径/日志文件名 -p FILE_PASSWORD 配和-i和-e使用,输入密钥文件的口令 (如果未使用该参数,则默认使用交互式口令输入方式)。 字符型 : 长度区间为[8, 255],且至少包含3种类型的字符。 -R -u 轮转(更新)RK;该操作会更新CMK的密文。 - -R -s 查询RK的信息,不包含RK的明文或密文。 - -v 查看版本信息。 - -h, -? 查看使用帮助。 - 在使用gs_ktool -d all命令删除全部密钥时,命令执行的过程中,如果同时使用gs_ktool -g命令生成密钥,新生成的密钥可能会被删除。
  • 功能介绍 gs_ktool为客户端提供CMK明文,以保证其能够对CEK的进行加解密;与此同时,gs_ktool还为用户提供人机交互接口,以支持以下功能: 支持管理CMK:创建、删除、查询、导入和导出CMK。其中,查询功能不支持查询CMK的明文或者密文。目前,gs_ktool不支持更新CMK,用户仅能通过删除旧的密钥,并创建新的密钥以达到同等的效果; 全密态当前仅支持华为云KMS,gs_ktool不具备自动备份密钥能力,一旦密钥丢失,则数据无法恢复,建议gs_ktool仅作为验证与调试使用。 如果用户需要将gs_ktool中密钥进行备份,请手工执行密钥导出命令。并请注意,在进行密钥导入时,会覆盖当前gs_ktool中保存的所有密钥,请谨慎使用。 支持管理RK:查询、更新RK; 支持查询操作日志:针对上述对密钥进行管理的操作,gs_ktool均会记录相关的操作日志,用户可查看日志文件。
  • 环境变量 GS_KTOOL_FILE_PATH:gs_ktool运行时需要读取配置文件gs_ktool_conf.ini,使用GS_KTOOL_FILE_PATH来设置配置文件的路径。默认情况下,运行gs_ktool时生成的密钥存储文件和日志文件也会存储在该路径下。 解压GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_gsql.tar.gz包后,可在gs_ktool_file路径下找到gs_ktool_conf.ini配置文件,该文件中所有配置项已设置缺省值;另外,通过指令"source gsql_env.sh"可配置环境变量$GS_KTOOL_FILE_PATH。 表1 gs_ktool_conf.ini配置文件说明 配置项 配置项说明 参数类型 : 取值范围 rk_validity 生成RK时,默认的有效期(该配置项仅在生成RK时有效,即生成密钥文件时)。 整型 : [1, 10000] days cmk_validity 生成CMK时,默认的有效期。 整型 : [1, 3660] days cmk_length 生成CMK时,默认的密钥长度。 整型 : [16, 112] bytes pri_ksf 密钥存储文件。 字符型 : 绝对路径/密钥文件名 sec_ksf 备份的密钥存储文件。 字符型 : 绝对路径/密钥文件名 export_ksf 导出密钥时,默认的密钥存储文件。 字符型 : 绝对路径/密钥文件名 is_logmodule_open 是否打开日志记录功能。 字符型 : {ON, OFF} log_file 日志文件 字符型 :绝对路径/日志文件名
  • 环境变量 GS_KTOOL_FILE_PATH:gs_ktool运行时需要读取配置文件gs_ktool_conf.ini,使用GS_KTOOL_FILE_PATH来设置配置文件的路径。默认情况下,运行gs_ktool时生成的密钥存储文件和日志文件也会存储在该路径下。 解压GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_gsql.tar.gz包后,可在gs_ktool_file路径下找到gs_ktool_conf.ini配置文件,该文件中所有配置项已设置缺省值;另外,通过指令"source gsql_env.sh"可配置环境变量$GS_KTOOL_FILE_PATH。 表1 gs_ktool_conf.ini配置文件说明 配置项 配置项说明 参数类型 : 取值范围 rk_validity 生成RK时,默认的有效期(该配置项仅在生成RK时有效,即生成密钥文件时)。 整型 : [1, 10000] days cmk_validity 生成CMK时,默认的有效期。 整型 : [1, 3660] days cmk_length 生成CMK时,默认的密钥长度。 整型 : [16, 112] bytes pri_ksf 密钥存储文件。 字符型 : 绝对路径/密钥文件名 sec_ksf 备份的密钥存储文件。 字符型 : 绝对路径/密钥文件名 export_ksf 导出密钥时,默认的密钥存储文件。 字符型 : 绝对路径/密钥文件名 is_logmodule_open 是否打开日志记录功能。 字符型 : {ON, OFF} log_file 日志文件。 字符型 :绝对路径/日志文件名
  • 参数说明 表2 gs_ktool参数说明 参数 参数说明 参数类型 : 取值范围 -g 生成单个密钥,可在配置文件中配置默认的CMK长度。 - -l CMK_LENTH 配合-g使用,可指定生成的CMK长度。 整型 : [16, 112] bytes -d CMK_ID 删除指定CMK。 整型 : [1, 4095]; 字符型 : all -s CMK_ID 查询指定CMK的信息,不包含CMK明文或密文。 整型 : [1, 4095]; 字符型 : all -e 导出当前gs_ktool中的全部密钥到文件中,可使用-f指定导出文件。 - -i 从指定密钥文件中导入全部密钥,必须使用-f指定密钥文件;请注意该操作的覆盖特性。 - -f FILE 配合-i和-e使用,指定密钥文件的位置(可指定绝对路径或相对路径,但必须是已存在的路径;当配合-e使用时,如果指定的文件不存在,则新建,如果已存在,则会覆盖)。 字符型 : 绝对路径/日志文件名 -p FILE_PASSWORD 配和-i和-e使用,输入密钥文件的口令(如果未使用该参数,则默认使用交互式口令输入方式)。 字符型 : 长度区间为[8, 255],且至少包含3种类型的字符。 -R -u 轮转(更新)RK;该操作会更新CMK的密文。 - -R -s 查询RK的信息,不包含RK的明文或密文。 - -v 查看版本信息。 - -h, -? 查看使用帮助。 - 在使用gs_ktool -d all命令删除全部密钥时,命令执行的过程中,如果同时使用gs_ktool -g命令生成密钥,新生成的密钥可能会被删除。
  • 功能介绍 gs_ktool为客户端提供CMK明文,以保证其能够对CEK的进行加解密;与此同时,gs_ktool还为用户提供人机交互接口,以支持以下功能: 支持管理CMK:创建、删除、查询、导入和导出CMK。其中,查询功能不支持查询CMK的明文或者密文。目前,gs_ktool不支持更新CMK,用户仅能通过删除旧的密钥,并创建新的密钥以达到同等的效果. 全密态当前仅支持华为云KMS,gs_ktool不具备自动备份密钥能力,一旦密钥丢失,则数据无法恢复,建议gs_ktool仅作为验证与调试使用。 如果用户需要将gs_ktool中密钥进行备份,请手工执行密钥导出命令。并请注意,在进行密钥导入时,会覆盖当前gs_ktool中保存的所有密钥,请谨慎使用。 支持管理RK:查询、更新RK. 支持查询操作日志:针对上述对密钥进行管理的操作,gs_ktool均会记录相关的操作日志,用户可查看日志文件。
  • create命令扩展属性 针对HDFS与SFTP服务器或RDB进行数据交换场景,MRS在开源sqoop-shell工具的基础上对create命令属性进行扩展,以达到在创建作业时指定行、列分隔符及转换步骤的目的。 表2 create命令扩展属性 属性 说明 fields-terminated-by 默认的列分割符。 lines-terminated-by 默认的行分割符。 input-fields-terminated-by 输入步骤的列分割符,当不指定时,默认等于fields-terminated-by的值。 input-lines-terminated-by 输入步骤的行分割符,当不指定时,默认等于lines-terminated-by的值。 output-fields-terminated-by 输出步骤的列分割符,当不指定时,默认等于fields-terminated-by的值。 output-lines-terminated-by 输出步骤的行分割符,当不指定时,默认等于lines-terminated-by的值。 trans 指定转换步骤,值为转换步骤文件所在的路径。当指定文件的相对路径时,默认为“sqoop2-shell”脚本所在路径下的文件。当配置了该属性,其他扩展属性都被忽略。
  • sqoop1对接MRS服务 下载开源Sqoop,http://www.apache.org/dyn/closer.lua/sqoo:p/1.4.7。 将下载好的sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 包放入MRS集群master节点的/opt/sqoop目录下并解压。 tar zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 进入解压完成的目录,修改配置。 cd /opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf cp sqoop-env-template.sh sqoop-env.sh vi sqoop-env.sh 添加配置: export HADOOP_COMMON_HOME=/opt/client/HDFS/hadoop export HADOOP_MAPRED_HOME=/opt/client/HDFS/hadoop export HIVE_HOME=/opt/Bigdata/MRS_1.9.X/install/FusionInsight-Hive-3.1.0/hive(请按照实际路径填写) export HIVE_CONF_DIR=/opt/client/Hive/config export HCAT_HOME=/opt/client/Hive/HCatalog 添加系统变量,将“SQOOP_HOME”添加到PATH中。 vi /etc/profile 添加以下信息: export SQOOP_HOME=/opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0 export PATH=$PATH:$SQOOP_HOME/bin 执行以下命令复制jline-2.12.jar文件到lib文件下。 cp /opt/share/jline-2.12/jline-2.12.jar /opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/lib 执行以下命令,在文件中添加下列配置。 vim $JAVA_HOME/jre/lib/security/java.policy permission javax.management.MBeanTrustPermission "register"; 执行以下命令,实现sqoop1对接MRS服务。 source /etc/profile
  • 概述 sqoop-shell是一个开源的shell工具,其所有功能都是通过执行脚本“sqoop2-shell”来实现的。 sqoop-shell工具提供了如下功能: 支持创建和更新连接器 支持创建和更新作业 支持删除连接器和作业 支持以同步或异步的方式启动作业 支持停止作业 支持查询作业状态 支持查询作业历史执行记录 支持复制连接器和作业 支持创建和更新转换步骤 支持指定行、列分隔符 sqoop-shell工具支持如下模式: 交互模式 通过执行不带参数的“sqoop2-shell”脚本,进入Loader特定的交互窗口,用户输入脚本后,工具会返回相应信息到交互窗口。 批量模式 通过执行“sqoop2-shell”脚本,带一个文件名作为参数,该文件中按行存储了多条命令,sqoop-shell工具将会按顺序执行文件中所有命令;或者在“sqoop2-shell”脚本后面通过“-c”参数附加一条命令,一次只执行一条命令。 sqoop-shell通过表1的命令来实现Loader各种功能。 表1 命令一览表 命令 说明 exit 表示退出交互模式。 该命令仅支持交互模式。 history 查看执行过的命令。 该命令仅支持交互模式。 help 查看工具帮助信息。 set 设置服务端属性。 show 显示服务属性和Loader所有元数据信息。 create 创建连接器和作业。 update 更新连接器和作业。 delete 删除连接器和作业。 clone 复制连接器和作业。 start 启动作业。 stop 停止作业。 status 查询作业状态。
  • sqoop1对接MRS服务 下载开源Sqoop,http://www.apache.org/dyn/closer.lua/sqoo:p/1.4.7。 将下载好的sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 包放入MRS集群master节点的/opt/sqoop目录下并解压。 tar zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 进入解压完成的目录,修改配置。 cd /opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf cp sqoop-env-template.sh sqoop-env.sh vi sqoop-env.sh 添加配置: export HADOOP_COMMON_HOME=/opt/client/HDFS/hadoop export HADOOP_MAPRED_HOME=/opt/client/HDFS/hadoop export HIVE_HOME=/opt/Bigdata/MRS_1.9.X/install/FusionInsight-Hive-3.1.0/hive(请按照实际路径填写) export HIVE_CONF_DIR=/opt/client/Hive/config export HCAT_HOME=/opt/client/Hive/HCatalog 添加系统变量,将“SQOOP_HOME”添加到PATH中。 vi /etc/profile 添加以下信息: export SQOOP_HOME=/opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0 export PATH=$PATH:$SQOOP_HOME/bin 执行以下命令复制jline-2.12.jar文件到lib文件下。 cp /opt/share/jline-2.12/jline-2.12.jar /opt/sqoop/sqoop-1.4.7.bin__hadoop-2.6.0/lib 执行以下命令,在文件中添加下列配置。 vim $JAVA_HOME/jre/lib/security/java.policy permission javax.management.MBeanTrustPermission "register"; 执行以下命令,实现sqoop1对接MRS服务。 source /etc/profile
  • create命令扩展属性 针对HDFS与SFTP服务器或RDB进行数据交换场景,MRS在开源sqoop-shell工具的基础上对create命令属性进行扩展,以达到在创建作业时指定行、列分隔符及转换步骤的目的。 表2 create命令扩展属性 属性 说明 fields-terminated-by 默认的列分割符。 lines-terminated-by 默认的行分割符。 input-fields-terminated-by 输入步骤的列分割符,当不指定时,默认等于fields-terminated-by的值。 input-lines-terminated-by 输入步骤的行分割符,当不指定时,默认等于lines-terminated-by的值。 output-fields-terminated-by 输出步骤的列分割符,当不指定时,默认等于fields-terminated-by的值。 output-lines-terminated-by 输出步骤的行分割符,当不指定时,默认等于lines-terminated-by的值。 trans 指定转换步骤,值为转换步骤文件所在的路径。当指定文件的相对路径时,默认为“sqoop2-shell”脚本所在路径下的文件。当配置了该属性,其他扩展属性都被忽略。