云上大数据系列1:手把手教你何如在ECS上搭建Hadoop开发测试环境(CDH版)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

本篇是云上大数据系列第一篇文章,主要介绍开发测试环境的搭建。在后续的文章中,我们还将会分享更多关于云上大数据系统的性能分析和调优经验,敬请期待。

大数据系统是典型的复杂分布式系统,搭建一套大数据系统不但需要大量的资源,还需要对大数据系统本省有一定的了解。云计算的普及使得大数据系统的快速部署,甚至一键部署成为可能。笔者在阿里云上尝试搭建了一套大数据系统,将部署的过程和大家分享一下。

  • 资源环境:ecs.d1.6xlarge × 5
  • 软件系统:CDH 5.14.2
  • 操作系统:CentOS 7.3

以下教程基于Cloudera官方教程,结合笔者实际部署过程中遇到的问题编写而成。读者在实践的过程中可以将本文和官方教程结合来参考。官方教程点这里查看。

教程特点(做好心理准备):
需要下载 cloudera-manager-daemons 包(744M),cloudera-manager-agent 包(788M),下载过程比较慢,且中途容易出错,需要多次重试。
如果对上述部署方式不满意,还可以尝试官方的第三种方式(预下载安装包并手动安装):
https://www.cloudera.com/documentation/enterprise/5-13-x/topics/cm_ig_install_path_c.html#cmig_topic_6_7

第一步:购买ECS资源:

在阿里云官方网站上购买5台规格为ecs.d1.6xlarge的机器。注意两点:

  1. 修改机器名称以区分不同的角色:1台 master,4台 worker,例如cdh-m1, cdh-w1, cdh-w2, cdh-w3, cdh-w4
  2. 点击下单前选择密码登录,并记住登录密码。

第二步:简单配置集群

  1. 所有结点设置免密登录(百度搜索“ssh免密登录”)
  2. 修改所有结点 hostname
hostname cdh-m1

并同步修改 /etc/hostname 文件

  1. (optional) 为所有结点配置pdsh,方便批量操作。pdsh的基本命令:
pdsh -w cdh-w[1-4] cmd
  1. 可以放在第四步的间隙来做)配置本地数据盘(格式化,挂载,开启自动挂载)

点击这里下载 format.sh脚本。

for i in {1..4}; do scp format.sh root@cdh-w$i:/root; done
pdsh -w cdh-w[1-4] bash /root/format.sh

检查一下是否配置成功(输出为所有 worker 结点本地盘数量总和,4结点是48):

pdsh -w cdh-w[1-4] df -h | grep "5.1T" | wc -l

其中“5.1T”为数据盘大小,可以根据本地数据盘做修改。

第三步:安装基础服务

  1. 登录到 master 结点,安装 MySQL :详细教程点击这里。对照教程,完成:

    • 配置 my.cnf(只需要照着它的推荐配置配就可以了);
    • 备份 ib_logfile
    • 修改 root 用户登录密码;
    • 添加到开机自启动;
    • 下载 jdbc
    • 创建一些数据库:在 MySQL 中执行脚本:create_databases.sql。点击这里下载脚本。
  2. 配置Cloudera源:
    下载(点击下载)并将 cloudera-manager.repo 文件拷贝到 /etc/yum.repos.d/
  3. 安装jdk-1.7:(下载速度较慢,15min)
sudo yum install oracle-j2sdk1.7

