ECS搭建hadoop大数据环境有感

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生大数据计算服务 MaxCompute,5000CU*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月前
|
分布式计算 Kubernetes Hadoop
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
大数据-82 Spark 集群模式启动、集群架构、集群管理器 Spark的HelloWorld + Hadoop + HDFS
184 6
|
2月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
78 2
|
2月前
|
SQL 机器学习/深度学习 分布式计算
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
81 1
|
1天前
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
19 4
|
1月前
|
存储 大数据 数据处理
大数据环境下的性能优化策略
大数据环境下的性能优化策略
49 2
|
1月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
110 2
|
1月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
74 1
|
2月前
|
分布式计算 Hadoop 大数据
大数据体系知识学习(一):PySpark和Hadoop环境的搭建与测试
这篇文章是关于大数据体系知识学习的,主要介绍了Apache Spark的基本概念、特点、组件,以及如何安装配置Java、PySpark和Hadoop环境。文章还提供了详细的安装步骤和测试代码,帮助读者搭建和测试大数据环境。
74 1
|
2月前
|
SQL 分布式计算 NoSQL
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
大数据-170 Elasticsearch 云服务器三节点集群搭建 测试运行
50 4
|
2月前
|
SQL 分布式计算 大数据
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
大数据-168 Elasticsearch 单机云服务器部署运行 详细流程
64 2
下一篇
DataWorks