云服务器内容精选

  • 操作步骤 以Hive客户端安装用户登录源端集群安装客户端的节点。 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,请用户根据实际情况修改。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群开启了Kerberos认证,执行以下命令认证用户,否则跳过此步骤。 kinit Hive业务用户 执行以下命令登录源端集群的Hive客户端。 beeline 执行以下命令创建表“export_test”。 create table export_test(id int) ; 执行以下命令向表“export_test”中插入数据。 insert into export_test values(123); 在目标集群重复执行1-4,并执行以下命令创建存放表“export_test”导出后的HDFS路径。 dfs -mkdir /tmp/export 执行以下命令登录目标集群的Hive客户端。 beeline 导入导出表“export_test”。 使用Hive Import/Export对表数据迁移时,支持以下几种场景,可以根据实际情况选择合适的导入导出方式。 场景一:简单导出导入 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“export_test”中。 import from '/tmp/export'; 场景二 :在导入时重命名表 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”中。 import table import_test from '/tmp/export'; 场景三:导出分区数据并导入 在源端集群执行以下命令将表“export_test”的pt1和pt2分区导出到8创建的目录下。 export table export_test partition (pt1="in", pt2="ka") to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“export_test”中。 import from '/tmp/export'; 场景四:导出表数据并且将该数据导入到分区中 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”的pt1和pt2分区中。 import table import_test partition (pt1="us", pt2="tn") from '/tmp/export'; 场景五:导入表数据时指定表的Location 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到表“import_test”中,且该表的Location为“/tmp/export”。 import table import_test from '/tmp' location '/tmp/export'; 场景六:导入表数据为外部表 在源端集群执行以下命令将表“export_test”的元数据和业务数据导出到8创建的目录下。 export table export_test to 'hdfs://haclusterX/tmp/export'; 在目标集群执行以下命令将10.a导出的表数据导入到外部表“import_test”中。 import external table import_test from '/tmp/export'; 导出表/分区数据时,存放表/分区数据的HDFS路径需提前创建,且该目录为空,否则导出失败。 导出分区时,导出的表必须为分区表,且不支持导出同一个分区字段的多个分区值的数据;导入到表中分区时导入的表必须是分区表。 导入数据时需注意: 使用import from '/tmp/export';命令导入表是没有指定表名的场景,该场景导入的数据会保存到与源表名相同的表路径下,需注意以下两点: 如果目标集群上不存在与源集群上同名的表,在导入表的过程中会创建该表。 如果目标集群上已存在与源集群上同名的表,该表对应的HDFS目录下必须为空,否则导入失败。 使用import external table import_test from '/tmp/export';命令导入表会将导出的表导入到指定的表中,需注意以下两点: 如果目标集群上不存在与指定的表名相同的表,在导入表的过程中会创建该表。 如果目标集群上已存在与指定的表名相同的表,该表对应的HDFS目录下必须为空,否则导入失败。 “haclusterX”为新增的自定义参数“dfs.namenode.rpc-address.haclusterX”中的“haclusterX”
  • 操作场景 在大数据应用场景中,往往存在将Hive中的数据表迁移到另一个集群上,使用Hive的导入导出命令可以实现表级别数据迁移,即可使用Export命令将源集群的Hive表导出到目标集群的HDFS中,再在目标集群使用Import命令将导出的数据导入到相应的Hive表中。 本章节内容适用于MRS 3.2.0及之后版本。 Hive表导入导出功能目前不支持对加密表、HBase外部表、Hudi表、视图表、物化视图表进行导入导出操作。
  • 操作步骤 以Hive客户端安装用户登录源端集群安装客户端的节点。 执行以下命令,切换到客户端安装目录,例如安装目录为“/opt/client”,请用户根据实际情况修改。 cd /opt/client 执行以下命令配置环境变量。 source bigdata_env 如果集群开启了Kerberos认证,执行以下命令认证用户,否则跳过此步骤。 kinit Hive业务用户 执行以下命令登录Hive客户端。 beeline 执行以下命令创建数据库“dump_db”。 create database dump_db; 执行以下命令切换到“dump_db”数据库。 use dump_db; 执行以下命令在“dump_db”中创建表“test”。 create table test(id int); 执行以下命令向表“test”中插入数据。 insert into test values(123); 执行以下命令将数据库“dump_db”设置为复制策略的源。 alter database dump_db set dbproperties ('repl.source.for'='replpolicy1'); 执行alter命令修改数据库属性时,用户需要对该数据库拥有对应权限。权限设置方式如下: 集群未启用Ranger鉴权,需登录FusionInsight Manager授予该用户所属角色管理员权限,详细操作请参考创建Hive角色章节。 集群启用了Ranger鉴权,需参考添加Hive的Ranger访问权限策略章节授予用户对应数据库的Repl Dump/Load操作权限。 删除设置了复制策略源的数据库时,需要先将该数据库的复制策略源设置为空,再对数据库执行删除操作,否则无法删除。将数据库复制策略源设置为空的命令如下: alter database dump_db set dbproperties ('repl.source.for'=''); 执行以下命令将“dump_db”导出到目标集群的“/user/hive/test”目录下。 repl dump dump_db with ('hive.repl.rootdir'='hdfs://haclusterX/user/hive/test'); “haclusterX”为新增的自定义参数“dfs.namenode.rpc-address.haclusterX”中的“haclusterX”。 指定导出目录时需要确保当前用户对该目录拥有读写权限。 以Hive客户端安装用户登录目标集群安装客户端的节点,并执行2-5。 执行以下命令将“/user/hive/test”目录下的“dump_db”数据库的数据导入到“load_db”数据库中。 repl load load_db from '/user/hive/repl'; 通过repl load导入数据库,指定数据库名称时需要注意以下情况: 指定的数据库不存在,在导入的过程中会创建对应的数据库; 指定的数据库已存在,且该数据库的“hive.repl.ckpt.key”属性值与导入的路径一致,则跳过导入操作。 指定的数据库已存在,但是该数据库下不存在任何表和functions,导入的过程中只将源数据库下的表导入到当前数据库中;如果该数据库下存在表或functions会导入失败。