云服务器内容精选

  • 任务实例 不更新作业参数,直接运行名称为“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
  • 操作步骤 在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”这个模式的文件都将被作业处理。
  • 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”脚本所在路径下的文件。当配置了该属性,其他扩展属性都被忽略。
  • 概述 本章节适用于MRS 3.x及后续版本。 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 查询作业状态。