Hadoop Hive迁移至MaxCompute

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 本文向您详细介绍如何将 Hadoop Hive 数据迁移到阿里云MaxCompute大数据计算服务上。

本文向您详细介绍如何将 Hadoop Hive 数据迁移到阿里云MaxCompute大数据计算服务上。

一、环境准备

1.1、Hadoop集群环境

在进行 Hadoop Hive 数据迁移前,您需要保证自己的Hadoop集群环境正常。本文使用的Hadoop环境:

  • HDFS 2.8.5
  • YARN 2.8.5
  • Hive 3.1.1
  • Ganglia 3.7.2
  • Spark 2.3.2
  • HUE 4.1.0
  • Zeppelin 0.8.0
  • Tez 0.9.1
  • Sqoop 1.4.7
  • Pig 0.14.0
  • Knox 1.1.0
  • ApacheDS 2.0.0

1.2、Hadoop Hive数据准备

Hive脚本:

CREATE TABLE IF NOT EXISTS hive_sale(
  create_time timestamp,
  category STRING,
  brand STRING,
  buyer_id STRING,
  trans_num BIGINT,
  trans_amount DOUBLE,
  click_cnt BIGINT
)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' lines terminated by '\n';

insert into hive_sale values
('2019-04-14','外套','品牌A','lilei',3,500.6,7),
('2019-04-15','生鲜','品牌B','lilei',1,303,8),
('2019-04-16','外套','品牌C','hanmeimei',2,510,2),
('2019-04-17','卫浴','品牌A','hanmeimei',1,442.5,1),
('2019-04-18','生鲜','品牌D','hanmeimei',2,234,3),
('2019-04-19','外套','品牌B','jimmy',9,2000,7),
('2019-04-20','生鲜','品牌A','jimmy',5,45.1,5),
('2019-04-21','外套','品牌E','jimmy',5,100.2,4),
('2019-04-22','生鲜','品牌G','peiqi',10,5560,7),
('2019-04-23','卫浴','品牌F','peiqi',1,445.6,2),
('2019-04-24','外套','品牌A','ray',3,777,3),
('2019-04-25','卫浴','品牌G','ray',3,122,3),
('2019-04-26','外套','品牌C','ray',1,62,7);

登录Hadoop集群,创建Hive SQL脚本,执行Hive命令完成脚本初始化:

hive -f hive_data.sql

image

查询Table:

hive -e 'show tables';
hive -e 'select * from hive_sale';

image

1.3、MaxCompute环境

开通MaxCompute,请参考:https://help.aliyun.com/document_detail/58226.html

1.4、MaxCompute Create Table

CREATE TABLE IF NOT EXISTS maxcompute_sale(
  create_time STRING,
  category STRING,
  brand STRING,
  buyer_id STRING,
  trans_num BIGINT,
  trans_amount DOUBLE,
  click_cnt BIGINT
);

image

在建表过程中,需要考虑到Hive数据类型 与 MaxCompute数据类型的映射,可参考:
https://help.aliyun.com/document_detail/54081.html

**上述通过odpscmd命令行工具完成。

注意:MaxCompute2.0支持的数据类型,包括基本数据类型和复杂类型,详见:
https://help.aliyun.com/document_detail/27821.html

二、Hive迁移MaxCompute操作

2.1、通过Tunnel文件上传

2.1.1、生成Hive数据文件

进入Hive,执行SQL语句,下面我们将导出到本地的数据按行以逗号进行分隔:

insert overwrite local directory  '/home/sixiang/' row format delimited fields terminated by ',' select * from hive_sale;

image

查看数据文件:

image

2.1.2、执行Tunnel命令完成文件上传

进入MaxCompute控制台,执行Tunnel upload命令完成数据上传:

tunnel upload /home/sixiang/000000_0 daniel.maxcompute_sale;

image

2.2、通过DataWorks-数据集成上传

2.2.1、新建自定义资源组

MaxCompute所处的网络环境与Hadoop集群中的DataNode网络通常不可达,可通过自定义资源组的方式,将DataWorks同步任务运行在Hadoop集群的Master节点上(Hadoop集群内Master和DataNode网络可通)

查看Hadoop集群DataNode:执行hadoop dfsadmin –report 命令查看

image

上图可以看到,DataNode为内网地址,很难与DataWorks默认资源组互通,所以需要设置自定义资源组,将Master Node设置为执行DataWorks数据同步任务的节点。

进入DataWorks数据集成页面,选择资源组,点击新增资源组,如下图所示:

image

