ECS搭建hadoop大数据环境有感

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 本人大四,正在忙毕业设计,想着需要一台云服务器,就凭借自己的学生身份申领了阿里云,本文记载我的感想。

     马上要毕业了,正是毕业设计和毕业论文的高峰期,本人定题仓库管理系统,相对来说业务方面比较简单,于是我便想着把自己的课设变得更加有挑战性。看到自己仓库的出入库记录,想起自己的数据库出入库信息表中的记录是个庞大的数据量,便想着在阿里云上面搭一个简单的大数据环境,进行一系列的数据分析。

     在网上看了许多的资料,然后我就开始构思,搭建这个环境的难点在于,服务器的内存只有2g,怎样能让环境顺利的跑起来,多少的数据量是可接受范围内的。于是我便尽量减少结点数,让自己的环境跑起来,进行了繁杂的步骤之后,我的环境跑起来了,自拟了几个报表的需求,我就开始构思业务所需的中间表,用beeline在hive上建好了表,便开始完完整整走一遍ETL。当然第一步是想好自己需要数据库(MySQL)中的几张表,然后怎样把自己数据库(MySQL)的数抽取到HDFS,这个时候我想到了DataX,我用java写的单行插入,10分钟大概可以查两万万条数据(两张表各一万),然后我就开始了记录:


2万条数据, 用时10分钟插入到MySQL,dataX抽数到HDFS一张表用时14s,领一张表用时23s

20万条数据,用时快两个小时插入到MySQL,dataX用时一张15s,一张12s(没啥太大差别)

200万条数据,用时16小时插入到MySQL,dataX用时依然是十几秒

image.png

     下面是我操作将近300万条数据用时:

image.png

     由于内存有限,而且结点频繁挂掉,我就没有再做进一步尝试了

     整个过程还是充满惊喜的,自己也学到了很多,比如这个过程编写了很多Linux 脚本啊,编写ETL工作流啊,设置shell脚本定时任务啊 当然整个过程最大的无奈是,想拓宽自己的内存,却又舍得花钱(狗头)。

     下面附上我的ETL脚本示例:

E:

#!/bin/bash

PATH="/opt/java/jdk1.8.0_151/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

echo "======================to do truncate=========================="

cd docker-hive

echo "truncate in background"

docker-compose exec -d hive-server env LANG=C.UTF-8 bash -c '/opt/hive/bin/beeline -u jdbc:hive2://localhost:10000 -e "truncate table ods_wms.record_in;"'

sleep 30

echo "======================to do extract=========================="

ip=`docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' docker-hive_namenode_1`

/opt/datax/bin/datax.py --jvm="-Xms200M -Xmx200M" -p"-Dip=$ip" /opt/datax/job/imp_wms_record_in.job


T:

#!/bin/bash

PATH="/opt/java/jdk1.8.0_151/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

echo "======================to do transform=========================="

cd docker-hive

echo "transform in background"

docker-compose exec -d hive-server env LANG=C.UTF-8 bash -:'/opt/hive/bin/beeline -u jdbc:hive2://localhost:10000 -e "insert overwrite table ads_wms.goods_sells_info

select g.goods_id goods_id,

g.goods_name goods_name,

nvl(ro.out_count, 0) out_count

from ods_wms.goods g left join (select goods_id,

sum(out_count) out_count

from ods_wms.record_out

where out_time >= add_months(current_timestamp(), -1)

group by goods_id) ro

on g.goods_id = ro.goods_id;"'


L:

#!/bin/bash

PATH="/opt/java/jdk1.8.0_151/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"

echo "======================to do load=========================="

ip=`docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' docker-hive_namenode_1`

/opt/datax/bin/datax.py --jvm="-Xms200M -Xmx200M" -p"-Dip=$ip" /opt/datax/job/exp_goods_sells_info.job


相关文章
|
2月前
|
传感器 网络协议 物联网
手把手教你在 Windows 环境中搭建 MQTT 服务器
手把手教你在 Windows 环境中搭建 MQTT 服务器
144 0
|
3天前
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
25 11
|
2月前
|
NoSQL 关系型数据库 MySQL
《花100块做个摸鱼小网站! 》第一篇—买云服务器和初始化环境
本文是技术博主summo分享的个人网站搭建教程。从选择阿里云免费试用或付费的云服务器开始,逐步介绍如何搭建网站所需的基础环境。作者选择了2核2G、3M固定带宽的配置,并使用CentOS 7.9 64位作为操作系统镜像。接着详细说明了JDK 8、Redis和MySQL 8.0的安装过程,包括配置与启动服务、设置远程访问等关键步骤。特别强调了阿里云安全组规则的重要性,确保服务器端口正确开放。通过本教程,即使是初学者也能跟随步骤轻松完成环境搭建,为后续的网站开发打下坚实的基础。
79 5
《花100块做个摸鱼小网站! 》第一篇—买云服务器和初始化环境
|
2月前
|
存储 分布式计算 Hadoop
|
7天前
|
存储 Unix 数据挖掘
服务器数据恢复—SAN环境下LUN Mapping出错导致文件系统共享冲突的数据恢复案例
服务器数据恢复环境: SAN环境下一台存储设备中有一组由6块硬盘组建的RAID6磁盘阵列,划分若干LUN,MAP到不同业务的SOLARIS操作系统服务器上。 服务器故障: 用户新增了一台服务器,将存储中的某个LUN映射到新增加的这台服务器上。这个映射的LUN其实之前已经MAP到其他SOLARIS操作系统的服务器上了。由于没有及时发现问题,新增加的这台服务器已经对此LUN做了初始化操作,磁盘报错,重启后发现卷无法挂载。
|
2月前
|
存储 数据可视化 数据挖掘
大数据环境下的房地产数据分析与预测研究的设计与实现
本文介绍了一个基于Python大数据环境下的昆明房地产市场分析与预测系统,通过数据采集、清洗、分析、机器学习建模和数据可视化技术,为房地产行业提供决策支持和市场洞察,探讨了模型的可行性、功能需求、数据库设计及实现过程,并展望了未来研究方向。
大数据环境下的房地产数据分析与预测研究的设计与实现
|
2月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
98 0
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
|
2月前
|
存储 SQL 分布式计算
Hadoop生态系统概述:构建大数据处理与分析的基石
【8月更文挑战第25天】Hadoop生态系统为大数据处理和分析提供了强大的基础设施和工具集。通过不断扩展和优化其组件和功能,Hadoop将继续在大数据时代发挥重要作用。
|
2月前
|
资源调度 分布式计算 Hadoop
揭秘Hadoop Yarn背后的秘密!它是如何化身‘资源大师’,让大数据处理秒变高效大戏的?
【8月更文挑战第24天】在大数据领域,Hadoop Yarn(另一种资源协调者)作为Hadoop生态的核心组件,扮演着关键角色。Yarn通过其ResourceManager、NodeManager、ApplicationMaster及Container等组件,实现了集群资源的有效管理和作业调度。当MapReduce任务提交时,Yarn不仅高效分配所需资源,还能确保任务按序执行。无论是处理Map阶段还是Reduce阶段的数据,Yarn都能优化资源配置,保障任务流畅运行。此外,Yarn还在Spark等框架中展现出灵活性,支持不同模式下的作业执行。未来,Yarn将持续助力大数据技术的发展与创新。
31 2

热门文章

最新文章

下一篇
无影云桌面