自建 5 个节点的 Hadoop 集群,以及完成 MapReduce 作业

2019-01-09 20:48:52 +08:00
 trafficMGR

集群规划和搭建过程

搭建过程和配置文件专门用 VuePress 记录了一下:前往日志

数据处理

任务

使用 Hive 导入社交用户数据 CSV 文件,使用 SQL 塞选出用户表中的共同爱好、共同好友。

Map Reduce 作业问题

在这个集群上做简单的 Map 和 Reduce 作业是极其缓慢的,从 0% 跳到 100%可能会经历数十分钟,效率堪忧。由于各个节点是同学自己买的,不能走 VPC 内网互通,只好用公网互通。👈怀疑问题会出现在这里

Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
2019-01-09 19:56:25,499 Stage-1 map = 0%,  reduce = 0%
INFO  : Hadoop job information for Stage-1: number of mappers: 1; number of reducers: 1
INFO  : 2019-01-09 19:56:25,499 Stage-1 map = 0%,  reduce = 0%
2019-01-09 19:57:26,238 Stage-1 map = 0%,  reduce = 0%
INFO  : 2019-01-09 19:57:26,238 Stage-1 map = 0%,  reduce = 0%
2019-01-09 19:58:26,818 Stage-1 map = 0%,  reduce = 0%
INFO  : 2019-01-09 19:58:26,818 Stage-1 map = 0%,  reduce = 0%
2019-01-09 19:59:27,374 Stage-1 map = 0%,  reduce = 0%
INFO  : 2019-01-09 19:59:27,374 Stage-1 map = 0%,  reduce = 0%
2019-01-09 20:00:27,878 Stage-1 map = 0%,  reduce = 0%

...

2019-01-09 20:17:32,700 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.69 sec
INFO  : 2019-01-09 20:17:32,700 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.69 sec
2019-01-09 20:18:33,218 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.69 sec
INFO  : 2019-01-09 20:18:33,218 Stage-1 map = 100%,  reduce = 0%, Cumulative CPU 1.69 sec

测试

使用相同的 SQL 语句换做在 E-MapReduce 上能很块跑出结果(加钱世界可及)。

还未结束

4481 次点击
所在节点    Hadoop
12 条回复
skyqqcc
2019-01-09 20:57:25 +08:00
没玩过,看不懂
jbiao520
2019-01-09 21:04:57 +08:00
公网肯定不行的,这个带宽,说不定还不是一个地区的,延迟感人
trafficMGR
2019-01-09 21:08:01 +08:00
@jbiao520 其实都是广州区的,带宽可能会不够,实际上我们数据量是很小的,绰绰有余了,至于节点之间会不会交换很大的数据块,这个我到不清楚。平均延迟 <=2ms
823036978
2019-01-09 21:08:05 +08:00
查看 hivesql 执行计划
trafficMGR
2019-01-09 21:26:18 +08:00
@823036978 具体使用什么命令查看呢,我还完全是个新手,对 Hive 不熟悉。之前一直用的 Beeline 作为客户端,元数据库就用的默认的 Derby。目前之间打开 hive 命令的行工具的话,会报出 Java 运行时错误,无法实例化`..SessionHiveMetaStoreClient',看起来还是没有配置正确的样子=.=||
823036978
2019-01-09 21:39:11 +08:00
@trafficMGR explain hivesql
823036978
2019-01-09 21:41:00 +08:00
@trafficMGR 用 CDH 吧
cye3s
2019-01-09 21:45:35 +08:00
你们 5 个人笔记本跑 linux,lan 下搭个
whatsmyip
2019-01-09 23:11:33 +08:00
数据数据量不是很大的话,应该是配置的问题吧,玩的少,具体不清楚。

跑作业任务的话,8G 的笔记本就可以了,或者向楼上说的一样,把你们每个人的笔记本放在一起,做集群。

我之前用渣渣笔记本跑了一个 master,3 个 worker,绰绰有余,就是跑起来会卡。

如果你对 docker 略微熟悉的话,这是之前基于 docker 部署 hadoop 跟 hive 的两篇文档:

https://blog.newnius.com/how-to-quickly-setup-a-hadoop-cluster-in-docker.html

https://blog.newnius.com/setup-apache-hive-in-docker.html
trafficMGR
2019-01-09 23:21:05 +08:00
@whatsmyip Docker 这个主意不错,正好我也喜欢玩 Docker,而小内存节点跑 CDH 会很吃力,非常感谢!
scalaer
2019-01-10 01:13:51 +08:00
hadoop 生态圈的服务已经被集成了, 比如像楼上说的 cdh, 还有 hdp, 有兴趣的话可以看看 apache ambari
kex0916
2019-01-10 18:54:03 +08:00
看看 NameNode DataNode,NodeManager 等日志,有没有通信警告什么的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/525496

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX