自建Hive数据仓库跨版本迁移到阿里云E-MapReduce

简介: 客户在IDC或者公有云环境自建Hadoop集群,数据集中保存在HDFS文件系统,同时借助Hive进行ETL任务。客户在决策上云之后,会将自建Hadoop集群的数据迁移到阿里云E-MapReduce集群。

最佳实践概述

应用场景

客户在IDC或者公有云环境自建Hadoop集群,数据集中保存在HDFS文件系统,同时借助Hive进行常见的ETL任务。客户在决策上云之后,会将自建Hadoop集群的数据迁移到阿里云自建Hadoop或者EMR。

技术架构

本实践方案基于如下图所示的技术架构和主要流程编写操作步骤。
image.png

方案优势

  • 易用性
    您可以简单选择所需ECS机型(CPU、内存)与磁盘,并选择所需的软件,进行自动化部署。
  • 经济性
    您可以按需创建集群,即离线作业运行结束就可以释放集群,还可以在需要时动态地增加节点。
  • 深度整合
    E-MapReduce与阿里云其它产品(例如,OSS、MNS、RDS 和 MaxCompute 等)进行了深度整合,支持以这些产品作为Hadoop/Spark计算引擎的输入源或者输出目的地。
  • 安全
    E-MapReduce整合了阿里云RAM资源权限管理系统,通过主子账号对服务权限进行隔离。
  • 可靠性
    使用阿里云数据库RDS保存Hive的元数据信息,可以提升数据可靠性和服务可用性,免除客户运维自建MySQL数据库的工作。

前置条件

在进行本文操作之前,您需要完成以下准备工作:

  • 注册阿里云账号,并完成实名认证。您可以登录阿里云控制台,并前往实名认证页面查看是否已经完成实名认证。
  • 阿里云账户余额大于100元。您可以登录阿里云控制台,并前往账户总览页面查看账户余额。
  • 拥有已经通过备案的域名。
  • 开通ECS、OSS、EMR、RDS、DTS和VPN网关等服务。

资源规划说明

  • 本方案仅作为实践演练使用,在生产环境中执行时请结合业务系统实际架构进行
    调整。
  • 本方案购买的所有云产品规格均为演示需要,请根据实际业务需求购买对应规格
    的产品和服务。
  • 本方案重在展示迁移思路和方法,线下IDC的模拟环境以组件配置呈现。

1. 基础环境搭建

本实践方案中,将按照技术架构图搭建相对完整的实践环境,包括Apache日志发生
器、Kafka队列、Hadoop集群、Hive+MySQL元数据库。
image.png

1.1. 搭建Hadoop + Kafka + 日志发生器环境

请参考《自建Hadoop数据迁移到阿里云EMR》最佳实践
第1章:1. 自建Hadoop集群环境搭建,完成本实践方案的基础环境搭建。

1.2. 创建Hive元数据库

本实践方案将在ECS上安装MySQL数据库,用于保存Hive元数据信息。
步骤1 登录云服务器控制台,地域:华东2(上海)。
步骤2 在实例列表页面,单击右上角的创建实例。
image.png
步骤3自定义购买模式下,完成各项配置。
基础配置:

  • 付费模式:本实践方案选用抢占式实例。
    说明:在方案演示过程中,我们选用抢占式实例来降低您的成本;在实际商用环境中,请选择适合业务场景的ECS实例付费模式。抢占式实例的具体信息
  • 地域及可用区:华东2(上海) 可用区F
    image.png
  • 实例
    ᅳ 实例规格:ecs.g6.large(2 vCPU 8 GiB,通用型g6)

ᅳ 单台实例规格上限价:创建抢占式实例,必须设置单台实例规格的价格上限。

a) 选择设置单台上限价。
b) 单击查看历史价格。
c) 在抢占式实例历史价格走势图中,可以看到华东2可用区F的实例当前市场价格为0.034 ¥/实例/小时,因此,我们设置单台上限价为0.04 ¥/实例/小时,要求略高于当前市场价格。使用者在进行实际操作时,请以界面显示的实时价格为准。

  • 购买实例数量:1台
    image.png

