华为云用户手册

  • spark-defaults.conf相关参数 登录客户端节点,在“{客户端安装目录}/Spark/spark/conf/spark-defaults.conf”文件中配置表4相关参数。 表4 spark-defaults.conf中的Spark配置参考 参数 默认值 描述 spark.driver.memory 4G 指定用于driver端进程的内存,其中SparkContext已初始化。 说明: 在客户端模式下,不要使用SparkConf在应用程序中设置该参数,因为驱动程序JVM已经启动。要配置该参数,请在--driver-memory命令行选项或默认属性文件中进行配置。 spark.executor.memory 4GB 指定每个执行程序进程使用的内存。 spark.sql.crossJoin.enabled true 如果查询包含交叉连接,请启用此属性,以便不会发生错误,此时使用交叉连接而不是连接,可实现更好的性能。
  • 操作场景 该任务指导用户使用Flume服务端从Kafka的Topic列表(test1)采集日志保存到HDFS上“/flume/test”目录下。 本章节适用于 MRS 3.x及之后版本。 本配置默认集群网络环境是安全的,数据传输过程不需要启用SSL认证。如需使用加密方式,请参考配置Flume加密传输数据采集任务。该配置为只用一个Flume场景,例如:Kafka Source+Memory Channel+HDFS Sink.
  • 操作场景 Spark SQL表中,经常会存在很多小文件(大小远小于HDFS的块大小),每个小文件默认对应Spark中的一个Partition,即一个Task。在有很多小文件时,Spark会启动很多Task,此时当SQL逻辑中存在Shuffle操作时,会大大增加hash分桶数,严重影响系统性能。 针对小文件很多的场景,DataSource在创建RDD时,先将Table中的split生成PartitionedFile,再将这些PartitionedFile进行合并。即将多个PartitionedFile组成一个partition,从而减少partition数量,避免在Shuffle操作时生成过多的hash分桶,如图1所示。 图1 小文件合并
  • 操作步骤 要启动小文件优化,在Spark客户端的“spark-defaults.conf”配置文件中进行设置。 表1 参数介绍 参数 描述 默认值 spark.sql.files.maxPartitionBytes 在读取文件时,将单个分区打包的最大字节数。 单位:byte。 134217728(即128M) spark.files.openCostInBytes 打开文件的预估成本, 按照同一时间能够扫描的字节数来测量。当一个分区写入多个文件时使用。高估更好,这样小文件分区将比大文件分区更先被调度。 4M
  • 操作场景 此功能在MRS 3.x之前版本适用于Hive,Spark。在MRS3.x及后续版本适用于Hive,Spark2x。 开启此功能后,在创建Hive内部表时,不能指定location。即表创建成功之后,表的location路径会被创建在当前默认warehouse目录下,不能被指定到其他目录。如果创建内部表时指定location,则创建失败。 开启本功能之后,创建Hive内部表不能执行location。因为对建表语句做了限制,如果数据库中已存在建表时指向非当前默认warehouse目录的表,在执行建库、表脚本迁移、重建元数据操作时需要特别注意,防止错误。
  • 回答 在执行HBase shell期间,JRuby会在“java.io.tmpdir”路径下创建一个临时文件,该路径的默认值为“/tmp”。如果为“/tmp”目录设置NOEXEC权限,然后HBase shell会启动失败并发生“java.lang.UnsatisfiedLinkError: Permission denied”异常。 因此,如果为“/tmp”目录设置了NOEXEC权限,那么“java.io.tmpdir”必须设置为HBASE_OPTS/CLIENT_GC_OPTS中不同的路径。
  • 回答 “dfs.datanode.data.dir”配置项用于指定数据块在DataNode上的存储目录,在系统安装时需要指定根目录,并且可以指定多个根目录。 请谨慎修改该配置项,可以添加新的数据根目录。 禁止删除原有存储目录,否则会造成数据块丢失,导致文件无法正常读写。 禁止手动删除或修改存储目录下的数据块,否则可能会造成数据块丢失。 NameNode和JournalNode存在类似的配置项,也同样禁止删除原有存储目录,禁止手动删除或修改存储目录下的数据块。 dfs.namenode.edits.dir dfs.namenode.name.dir dfs.journalnode.edits.dir
  • 单表并发控制配置 参数 描述 默认值 hoodie.write.lock.provider 指定lock provider,不建议使用默认值,使用org.apache.hudi.hive.HiveMetastoreBasedLockProvider org.apache.hudi.client.transaction.lock.ZookeeperBasedLockProvider hoodie.write.lock.hivemetastore.database Hive的database 无 hoodie.write.lock.hivemetastore.table Hive的table name 无 hoodie.write.lock.client.num_retries 重试次数 10 hoodie.write.lock.client.wait_time_ms_between_retry 重试间隔 10000 hoodie.write.lock.conflict.resolution.strategy lock provider类,必须是ConflictResolutionStrategy的子类 org.apache.hudi.client.transaction.SimpleConcurrentFileWritesConflictResolutionStrategy hoodie.write.lock.zookeeper.base_path 存放ZNodes的路径,同一张表的并发写入需配置一致 无 hoodie.write.lock.zookeeper.lock_key ZNode的名称,建议与Hudi表名相同 无 hoodie.write.lock.zookeeper.connection_timeout_ms zk连接超时时间 15000 hoodie.write.lock.zookeeper.port zk端口号 无 hoodie.write.lock.zookeeper.url zk的url 无 hoodie.write.lock.zookeeper.session_timeout_ms zk的session过期时间 60000 父主题: Hudi常见配置参数
  • 操作步骤 登录服务页面:单击集群名称,登录集群详情页面,选择“组件管理”。 若集群详情页面没有“组件管理”页签,请先完成 IAM 用户同步(在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步)。 选择“Hue”,在“Hue WebUI”右侧,单击链接,打开Hue的WebUI,以创建的“hueuser”用户登录Hue WebUI。 Hue的WebUI支持以下功能: 使用“Query Editors”执行Hive的查询语句。需要MRS集群已安装Hive。 使用“Data Browsers”管理Hive中的表。需要MRS集群已安装Hive。 使用查看HDFS中的目录和文件。需要MRS集群已安装HDFS。 使用查看MRS集群中所有作业。需要MRS集群已安装YARN。 使用创建的用户第一次登录Hue WebUI,需修改密码。 用户获取Hue WebUI的访问地址后,可以给其他无法访问Manager的用户用于访问Hue WebUI。 在Hue的WebUI操作但不操作Manager页面,重新访问Manager时需要输入已登录的账号密码。
  • 配置场景 在使用集群中,如果需要在多主实例模式与多租户模式之间切换,则还需要进行如下参数的设置。 多租户切换成多主实例模式 修改Spark2x服务的以下参数: spark.thriftserver.proxy.enabled=false spark.scheduler.allocation.file=#{conf_dir}/fairscheduler.xml spark.proxyserver.hash.enabled=false 多主实例切换成多租户模式 修改Spark2x服务的以下参数: spark.thriftserver.proxy.enabled=true spark.scheduler.allocation.file=./__spark_conf__/__hadoop_conf__/fairscheduler.xml spark.proxyserver.hash.enabled=true
  • 配置场景 当Spark开启事件日志模式,即设置“spark.eventLog.enabled”为“true”时,就会往配置的一个日志文件中写事件,记录程序的运行过程。当程序运行很久,job很多,task很多时就会造成日志文件很大,如JD BCS erver、Spark Streaming程序。 而日志回滚功能是指在写事件日志时,将元数据事件(EnviromentUpdate,BlockManagerAdded,BlockManagerRemoved,UnpersistRDD,ExecutorAdded,ExecutorRemoved,MetricsUpdate,ApplicationStart,ApplicationEnd,LogStart)写入日志文件中,Job事件(StageSubmitted, StageCompleted, TaskResubmit, TaskStart,TaskEnd, TaskGettingResult, JobStart,JobEnd)按文件的大小进行决定是否写入新的日志文件。对于Spark SQL的应用,Job事件还包含ExecutionStart、ExecutionEnd。 Spark中有个HistoryServer服务,其UI页面就是通过读取解析这些日志文件获得的。在启动HistoryServer进程时,内存大小就已经定了。因此当日志文件很大时,加载解析这些文件就可能会造成内存不足,driver gc等问题。 所以为了在小内存模式下能加载较大日志文件,需要对大应用开启日志滚动功能。一般情况下,长时间运行的应用建议打开该功能。
  • 管理Hive表 访问“Metastore Manager”,在“Databases”选择一个数据库,页面显示数据库中所有的表。 默认数据库为“default”。 单击数据库中的表名称,打开表的详细信息。 支持导入数据、浏览数据或查看文件存储位置。查看数据库所有的表时,可以直接勾选表然后执行查看、浏览数据操作。 Hue界面主要用于文件、表等数据的查看与分析,禁止通过Hue界面对操作对象进行删除等高危管理操作。如需操作,建议在确认对业务没有影响后通过各组件的相应操作方法进行处理,例如使用HDFS客户端对HDFS文件进行操作,使用Hive客户端对Hive表进行操作。
  • 使用文件创建一个Hive表 访问“Metastore Manager”,在“Databases”选择一个数据库。 默认数据库为“default”。 单击,进入“Create a new table from a file”页面。 选择文件。 在“Table Name”填写Hive表的名称。 支持字母、数字、下划线,首位必须为字母或数字,且长度不能超过128位。 根据需要,在“Description”填写Hive表的描述信息。 在“Input File or Location”单击,在HDFS中选择一个用于创建Hive表文件。此文件将存储Hive表的新数据。 如果文件未在HDFS中保存,可以单击“Upload a file”从本地选择文件并上传。支持同时上传多个文件,文件不可为空。 如果需要将文件中的数据导入Hive表,选择“Import data”作为“Load method”。默认选择“Import data”。 选择“Create External Table”时,创建的是Hive外部表。 当选择“Create External Table”时,参数“Input File or Location”需要选择为路径。 选择“Leave Empty”则创建空的Hive表。 单击“Next”。 设置分隔符。 在“Delimiter”选择一个分隔符。 如果分隔符不在列表中,选择“Other..”,然后输入新定义的分隔符。 单击“Preview”查看数据处理预览。 单击“Next”。 定义字段列。 单击“Use first row as column names”右侧的,则使用文件中第一行数据作为列名称。取消则不使用数据作为列名称。 在“Column name”编辑每个列的名称。 支持字母、数字、下划线,首位必须为字母或数字,且长度不能超过128位。 单击“Bulk edit column names”右侧的,可批量对列重新命名。输入所有列的名称并使用逗号分隔。 在“Column Type”选择每个列的类型。 单击“Create Table”创建表,等待Hue显示Hive表的信息。
  • 手工创建一个Hive表 访问“Metastore Manager”,在“Databases”选择一个数据库。 默认数据库为“default”。 单击,进入“Create a new table manually”页面。 设置表名称。 在“Table Name”填写Hive表的名称。 支持字母、数字、下划线,首位必须为字母或数字,且长度不能超过128位。 根据需要,在“Description”填写Hive表的描述信息。 单击“Next”。 选择一个存储数据的格式。 需要使用分隔符分隔数据时,选择“Delimited”,然后执行5。 需要使用序列化格式保存数据时,选择“SerDe”,执行6。 配置分隔符。 在“Field terminator”设置一个列分隔符。 如果分隔符不在列表中,选择“Other..”,然后输入新定义的分隔符。 在“Collection terminator”设置一个分隔符,用于分隔Hive中类型为“array”的列的数据集合。例如一个列为array类型,其中一个值需要保存“employee”和“manager”,用户指定分隔符为“:”,则最终的值为“employee:manager”。 在“Map key terminator”设置一个分隔符,用于分隔Hive中类型为“map”的列的数据。例如某个列为map类型,其中一个值需要保存描述为“aaa”的“home”,和描述为“bbb”的“company”,用户指定分隔符为“|”,则最终的值为“home|aaa:company|bbb”。 单击“Next”,执行7。 设置序列化属性。 在“SerDe Name”输入序列化格式的类名称“org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe”。 用户可扩展Hive支持更多自定义的序列化类。 在“Serde properties”输入序列化的样式的值:“"field.delim"="," "colelction.delim"=":" "mapkey.delim"="|"”。 单击“Next”,执行7。 选择一个数据表的格式,并单击“Next”。 “TextFile”表示使用文本类型文件存储数据。 “SequenceFile”表示使用二进制类型文件存储数据。 “InputFormat”表示使用自定义的输入输出格式来使用文件中的数据。 用户可扩展Hive支持更多的自定义格式化类。 在“InputFormat Class”填写输入数据使用的类“org.apache.hadoop.hive.ql.io.RCFileInputFormat”。 在“OutputFormat Class”填写输出数据使用的类“org.apache.hadoop.hive.ql.io.RCFileOutputFormat”。 选择一个文件保存位置,并单击“Next”。 默认勾选“Use default location”。如果需要自定义存储位置,请取消选中状态并在“External location”单击指定一个文件存储位置。 设置Hive表的字段。 在“Column name”设置列的名称。 支持字母、数字、下划线,首位必须为字母或数字,且长度不能超过128位。 在“Column type”选择一个数据类型。 单击“Add a column”可增加新的列。 单击“Add a partition”为Hive表增加分区,可提高查询效率。 单击“Create Table”创建表,等待Hue显示Hive表的信息。
  • 操作步骤 在Manager界面Hive组件的配置中搜索“hive.cbo.enable”参数,选中“true”永久开启功能。 手动收集Hive表已有数据的统计信息。 执行以下命令,可以手动收集统计信息。仅支持统计一张表,如果需要统计不同的表需重复执行。 ANALYZE TABLE [db_name.]tablename [PARTITION(partcol1[=val1], partcol2[=val2], ...)] COMPUTE STATIS TICS [FOR COLUMNS] [NOSCAN]; 指定FOR COLUMNS时,收集列级别的统计信息。 指定NOSCAN时,将只统计文件大小和个数,不扫描具体文件。 例如: analyze table table_name compute statistics; analyze table table_name compute statistics for columns; 配置Hive自动收集统计信息。开启配置后,执行insert overwrite/into命令插入数据时才自动统计新数据的信息。 在Hive客户端执行以下命令临时开启收集: set hive.stats.autogather = true;开启表/分区级别的统计信息自动收集。 set hive.stats.column.autogather = true; 开启列级别的统计信息自动收集。 列级别统计信息的收集不支持复杂的数据类型,例如Map,Struct等。 表级别统计信息的自动收集不支持Hive on HBase表。 在Manager界面Hive的服务配置中,搜索参数“hive.stats.autogather”和“hive.stats.column.autogather”,选中“true”永久开启收集功能。 执行以下命令可以查看统计信息。 DESCRIBE FORMATTED table_name[.column_name] PARTITION partition_spec; 例如: desc formatted table_name; desc formatted table_name id; desc formatted table_name partition(time='2016-05-27'); 分区表仅支持分区级别的统计信息收集,因此分区表需要指定分区来查询统计信息。
  • 操作场景 在Hive中执行多表Join时,Hive支持开启CBO(Cost Based Optimization),系统会自动根据表的统计信息,例如数据量、文件数等,选出合适计划提高多表Join的效率。Hive需要先收集表的统计信息后才能使CBO正确的优化。 CBO优化器会基于统计信息和查询条件,尽可能地使join顺序达到合适。但是也可能存在特殊情况导致join顺序调整不准确。例如数据存在倾斜,以及查询条件值在表中不存在等场景,可能调整出非优化的join顺序。 开启列统计信息自动收集时,需要在reduce侧做聚合统计。对于没有reduce阶段的insert任务,将会多出reduce阶段,用于收集统计信息。 本章节适用于MRS 3.x及后续版本。
  • 配置HDFS文件和目录的权限 HDFS支持用户进行文件和目录默认权限的修改。HDFS默认用户创建文件和目录的权限的掩码为“022”,如果默认权限满足不了用户的需求,可以通过配置项进行默认权限的修改。 参数入口: 请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。 表1 参数说明 参数 描述 默认值 fs.permissions.umask-mode 当客户端在HDFS上创建文件和目录时使用此umask值(用户掩码)。类似于linux上的文件权限掩码。 可以使用八进制数字也可以使用符号,例如:“022” (八进制,等同于以符号表示的u=rwx,g=r-x,o=r-x),或者“u=rwx,g=rwx,o=”(符号法,等同于八进制的“007”)。 说明: 8进制的掩码,和实际权限设置值正好相反,建议使用符号表示法,描述更清晰。 022
  • 操作步骤 创建工作流,请参考使用Hue创建工作流。 在工作流编辑页面,选择“MapReduce 作业”按钮,将其拖到操作区中。 在弹出的“MapReduce job”窗口中配置“Jar name”的值,例如“/user/admin/examples/apps/map-reduce/lib/oozie-examples-5.1.0.jar”。然后单击“添加”。 单击“属性+”,添加输入输出相关属性。 例如配置“mapred.input.dir”的值为“/user/admin/examples/input-data/text”,配置“mapred.output.dir”的值为“/user/admin/examples/output-data/map-reduce_workflow”。 单击右上角的配置按钮。在打开的配置界面中,单击“删除+”,添加删除目录,例如“/user/admin/examples/output-data/map-reduce_workflow”。 单击Oozie编辑器右上角的。 保存前如果需要修改作业名称(默认为“My Workflow”),可以直接单击该名称进行修改,例如“MapReduce-Workflow”。 保存完成后,单击,提交该作业。 作业提交后,可通过Hue界面查看作业的详细信息、日志、进度等相关内容。
  • 前提条件 主备集群已经安装并且启动。 主备集群上的时间必须一致,而且主备集群上的NTP服务必须使用同一个时间源。 当主集群HBase服务关闭时,ZooKeeper和HDFS服务应该启动并运行。 该工具应该由启动HBase进程的系统用户运行。 如果处于安全模式,请确保备用集群的HBase系统用户具有主集群HDFS的读取权限。因为它将更新HBase系统ZooKeeper节点和HDFS文件。 主集群HBase故障后,主集群的ZooKeeper,文件系统和网络依然可用。
  • 注意事项 当主集群关闭时,此工具将从ZooKeeper节点(RS znode)获得WAL的处理进度以及WAL的处理队列,并将未复制的队列复制到备集群中。 每个主集群的RegionServer在备集群ZooKeeper上的replication节点下都有自己的znode。它包含每个对等集群的一个znode。 当RegionServer故障时,主集群的每个RegionServer都会通过watcher收到通知,并尝试锁定故障RegionServer的znode,包含它的队列。成功创建的RegionServer会将所有队列转移到自己队列的znode下。队列传输后,它们将从旧位置删除。 在主集群关闭期间,ReplicationSyncUp工具将使用来自ZooKeeper节点的信息同步主备集群的数据,并且RegionServer znode的wals将被移动到备集群下。
  • 工具使用 在主集群hbase shell中输入如下命令使用: hbase org.apache.hadoop.hbase.replication.regionserver.ReplicationSyncUp -Dreplication.sleep.before.failover=1 replication.sleep.before.failover是指在RegionServer启动失败时备份其剩余数据前需要的休眠时间。由于30秒(默认值)的睡眠时间没有任何意义,因此将其设置为1(s),使备份过程更快触发。
  • 同步Hive表配置 参数 描述 默认值 hoodie.datasource.hive_sync.enable 是否同步hudi表信息到hive metastore。 注意: 建议该值设置为true,统一使用hive管理hudi表。 false hoodie.datasource.hive_sync.database 要同步给hive的数据库名。 default hoodie.datasource.hive_sync.table 要同步给hive的表名,建议这个值和hoodie.datasource.write.table.name保证一致。 unknown hoodie.datasource.hive_sync.username 同步hive时,指定的用户名。 hive hoodie.datasource.hive_sync.password 同步hive时,指定的密码。 hive hoodie.datasource.hive_sync.jdbcurl 连接hive jdbc指定的连接。 "" hoodie.datasource.hive_sync.use_jdbc 是否使用hive jdbc方式连接hive同步hudi表信息。建议该值设置为false,设置为false后 jdbc连接相关配置无效。 true hoodie.datasource.hive_sync.partition_fields 用于决定hive分区列。 "" hoodie.datasource.hive_sync.partition_extractor_class 用于提取hudi分区列值,将其转换成hive分区列。 org.apache.hudi.hive.SlashEncodedDayPartitionValueExtractor hoodie.datasource.hive_sync.support_timestamp 当hudi表存在timestamp类型字段时,需指定此参数为true,以实现同步timestamp类型到hive元数据中。该值默认为false,默认将timestamp类型同步为bigInt,默认情况可能导致使用sql查询包含timestamp类型字段的hudi表出现错误。 true 父主题: Hudi常见配置参数
  • 操作步骤 在动态分区语句中加入distribute by,by值为分区字段。 示例如下: insert into table store_returns partition (sr_returned_date_sk) select sr_return_time_sk,sr_item_sk,sr_customer_sk,sr_cdemo_sk,sr_hdemo_sk,sr_addr_sk,sr_store_sk,sr_reason_sk,sr_ticket_number,sr_return_quantity,sr_return_amt,sr_return_tax,sr_return_amt_inc_tax,sr_fee,sr_return_ship_cost,sr_refunded_cash,sr_reversed_charge,sr_store_credit,sr_net_loss,sr_returned_date_sk from ${SOURCE}.store_returns distribute by sr_returned_date_sk;
  • 操作场景 SparkSQL在往动态分区表中插入数据时,分区数越多,单个Task生成的HDFS文件越多,则元数据占用的内存也越多。这就导致程序GC(Gabage Collection)严重,甚至发生OOM(Out of Memory)。 经测试证明:10240个Task,2000个分区,在执行HDFS文件从临时目录rename到目标目录动作前,FileStatus元数据大小约29G。为避免以上问题,可修改SQL语句对数据进行重分区,以减少HDFS文件个数。
  • 回答 转义字符以反斜线"\"开头,后跟一个或几个字符。如果输入记录包含类似\t,\b,\n,\r,\f,\',\",\\的转义字符,Java将把转义符'\'和它后面的字符一起处理得到转义后的值。 例如:如果 CS V数据类似“2010\\10,test”,将这两列插入“String,int”类型时,因为“test”无法转换为int类型,表会将这条记录重定向到Bad Records中。但记录到Bad Records中的值为“2010\10”,Java会将原始数据中的“\\”转义为“\”。
  • 操作场景 该任务指导MRS集群管理员在Manager创建并设置SparkSQL的角色。SparkSQL角色可设置Spark管理员权限以及数据表的数据操作权限。 用户使用Hive并创建数据库需要加入hive组,不需要角色授权。用户在Hive和HDFS中对自己创建的数据库或表拥有完整权限,可直接创建表、查询数据、删除数据、插入数据、更新数据以及授权他人访问表与对应HDFS目录与文件。默认创建的数据库或表保存在HDFS目录“/user/hive/warehouse”。 如果当前组件使用了Ranger进行权限控制,须基于Ranger配置相关策略进行权限管理,具体操作可参考添加Spark2x的Ranger访问权限策略。 Spark2x开启或关闭Ranger鉴权后,需要重启Spark2x服务,并重新下载客户端,或刷新客户端配置文件spark/conf/spark-defaults.conf: 开启Ranger鉴权:spark.ranger.plugin.authorization.enable=true 关闭Ranger鉴权:spark.ranger.plugin.authorization.enable=false
  • Sqoop常用命令介绍 表1 Sqoop常用命令介绍 命令 说明 import 数据导入到集群 export 集群数据导出 codegen 获取数据库中某张表数据生成Java并打包jar create-hive-table 创建Hive表 eval 执行sql并查看结果 import-all-tables 导入某个数据库下的所有表到HDFS中 job 生成一个sqoop任务 list-databases 列举数据库名 list-tables 列举表名 merge 将HDFS不同目录下的数据合在一起并存放到指定目录 metastore 启动元数据库,记录sqoop job的元数据 help 打印帮助信息 version 打印版本信息
  • 公用参数介绍 表2 公用参数介绍 分类 参数 说明 连接数据库 --connect 连接关系型数据库的url --connection-manager 指定连接管理类 --driver jdbc 连接驱动包 --help 帮助信息 --password 连接数据库密码 --username 连接数据库的用户名 --verbose 在控制台打印详细信息 import参数 --fields-terminated-by 设定字段分隔符,和Hive表或hdfs文件保持一致 --lines-terminated-by 设定行分隔符,和hive表或hdfs文件保持一致 --mysql-delimiters MySQL默认分隔符设置 export参数 --input-fields-terminated-by 字段分隔符 --input-lines-terminated-by 行分隔符 hive参数 --hive-delims-replacement 用自定义的字符替换数据中的\r\n等字符 --hive-drop-import-delims 在导入数据到hive时,去掉\r\n等字符 --map-column-hive 生成hive表时可以更改字段的数据类型 --hive-partition-key 创建分区 --hive-partition-value 导入数据库指定分区 --hive-home 指定hive安装目录 --hive-import 表示操作是从关系型数据库导入到hive中 --hive-overwrite 覆盖hive已有数据 --create-hive-table 创建Hive表,默认false,如果目标表不存在,则会创建目标表 --hive-table 指定hive表 --table 关系型数据库表名 --columns 指定需要导入的关系型数据表字段 --query 指定查询语句,将查询结果导入 hcatalog参数 --hcatalog-database 指定hive库,使用hcatalog方式导入hive库 --hcatalog-table 指定hive表,使用hcatalog方式导入hive表 其他参数 -m或--num-mappers 后跟数字,表示sqoop任务的分片数 --split-by 按照某一字段进行分片,配合-m --target-dir 指定hdfs临时目录 --null-string string 类型为null时替换字符串 --null-non-string 非string类型为null时替换字符串 --check-column 增量判断的字段 --incremental append或lastmodified 增量导入参数 append:追加,比如对大于last-value指定的值之后的记录进行追加导入。 lastmodified:最后的修改时间,追加last-value指定的日期之后的记录。 --last-value 指定一个值,用于标记增量导入 --input-null-string 替换null字符串,如果没有指定,则字符串null将被使用。 --input-null-non-string 替换非String的null字符串,如果没有指定,则字符串null将被使用。
  • 操作步骤 以客户端安装用户登录安装Oozie客户端的节点。 执行以下命令,获取安装环境信息。其中“/opt/client”为客户端安装路径,该操作的客户端目录只是举例,请根据实际安装目录修改。 source /opt/client/bigdata_env 判断集群认证模式。 安全模式,执行kinit命令进行用户认证。 例如,使用oozieuser用户进行认证。 kinit oozieuser 普通模式,执行4。 执行以下命令,进入样例目录。 cd /opt/client/Oozie/oozie-client-*/examples/apps/spark2x/ 该目录下需关注文件如表1所示。 表1 文件说明 文件名称 描述 job.properties 工作流的参数变量定义文件。 workflow.xml 工作流的规则定制文件。 lib 工作流运行依赖的jar包目录。 执行以下命令,编辑“job.properties”文件。 vi job.properties 修改如下内容: 更改“userName”的参数值为提交任务的人机用户名,例如“userName=oozieuser”。 执行oozie job命令,运行工作流文件。 oozie job -oozie https://oozie角色的主机名:21003/oozie/ -config job.properties -run 命令参数解释如下: -oozie:实际执行任务的Oozie服务器URL。 -config:工作流属性文件。 -run:运行工作流。 执行完工作流文件,显示“job id”表示提交成功,例如“job: 0000021-140222101051722-oozie-omm-W”。登录Oozie管理页面,查看运行情况。 使用oozieuser用户,登录Oozie WebUI页面:https://oozie角色的ip地址:21003/oozie 。 Oozie的WebUI界面中,可在页面表格根据“job id”查看已提交的工作流信息。
  • 前提条件 Spark2x和Oozie组件安装完成且运行正常,客户端安装成功。 如果当前客户端为旧版本,需要重新下载和安装客户端。 已创建或获取访问Oozie服务的人机用户账号及密码。 该用户需要从属于hadoop、supergroup、hive组,同时添加Oozie的角色操作权限。若使用Hive多实例,该用户还需要从属于具体的Hive实例组,如hive3。 用户同时还需要至少有manager_viewer权限的角色。
共100000条