最佳实践概述
应用场景
客户在IDC或者公有云环境自建Hadoop集群,数据集中保存在HDFS文件系统,同时借助Hive进行常见的ETL任务。客户在决策上云之后,会将自建Hadoop集群的数据迁移到阿里云自建Hadoop或者EMR。
技术架构
本实践方案基于如下图所示的技术架构和主要流程编写操作步骤。
![277e8f52801bc1afc6c0fde05a6d2c0f.png](https://i-blog.csdnimg.cn/blog_migrate/3ea520af81c87a0c5b99bae475f4178a.jpeg)
方案优势
- 易用性
您可以简单选择所需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元数据库。
![5242470195c49c2c07d7576b446997a7.png](https://i-blog.csdnimg.cn/blog_migrate/a77d1aefaaf12f2597a75e0ab639d4ff.jpeg)
1.1. 搭建Hadoop + Kafka + 日志发生器环境
请参考《自建Hadoop数据迁移到阿里云EMR》最佳实践
第1章:1. 自建Hadoop集群环境搭建,完成本实践方案的基础环境搭建。
1.2. 创建Hive元数据库
本实践方案将在ECS上安装MySQL数据库,用于保存Hive元数据信息。 步骤1 登录云服务器控制台,地域:华东2(上海)。 步骤2 在实例列表页面,单击右上角的创建实例。
![cea347ef96e641d7da14a854e9866114.png](https://i-blog.csdnimg.cn/blog_migrate/a8893acc9fd3b58e03ff2c425e55e731.jpeg)
步骤3 在自定义购买模式下,完成各项配置。 基础配置:
- 付费模式:本实践方案选用抢占式实例。
说明:在方案演示过程中,我们选用抢占式实例来降低您的成本;在实际商用环境中,请选择适合业务场景的ECS实例付费模式。抢占式实例的具体信息, - 地域及可用区:华东2(上海) 可用区F
- 实例
ᅳ 实例规格:ecs.g6.large(2 vCPU 8 GiB,通用型g6)
ᅳ 单台实例规格上限价:创建抢占式实例,必须设置单台实例规格的价格上限。
a) 选择设置单台上限价。
b) 单击查看历史价格。
c) 在抢占式实例历史价格走势图中,可以看到华东2可用区F的实例当前市场价格为0.034 ¥/实例/小时,因此,我们设置单台上限价为0.04 ¥/实例/小时,要求略高于当前市场价格。使用者在进行实际操作时,请以界面显示的实时价格为准。
- 购买实例数量:1台
![1f361870c8675e2f1f8b106bc1cc4db1.png](https://i-blog.csdnimg.cn/blog_migrate/69363ea98e9b5f95c238729e2cbb4afd.jpeg)
![62052f1d5dfb4e553927d702c46c39ce.png](https://i-blog.csdnimg.cn/blog_migrate/a22d6c1dda729cba0bd0deee1cad70f4.jpeg)
- 镜像:
a) 选择镜像市场。
b) 单击从镜像市场获取更多选择(含操作系统)。
c) 输入magento,并单击搜索。
d) 选择Magento开源电子商务系统(LAMP | 含演示数据),并单击使用,该镜像中包含了MySQL数据库,root用户的默认密码为123456
![ad125d7c4be7f714eb11a7b641157af8.png](https://i-blog.csdnimg.cn/blog_migrate/aa14098987698b9c04c728e22181ee1f.jpeg)
![c0df6bc7efa1f45d30e385c5aaad73b4.png](https://i-blog.csdnimg.cn/blog_migrate/5b599880489a839786654a441d4271ee.jpeg)
![adc902ec0c05377e7a0adb064cbb060f.png](https://i-blog.csdnimg.cn/blog_migrate/c1ff16ee4c3e9671a1246aa8cf5b4fc1.jpeg)
- 存储:系统盘
高效云盘 80GiB
![8659262a6db977d89eba89d7206f45de.png](https://i-blog.csdnimg.cn/blog_migrate/d40ad055468cdf7e8eafdbb45e1bd69d.jpeg)
步骤4 配置完成,单击下一步:网络和安全组。 步骤5 在网络和安全组页面,参考下表,配置相关参数。
![98757f55c38fc70b123c5ca6263dcc1c.png](https://i-blog.csdnimg.cn/blog_migrate/b0953fd393ecf562d195b8b494e9e3d3.jpeg)
配置完成,单击下一步:系统配置。
![8f7eec1702e380767b854aac951841a8.png](https://i-blog.csdnimg.cn/blog_migrate/d5b8032470ce49a1a2083a8abd5882d2.jpeg)
步骤6 在系统配置页面,参考下表,配置相关参数。
![21d4f9d5fd9ea0fa97397db177b2d3fd.png](https://i-blog.csdnimg.cn/blog_migrate/69f258c3be0ff515255d3e7886a51353.jpeg)
![d02e87e73799691403417e7f71cd346e.png](https://i-blog.csdnimg.cn/blog_migrate/026ae0d24d2e17cc07136cc30f106b8c.jpeg)
配置完成,单击确认订单。
![29f155b578d28499d05c00ed53fd5cb0.png](https://i-blog.csdnimg.cn/blog_migrate/8fda509f099b6dbeccd5709df769ef6b.jpeg)
步骤7 在确认订单页面,确认各项参数信息。确认无误,阅读、同意并勾选《云服务器ECS服务条款》和《镜像商品使用条款》,并单击创建实例。
![a2a9c650d57043fb3a114caa6becd34d.png](https://i-blog.csdnimg.cn/blog_migrate/09260f51bf4007b42ca92d1fe757293f.jpeg)
步骤8 创建任务提交成功后,单击管理控制台前往ECS实例列表页面查看详情。
至此,本实践方案中用于模拟客户自建Hadoop系统的ECS已经全部搭建完成,如下图所示:
![042e277c74ca61517983ed41ab0ed42b.png](https://i-blog.csdnimg.cn/blog_migrate/2bf9646a342e05708751c6da2343def9.jpeg)
步骤9 通过如下网址登录到MySQL控制台:
http://mysql所在ecs的公网ip地址/phpmyadmin
![4fb0fa33506d85b5fb9d09b30ddc1507.png](https://i-blog.csdnimg.cn/blog_migrate/c25ecf4effde6119d2b124b14d70b476.jpeg)
步骤10 创建账号,该账号用于Hive进行连接。
![cd50f5fa1e5462a15baf244017981b79.png](https://i-blog.csdnimg.cn/blog_migrate/cdc8c803b2bd618799ee3073385970be.jpeg)
![e44e0fc98897ca21380223e0bc2062e8.png](https://i-blog.csdnimg.cn/blog_migrate/c164379724c32dadb706ea7efa4c91eb.jpeg)
![a66beb6aaf0f199ac75a3b65e5a07461.png](https://i-blog.csdnimg.cn/blog_migrate/39b23ecef3e79b7a26b848a1acfc3b9a.jpeg)
完成后界面显示如下图所示:
![fe50e9d9d3b5dd4565e1f74b50fb1c10.png](https://i-blog.csdnimg.cn/blog_migrate/94508f11db81ea13ad1e88ae2819b50c.jpeg)
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
- 在文件末尾添加如下内容,保存并退出。
# Added for Hive export HIVE_HOME=/usr/local/apache-hive-1.2.2-bin export PATH=$PATH:$HIVE_HOME/bin
- 执行以下命令使文件生效。
source /etc/profile
- 查看Hive版本号。
hive --version
![38ae6d8e8eef7b946cbe84c1dc5bc813.png](https://i-blog.csdnimg.cn/blog_migrate/e3441a81c3405941c89a644039351681.jpeg)
步骤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
- 搜索javax.jdo.option.ConnectionUserName,将value修改为root。
- 搜索javax.jdo.option.ConnectionPassword,将value修改为123456,该密码为章节1.2使用的云市场镜像中数据库root用户的默认密码。
- 搜索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的元数据。
- 搜索javax.jdo.option.ConnectionDriverName,将value修改为 com.mysql.jdbc.Driver
- 在下图所示的位置添加配置,即作为最靠前的
system:java.io.tmpdir/usr/local/apache-hive-1.2.2-bin/tmpsystem:user.nameroot
![b399ff7f8161b91a55702056bffc0e48.png](https://i-blog.csdnimg.cn/blog_migrate/ab1be089890d49f676a8eaeb8e0b0838.jpeg)
步骤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
当界面出现下图所示信息时表示初始化完成。
![bc5826603dd870d9e60aae32d7dc6075.png](https://i-blog.csdnimg.cn/blog_migrate/c24c4bc98e60e3c7973e23bf41e02d71.jpeg)
步骤7 启动Hive进入HQL命令行交互界面。
hive
![a89848a554bc9d3e73509576147181f6.png](https://i-blog.csdnimg.cn/blog_migrate/645f58a397d1c695680dcf50e7a073c6.jpeg)
说明:在hive命令行界面,使用quit退出。
作者:开源大数据EMR
本文为阿里云原创内容,未经允许不得转载。