image.png
image.png

  • 镜像:

a) 选择镜像市场。
b) 单击从镜像市场获取更多选择(含操作系统)。
c) 输入magento,并单击搜索。
d) 选择Magento开源电子商务系统(LAMP | 含演示数据),并单击使用,该镜像中包含了MySQL数据库,root用户的默认密码为123456
image.png
image.png
image.png

  • 存储:系统盘
    高效云盘 80GiB

image.png

步骤4 配置完成,单击下一步:网络和安全组。
步骤5 在网络和安全组页面,参考下表,配置相关参数。

image.png

配置完成,单击下一步:系统配置。

image.png
步骤6 在系统配置页面,参考下表,配置相关参数。

image.png
image.png
配置完成,单击确认订单。

image.png

步骤7 在确认订单页面,确认各项参数信息。确认无误,阅读、同意并勾选《云服务器ECS服务条款》和《镜像商品使用条款》,并单击创建实例。
image.png

步骤8 创建任务提交成功后,单击管理控制台前往ECS实例列表页面查看详情。

至此,本实践方案中用于模拟客户自建Hadoop系统的ECS已经全部搭建完成,如下图所示: image.png

步骤9 通过如下网址登录到MySQL控制台:
http://mysql所在ecs的公网ip地址/phpmyadmin
image.png

步骤10 创建账号,该账号用于Hive进行连接。
image.png
image.png
image.png
完成后界面显示如下图所示:
image.png

1.3. 安装并配置Hive

在本实践方案中,采用Hive 1.2.2版本作为源版本。
步骤1 通过SSH登录到hadoop-master节点,执行以下命令下载并解压Hive软件包。

cd ~ 
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hive/hive-1.2.2\ 
/apache-hive-1.2.2-bin.tar.gz 
tar -zxf apache-hive-1.2.2-bin.tar.gz -C /usr/local/

步骤2 配置环境变量。
vim /etc/profile

  1. 在文件末尾添加如下内容,保存并退出。
# Added for Hive 
export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin 
export PATH=$PATH:$HIVE_HOME/bin
  1. 执行以下命令使文件生效。
source /etc/profile
  1. 查看Hive版本号。
hive --version

image.png

步骤3 生成hive-site.xml配置文件。

cd /usr/local/apache-hive-1.2.2-bin/conf 
cp hive-default.xml.template hive-site.xml 
vim hive-site.xml
  1. 搜索javax.jdo.option.ConnectionUserName,将value修改为root。
  2. 搜索javax.jdo.option.ConnectionPassword,将value修改为123456,该密码为章节1.2使用的云市场镜像中数据库root用户的默认密码。
  3. 搜索javax.jdo.option.ConnectionURL,将value修改为
    jdbc:mysql://192.168.100.140:3306/hive122db?createDatabaseIfNotExist=true

说明:

(1) 将红色字体的192.168.100.140替换为您环境中MySQL的VPC IP地址。
(2) hive122db为MySQL中的数据库,用于保存Hive的元数据。

  1. 搜索javax.jdo.option.ConnectionDriverName,将value修改为 com.mysql.jdbc.Driver
  2. 在下图所示的位置添加配置,即作为最靠前的
<property> 
 <name>system:java.io.tmpdir</name> 
    <value>/usr/local/apache-hive-1.2.2-bin/tmp</value> 
  </property> 
  <property> 
    <name>system:user.name</name> 
    <value>root</value> 
  </property>

image.png

步骤4 生成并配置hive-env.sh启动文件。

cd /usr/local/apache-hive-1.2.2-bin/conf 
cp hive-env.sh.template hive-env.sh 
vim hive-env.sh

在文件末尾添加如下内容,保存后退出:

export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-1.2.2-bin/lib

步骤5 下载MySQL驱动程序。

cd /usr/local/apache-hive-1.2.2-bin/lib
  • 通过下面命令下载MySQL Connector库文件
wget 
https://maven.aliyun.com/repository/central/mysql/\ 
mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar

步骤6 初始化源数据库。

cd /usr/local/apache-hive-1.2.2-bin/bin 
./schematool -dbType mysql -initSchema -verbose

当界面出现下图所示信息时表示初始化完成。
image.png

步骤7 启动Hive进入HQL命令行交互界面。
hive
image.png
说明:在hive命令行界面,使用quit退出。


因篇幅原因,余下内容请点击原文链接阅读


阿里巴巴开源大数据技术团队成立Apache Spark中国技术社区,定期推送精彩案例,技术专家直播,问答区数个Spark技术同学每日在线答疑,只为营造纯粹的Spark氛围,欢迎钉钉扫码加入!image.png

相关实践学习
数据湖构建DLF快速入门
本教程通过使⽤数据湖构建DLF产品对于淘宝用户行为样例数据的分析,介绍数据湖构建DLF产品的数据发现和数据探索功能。
快速掌握阿里云 E-MapReduce
E-MapReduce 是构建于阿里云 ECS 弹性虚拟机之上,利用开源大数据生态系统,包括 Hadoop、Spark、HBase,为用户提供集群、作业、数据等管理的一站式大数据处理分析服务。 本课程主要介绍阿里云 E-MapReduce 的使用方法。
相关文章
|
28天前
|
缓存 安全 Java
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
阿里云数据库 SelectDB 内核 Apache Doris 2.0.6 版本正式发布
|
1月前
|
SQL 存储 JSON
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
亲爱的社区小伙伴们,Apache Doris 2.1.0 版本已于 2024 年 3 月 8 日正式发布,新版本开箱盲测性能大幅优化,在复杂查询性能方面提升100%,新增Arrow Flight接口加速数据读取千倍,支持半结构化数据类型与分析函数。异步多表物化视图优化查询并助力仓库分层建模。引入自增列、自动分区等存储优化,提升实时写入效率。Workload Group 资源隔离强化及运行时监控功能升级,保障多负载场景下的稳定性。新版本已经上线,欢迎大家下载使用!
阿里云数据库 SelectDB 内核 Apache Doris 2.1.0 版本发布:开箱盲测性能大幅优化,复杂查询性能提升 100%
|
2月前
|
存储 容灾 安全
在阿里云RDS(Relational Database Service)迁移前准备目标区域选择
在阿里云RDS(Relational Database Service)迁移前准备目标区域选择
23 3
|
2月前
|
存储 监控 安全
阿里云网盘与相册问题之如何开通历史版本
阿里云网盘与相册是阿里云提供的云存储服务,用户可以安全便捷地存储和管理个人文件、照片等数据;本合集将介绍如何使用阿里云网盘和相册服务,包括文件上传、同步、分享,以及处理常见使用问题的技巧。
35 1
|
2月前
|
存储 安全 网络协议
阿里云网盘与相册问题之服务开通历史版本如何解决
阿里云网盘与相册是阿里云提供的云存储服务,用户可以安全便捷地存储和管理个人文件、照片等数据;本合集将介绍如何使用阿里云网盘和相册服务,包括文件上传、同步、分享,以及处理常见使用问题的技巧。
41 1
|
2月前
|
监控 安全 关系型数据库
在规划阿里云RDS跨区迁移资源和服务可用性
在规划阿里云RDS跨区迁移资源和服务可用性
260 4
|
2月前
|
SQL 运维 关系型数据库
在阿里云RDS(Relational Database Service)进行跨区域迁移
在阿里云RDS(Relational Database Service)进行跨区域迁移
38 2
|
2月前
|
存储 运维 容灾
在规划阿里云RDS(Relational Database Service)跨区迁移
在规划阿里云RDS(Relational Database Service)跨区迁移
38 1
|
3月前
|
SQL 关系型数据库 MySQL
Hive跨集群和版本迁移
Hive跨集群和版本迁移
|
2月前
|
存储 监控 关系型数据库
在规划和准备阿里云RDS(Relational Database Service)跨区域迁移
在规划和准备阿里云RDS(Relational Database Service)跨区域迁移
19 1