阿里云ECS构建大数据平台实践-基于Apache Hadoop

本文涉及的产品
云防火墙,500元 1000GB
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 基于阿里云ECS云服务器进行搭建私有的大数据平台,采用Apache Hadoop生态,为大数据提供存储及处理。

0. 项目背景

基于阿里云ECS云服务器进行搭建私有的大数据平台,采用Apache Hadoop生态,为大数据提供存储及处理。


1. 购买ECS云服务器实例

在这里,因为实验需要3个节点,所以我们购买3台ECS实例。


b7a8ceb2e5d2009acfcc93352262ab22084eed9c
8e8e45292577f6ddbdc43c6a4a11a54b899692fd

2. 远程登录服务器,进行基础环境的配置。

# 工欲善其事,必先利其器

# 前提准备


# 安装系统命令

yum -y install wget vim ntpdate net-tools ntpdate


2.1 节点信息

172.18.53.98 master

172.18.53.99 slave1

172.18.53.100 slave2


2.2 修改主机名,每一个节点都需要修改。

76b34f7540a6724f100d02d7ede036d2931c1116

2.3 配置主机文件(每一个节点都需要执行)

vi /etc/hosts
172.18.53.98 master
172.18.53.99 slave1
172.18.53.100 slave2

f8b35d502324f21f724b2d5f92a5dcca244e8fa8

2.4 系统防火墙和内核防火墙配置(每一个节点都需要执行)

# 临时关闭内核防火墙

setenforce 0

# 永久关闭内核防火墙

vi /etc/selinux/config
SELINUX=disabled

0bd06bcd70b17d1ae79cc6019b69e6b5f1ee2c4f

# 临时关闭系统防火墙

systemctl stop firewalld.service

# 永久关闭内核防火墙

systemctl disable firewalld.service
6a67f26ade4ee32271cb584c7993fdd686fdedea

2.5 SSH互信配置

ssh-keygen -t rsa

# 三次回车生成密钥(每一个节点都需要执行)

0a8a8e3d25000ba0f5962c89c980f2640d5c2cd0

# 生成公钥(主节点执行)

cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
chmod 600 /root/.ssh/authorized_keys

# 复制其他节点的公钥(主节点执行)

ssh slave1 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
ssh slave2 cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

b33b0d10d8ea8c1303e8672658448175e67e4503

# 复制公钥到其他节点(主节点执行)

scp /root/.ssh/authorized_keys root@slave1:/root/.ssh/authorized_keys
scp /root/.ssh/authorized_keys root@slave2:/root/.ssh/authorized_keys

22bff3ea90a8ea757d0e874ee6129f0231240b5c

# 免密SSH测试

ssh slave1 ip addr
ssh slave2 ip addr

de27e8025cb95a66288266c023a563d2dd6ae396

到这一步,我们已经搞定了基础环境的配置,主要是针对时间、主机名、防火墙等服务进行配置。

3. JDK环境的安装

cd /usr/local/src
tar zxvf jdk-8u191-linux-x64.tar.gz

# 配置环境变量,在配置最后加入

vim /etc/profile
JAVA_HOME=/usr/local/src/jdk1.8.0_191
JAVA_BIN=/usr/local/src/jdk1.8.0_191/bin
JRE_HOME=/usr/local/src/jdk1.8.0_191/jre
CLASSPATH=/usr/local/src/jdk1.8.0_191/jre/lib:/usr/local/src/jdk1.8.0_191/lib:/usr/local/src/jdk1.8.0_191/jre/lib/charsets.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

785594ae752e34aff7a41f4ec7664a760a9e488a

# 复制环境变量到其他节点

scp /etc/profile root@slave1:/etc/profile
scp /etc/profile root@slave2:/etc/profile


# 复制JDK包到其他节点

scp -r /usr/local/src/jdk1.8.0_191 root@slave1:/usr/local/src/jdk1.8.0_191
scp -r /usr/local/src/jdk1.8.0_191 root@slave2:/usr/local/src/jdk1.8.0_191

# 重新加载环境变量

source /etc/profile


# 测试环境是否配置成功

java -version
fbc5393be321d6d20de5a4ead138f8b4d2a7704a


到这一步,我们已经安装和配置了JAVA运行环境,因为Hadoop是Java开发的,所以我们必须需要在JAVA环境上运行Hadoop。