第四步:安装CDH

  1. 安装 Cloudera Manager Server Packages:(下载速度较慢,中途可能失败,需要反复重试,利用这个时间空隙,可以完成第二步第4小步
sudo yum install cloudera-manager-daemons cloudera-manager-server
  1. Cloudera Manager 配置本地数据库:

在 MySQL中创建一个服务于 cloudera manager 的数据库,起名叫 cloudera_manager (小写):

create database cloudera_manager DEFAULT CHARACTER SET utf8;

连接到该数据库:

/usr/share/cmf/schema/scm_prepare_database.sh mysql cloudera_manager root password
  1. 启动 Cloudera Manager Server
sudo service cloudera-scm-server start
  1. 在浏览器中打开 http://cdh-m1:7180,此时无响应,需要做端口映射:详细教程可以点击这里了解更多。

我的做法:开两个命令窗口,分别跑两个进程:

ssh -i id_rsa -ND 7180 root@cdh-m1

其中“7180”是准备映射的端口。

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --proxy-server="socks5://localhost:7180" --host-resolver-rules="MAP * 0.0.0.0 , EXCLUDE localhost" --user-data-dir=/tmp/
  1. 刷新刚才的页面:http://cdh-m1:7180,用户名和密码都是admin。按照提示开始安装过程。由于每台机器都需要安装 jdkcloudera-manager-agent,这两个包的下载速度非常慢,过程可能长达数小时。需要提前做好心里准备(其他准备也做不了)。安装过程中需要注意几个问题:

    • 在主机检查阶段,确保所有项目都checked,如果没有,按照提示逐一修复;
    • 在服务选择阶段,可以自定义服务,根据需要选择相应的服务,而无需选择所有服务。也可以直接选择所有服务,安装完成后手动停掉不需要的服务,我选择了所有服务(后来我又把不需要的服务都手工删掉了,衰);
    • 在数据库连接阶段,打开 create_databases.sql 文件,并对照填写相应的内容;如果在上一步中选择了 HueOozie 服务,那么这里需要为这两个服务配置相应的数据库,详细教程见这里:

Huehttps://www.cloudera.com/documentation/enterprise/5-13-x/topics/hue_dbs_mysql.html#hue_dbs_mysql
Ooziehttps://www.cloudera.com/documentation/enterprise/5-13-x/topics/install_oozie_ext_db.html#admin_oozie_ext_db

如果配置 Oozie 的时候需要JDBC,那么建立软链:

ln -s /usr/share/java/mysql-connector-java.jar /opt/cloudera/parcels/CDH/lib/oozie/lib/mysql-connector-java.jar
  • 停止或者删除不需要的服务,并根据 Cloudera Manager 的建议,修复一些其他问题。

第五步:验证安装是否成功:

  1. 登录到 master 结点,以 hive 用户连接到 HiveServer2
beeline -u "jdbc:hive2://localhost:10000/default" -n hive
  1. 创建一张叫 table_nameORC 事务表:
CREATE TABLE table_name (id int, name string)
CLUSTERED BY (id) INTO 2 BUCKETS
STORED AS ORC
TBLPROPERTIES ("transactional"="true",
  "compactor.mapreduce.map.memory.mb"="2048",
  "compactorthreshold.hive.compactor.delta.num.threshold"="4",
  "compactorthreshold.hive.compactor.delta.pct.threshold"="0.5"
);
  1. 插入一条记录并读取:
insert into table_name(id, name) values('1', 'Alex');
select * from table_name;
  1. 验证 Hive-on-Spark 是否正常:
set hive.execution.engine=spark;
select count(*) from table_name;

如果输出的结果为1, 那么表明安装正常。

到此为止,我们已经成功在ECS上搭建起了一套大数据系统。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
5天前
|
存储 分布式计算 资源调度
两万字长文向你解密大数据组件 Hadoop
两万字长文向你解密大数据组件 Hadoop
26 11
|
10天前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
27 1
|
8天前
|
测试技术 UED 开发者
软件测试的艺术:从代码审查到用户反馈的全景探索在软件开发的宇宙中,测试是那颗确保星系正常运转的暗物质。它或许不总是站在聚光灯下,但无疑是支撑整个系统稳定性与可靠性的基石。《软件测试的艺术:从代码审查到用户反馈的全景探索》一文,旨在揭开软件测试这一神秘面纱,通过深入浅出的方式,引领读者穿梭于测试的各个环节,从细微处着眼,至宏观视角俯瞰,全方位解析如何打造无懈可击的软件产品。
本文以“软件测试的艺术”为核心,创新性地将技术深度与通俗易懂的语言风格相结合,绘制了一幅从代码审查到用户反馈全过程的测试蓝图。不同于常规摘要的枯燥概述,这里更像是一段旅程的预告片,承诺带领读者经历一场从微观世界到宏观视野的探索之旅,揭示每一个测试环节背后的哲学与实践智慧,让即便是非专业人士也能领略到软件测试的魅力所在,并从中获取实用的启示。
|
2月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
100 0
|
2月前
|
分布式计算 资源调度 Hadoop
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
Hadoop入门基础(五):Hadoop 常用 Shell 命令一网打尽,提升你的大数据技能!
|
2月前
|
测试技术 C# 开发者
“代码守护者:详解WPF开发中的单元测试策略与实践——从选择测试框架到编写模拟对象,全方位保障你的应用程序质量”
【8月更文挑战第31天】单元测试是确保软件质量的关键实践,尤其在复杂的WPF应用中更为重要。通过为每个小模块编写独立测试用例,可以验证代码的功能正确性并在早期发现错误。本文将介绍如何在WPF项目中引入单元测试,并通过具体示例演示其实施过程。首先选择合适的测试框架如NUnit或xUnit.net,并利用Moq模拟框架隔离外部依赖。接着,通过一个简单的WPF应用程序示例,展示如何模拟`IUserRepository`接口并验证`MainViewModel`加载用户数据的正确性。这有助于确保代码质量和未来的重构与扩展。
30 0
|
2月前
|
SQL 分布式计算 Hadoop
centos7通过CDH部署Hadoop
centos7通过CDH部署Hadoop
|
2月前
|
SQL 分布式计算 数据可视化
基于Hadoop的大数据可视化方法
【8月更文第28天】在大数据时代,有效地处理和分析海量数据对于企业来说至关重要。Hadoop作为一个强大的分布式数据处理框架,能够处理PB级别的数据量。然而,仅仅完成数据处理还不够,还需要将这些数据转化为易于理解的信息,这就是数据可视化的重要性所在。本文将详细介绍如何使用Hadoop处理后的数据进行有效的可视化分析,并会涉及一些流行的可视化工具如Tableau、Qlik等。
65 0
|
1月前
|
存储 大数据 数据挖掘
【数据新纪元】Apache Doris:重塑实时分析性能,解锁大数据处理新速度,引爆数据价值潜能!
【9月更文挑战第5天】Apache Doris以其卓越的性能、灵活的架构和高效的数据处理能力,正在重塑实时分析的性能极限,解锁大数据处理的新速度,引爆数据价值的无限潜能。在未来的发展中,我们有理由相信Apache Doris将继续引领数据处理的潮流,为企业提供更快速、更准确、更智能的数据洞察和决策支持。让我们携手并进,共同探索数据新纪元的无限可能!
81 11
|
2月前
|
存储 分布式计算 大数据
MaxCompute 数据分区与生命周期管理
【8月更文第31天】随着大数据分析需求的增长,如何高效地管理和组织数据变得至关重要。阿里云的 MaxCompute(原名 ODPS)是一个专为海量数据设计的计算服务,它提供了丰富的功能来帮助用户管理和优化数据。本文将重点讨论 MaxCompute 中的数据分区策略和生命周期管理方法,并通过具体的代码示例来展示如何实施这些策略。
82 1

热门文章

最新文章

下一篇
无影云桌面