在添加服务器步骤中,需要输入机器的UUID和IP等信息,机器IP需填写MasterNode公网IP(内网IP可能不通)。

机器的UUID需要进入MasterNode管理终端,通过命令dmidecode | grep UUID获取,如下所示:

image

完成添加服务器后,需保证Master Node与DataWorks网络可联通;按照提示安装自定义资源组agent,观察当前状态为可用,说明新增自定义资源组成功。

image

2.2.3、新建数据源

DataWorks新建项目后,默认设置自己为数据源odps_first;因此我们只需添加Hadoop集群数据源,在DataWorks数据集成页面,点击数据源 > 新增数据源,在弹框中选择HDFS类型的数据源。

image

在弹出窗口中,填写“数据源名称”、“DefaultFS”

如果Hadoop集群为HA集群,则此处地址为hdfs://IP:8020,如果Hadoop集群为非HA集群,则此处地址为hdfs://IP:9000。在本文中,Hadoop机器与DataWorks通过公网连接,因此此处填写公网IP。

image

完成配置后,点击测试连通性,如果提示“测试连通性成功”,则说明数据源添加成功。

2.2.4、配置数据同步任务

在DataWorks“数据开发”页面,选择新建数据集成节点-数据同步,在导入模板弹窗选择数据源类型如下:

image

具体脚本如下:

{
    "configuration": {
        "reader": {
            "plugin": "hdfs",
            "parameter": {
                "path": "/user/hive/warehouse/hive_sale/",
                "datasource": "hadoop_to_odps",
                "column": [
                    {
                        "index": 0,
                        "type": "string"
                    },
                    {
                        "index": 1,
                        "type": "string"
                    },
                    {
                        "index": 2,
                        "type": "string"
                    },
                    {
                        "index": 3,
                        "type": "string"
                    },
                    {
                        "index": 4,
                        "type": "long"
                    },
                    {
                        "index": 5,
                        "type": "double"
                    },
                    {
                        "index": 6,
                        "type": "long"
                    }
                ],
                "defaultFS": "hdfs://xxx.xxx.xxx.xxx:9000",
                "fieldDelimiter": ",",
                "encoding": "UTF-8",
                "fileType": "text"
            }
        },
        "writer": {
            "plugin": "odps",
            "parameter": {
                "partition": "",
                "truncate": false,
                "datasource": "odps_first",
                "column": [
                    "create_time",
                    "category",
                    "brand",
                    "buyer_id",
                    "trans_num",
                    "trans_amount",
                    "click_cnt"
                ],
                "table": "maxcompute_sale"
            }
        },
        "setting": {
            "errorLimit": {
                "record": "1000"
            },
            "speed": {
                "throttle": false,
                "concurrent": 1,
                "mbps": "1",
                "dmu": 1
            }
        }
    },
    "type": "job",
    "version": "1.0"
}

其中,path参数为数据在Hadoop集群中存放的位置,您可以在登录Master Node后,使用
hdfs dfs –ls /user/hive/warehouse/hive_sale 命令确认。

完成配置后,点击运行。如果提示任务运行成功,则说明同步任务已完成。

image

2.2.5、验证结果

在DataWorks数据开发/临时查询,执行select * FROM hive_sale 验证结果,如下图所示:

image

当然,也可以通过在odpscmd命令行工具中SQL查询表结果:

image

目录
相关文章
|
2月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
177 6
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
71 2
|
1月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
94 2
|
1月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
65 1
|
2月前
|
算法 大数据 数据库
云计算与大数据平台的数据库迁移与同步
本文详细介绍了云计算与大数据平台的数据库迁移与同步的核心概念、算法原理、具体操作步骤、数学模型公式、代码实例及未来发展趋势与挑战。涵盖全量与增量迁移、一致性与异步复制等内容,旨在帮助读者全面了解并应对相关技术挑战。
44 3
|
2月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
66 1
|
2月前
|
SQL 分布式计算 Hadoop
手把手的教你搭建hadoop、hive
手把手的教你搭建hadoop、hive
129 1
|
2月前
|
SQL 分布式计算 大数据
大数据平台的毕业设计01:Hadoop与离线分析
大数据平台的毕业设计01:Hadoop与离线分析
126 0
|
2月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
47 0
|
2月前
|
SQL 关系型数据库 MySQL
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
Hadoop-25 Sqoop迁移 增量数据导入 CDC 变化数据捕获 差量同步数据 触发器 快照 日志
43 0

相关产品

  • 云原生大数据计算服务 MaxCompute