5. Hadoop环境安装

# 解压Hadoop包

cd /usr/local/src
tar zxvf hadoop-2.6.5.tar.gz 

# 修改配置文件 在第24行添加Java的环境变量

cd hadoop-2.6.5/etc/hadoop/
vim hadoop-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_191

b82c2983e9658bf8e428eba4c242f3cda3dc8186


# 修改配置文件 在第24行添加Java的环境变量

vim yarn-env.sh
export JAVA_HOME=/usr/local/src/jdk1.8.0_191

350fa25cdcdfcb839904f2f4b996ad61ac1e6d51

# 修改配置文件 添加从节点主机名

vim slaves
slave1
slave2

b5ddc8f0c907306906c0198a5565140c8c101bbe


# 修改配置文件 添加RPC配置

<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://172.18.53.98:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/src/hadoop-2.6.5/tmp</value>
        </property>
</configuration>
10523bb35a494960438c830c5ef75d7448709623

# 修改配置文件 添加DFS配置

<configuration>
	<property>
		<name>dfs.namenode.secondary.http-address</name>
		<value>master:9001</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>file:/usr/local/src/hadoop-2.6.5/dfs/name</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>file:/usr/local/src/hadoop-2.6.5/dfs/data</value>
	</property>
	<property>
		<name>dfs.replication</name>
		<value>3</value>
	</property>
</configuration>

7cae093069e35623b24e93b854750865518a0407


# 修改配置文件 添加MR配置

<configuration>
	<property>
		<name>mapreduce.framework.name</name>
		<value>yarn</value>
	</property>
</configuration>

ec30bd722f21d88c36c06352074f6c8f3506cd51

# 修改配置文件 添加资源管理配置

<configuration>
	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	</property>
	<property>
		<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
		<value>org.apache.hadoop.mapred.ShuffleHandler</value>
	</property>
	<property>
		<name>yarn.resourcemanager.address</name>
		<value>master:8032</value>
	</property>
	<property>
		<name>yarn.resourcemanager.scheduler.address</name>
		<value>master:8030</value>
	</property>
	<property>
		<name>yarn.resourcemanager.resource-tracker.address</name>
		<value>master:8035</value>
	</property>
	<property>
		<name>yarn.resourcemanager.admin.address</name>
		<value>master:8033</value>
	</property>
	<property>
		<name>yarn.resourcemanager.webapp.address</name>
		<value>master:8088</value>
	</property>
</configuration>


2503a66a7b79f85ef4d64e8634116fb5ed4edfae


# 创建临时目录和文件目录

mkdir /usr/local/src/hadoop-2.6.5/tmp
mkdir -p /usr/local/src/hadoop-2.6.5/dfs/name
mkdir -p /usr/local/src/hadoop-2.6.5/dfs/data


# 配置环境变量,在配置最后加入

vim /etc/profile
HADOOP_HOME=/usr/local/src/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin

# 复制环境变量到从节点

scp /etc/profile root@slave1:/etc/profile
scp /etc/profile root@slave2:/etc/profile

# 复制Hadoop包到从节点
scp -r /usr/local/src/hadoop-2.6.5 root@slave1:/usr/local/src/hadoop-2.6.5
scp -r /usr/local/src/hadoop-2.6.5 root@slave2:/usr/local/src/hadoop-2.6.5

# 重新加载环境变量
source /etc/profile

# 格式化Namenode
hadoop namenode -format
a98d62aa03aa08cac44a97b1af08c4eba3a9d743

# 提示下列内容即是成功完成格式化

common.Storage: Storage directory /usr/local/src/hadoop-2.6.5/dfs/name has been successfully formatted


# 启动集群

/usr/local/src/hadoop-2.6.5/sbin/start-all.sh

f6a9aac788bfba042e6be6d7f5d67dd8555633b5

# 查看服务进程

# Master: ResourceManager - Namenode - SecondaryNameNode

07828e3b12e13c695067d6cfc6e859aa77c3908c

# Slave: NodeManager - DataNode

6f1053e700be4383ec2cfd163651a140dec5a48b 4b97077a70101fd1b61f9f3517bb301d4249395e

# 网页控制台 (需要修改本地hosts文件 添加主机记录)

# Windows C:\Windows\System32\drivers\etc

# Linux /etc/hosts

# Mac /etc/hosts

63d9041dd9066570fb8ea21602bd818bfef61aa7

# Yarn管理界面

# 浏览器访问 http://master:8088/cluster

9b669ee322924b569784877931b708833f10a4af

# HDFS管理界面

# 浏览器访问 http://master:50070

93cfed35e8888d99197423ba7e8c921a49dbdccd




目录
相关文章
|
2月前
|
消息中间件 数据挖掘 Kafka
Apache Kafka流处理实战:构建实时数据分析应用
【10月更文挑战第24天】在当今这个数据爆炸的时代,能够快速准确地处理实时数据变得尤为重要。无论是金融交易监控、网络行为分析还是物联网设备的数据收集,实时数据处理技术都是不可或缺的一部分。Apache Kafka作为一款高性能的消息队列系统,不仅支持传统的消息传递模式,还提供了强大的流处理能力,能够帮助开发者构建高效、可扩展的实时数据分析应用。
102 5
|
2月前
|
消息中间件 存储 监控
构建高可用性Apache Kafka集群:从理论到实践
【10月更文挑战第24天】随着大数据时代的到来,数据传输与处理的需求日益增长。Apache Kafka作为一个高性能的消息队列服务,因其出色的吞吐量、可扩展性和容错能力而受到广泛欢迎。然而,在构建大规模生产环境下的Kafka集群时,保证其高可用性是至关重要的。本文将从个人实践经验出发,详细介绍如何构建一个高可用性的Kafka集群,包括集群规划、节点配置以及故障恢复机制等方面。
99 4
|
3月前
|
消息中间件 分布式计算 大数据
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
大数据-166 Apache Kylin Cube 流式构建 整体流程详细记录
93 5
|
2月前
|
存储 数据挖掘 数据处理
巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践
随着数据湖技术的发展,企业纷纷探索其优化潜力。本文分享了巴别时代使用 Apache Paimon 构建 Streaming Lakehouse 的实践。Paimon 支持流式和批处理,提供高性能、统一的数据访问和流批一体的优势。通过示例代码和实践经验,展示了如何高效处理实时数据,解决了数据一致性和故障恢复等挑战。
126 61
|
13天前
|
存储 分布式计算 大数据
Flume+Hadoop:打造你的大数据处理流水线
本文介绍了如何使用Apache Flume采集日志数据并上传至Hadoop分布式文件系统(HDFS)。Flume是一个高可用、可靠的分布式系统,适用于大规模日志数据的采集和传输。文章详细描述了Flume的安装、配置及启动过程,并通过具体示例展示了如何将本地日志数据实时传输到HDFS中。同时,还提供了验证步骤,确保数据成功上传。最后,补充说明了使用文件模式作为channel以避免数据丢失的方法。
49 4
|
2月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
54 1
|
2月前
|
SQL DataWorks 关系型数据库
阿里云 DataWorks 正式支持 SelectDB & Apache Doris 数据源,实现 MySQL 整库实时同步
阿里云数据库 SelectDB 版是阿里云与飞轮科技联合基于 Apache Doris 内核打造的现代化数据仓库,支持大规模实时数据上的极速查询分析。通过实时、统一、弹性、开放的核心能力,能够为企业提供高性价比、简单易用、安全稳定、低成本的实时大数据分析支持。SelectDB 具备世界领先的实时分析能力,能够实现秒级的数据实时导入与同步,在宽表、复杂多表关联、高并发点查等不同场景下,提供超越一众国际知名的同类产品的优秀性能,多次登顶 ClickBench 全球数据库分析性能排行榜。
|
2月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
129 2
|
2月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
93 1
|
3月前
|
分布式计算 大数据 Apache
利用.NET进行大数据处理:Apache Spark与.NET for Apache Spark
【10月更文挑战第15天】随着大数据成为企业决策和技术创新的关键驱动力,Apache Spark作为高效的大数据处理引擎,广受青睐。然而,.NET开发者面临使用Spark的门槛。本文介绍.NET for Apache Spark,展示如何通过C#和F#等.NET语言,结合Spark的强大功能进行大数据处理,简化开发流程并提升效率。示例代码演示了读取CSV文件及统计分析的基本操作,突显了.NET for Apache Spark的易用性和强大功能。
68 1

推荐镜像

更多