ARM平台搭建Hadoop集群

/*

Hadoop是Apache旗下主流的大数据计算和存储框架之一,在近年来应用的越来越广泛。常规意义上的Hadoop集群都是搭建在商业服务器上的,利用大规模柜式服务器的强劲硬件资源进行大数据分布式计算。同时Hadoop是由Java编写的,运行在JVM之上。而Java是跨平台的,可以“run everywhere”,这就给在ARM平台上搭建Hadoop集群带来了希望。事实上,已经有多家大厂和个人爱好者做出了此类尝试,Cubieboard制作出了一个相当漂亮的8节点Hadoop集群(http://cubieboard.org/2013/08/01/hadoophigh-availability-distributed-object-oriented-platform-on-cubieboard/)。由于实际项目需求,我在64位ARM平台上搭建出了一个三节点的Hadoop集群。比算力当然比不过商业服务器,只作为一次有趣的尝试。

*/

0. 硬件资源和软件版本介绍

此案例中选用的嵌入式开发板型号是Firefly-RK3399,官网的产品介绍可点击http://www.t-firefly.com/product/rk3399.html。

硬件资源:

– Firefly-RK3399×3,6 核,2GHz主频,4GB DDR3 RAM,120G eMMC

– 散热风扇×3,用来超频后的散热

– HDMI 线×1,显示屏x1

– 4口路由器,修改设置当成交换机用,用来给3块开发板联网

– 网线×3

软件版本:

– 操作系统:Ubuntu16.04

– Java 环境:jdk for ARM 8u172

– Hadoop 2.7.6


1. 准备工作

1.1 配置本地hosts

规定集群一共有三台设备,一台主机和两台从机。主节点的主机名改成Master,两个从节点分别改成Slave1和Slave2。IP地址从192.168.1.50依次往后排到192.168.1.52(IP地址可以自定义)。若再增加一个从机,则继续添加slave节点。注意在每个设备上都要进行以下操作。

#进入hosts文件

sudo gedit /etc/hosts

#将以下内容添加到文本中:

192.168.1.50    Master

192.168.1.51    Slave1

192.168.1.52    Slave2

1.2 更改本机IP地址

在主机上执行以下操作,这里的网关和dns都是192.168.1.1,因为我最终连入互联网的那个路由器是192.168.1.1。若实际情况不同可作出相应修改。

#修改配置文件

sudo gedit /etc/network/interfaces

#在文本末尾添加以下内容:

auto eth0             

iface eth0 inet static     

address 192.168.1.50     

netmask 255.255.255.0    

gateway 192.168.1.1   

dns-nameservers 192.168.1.1

#重启网络,使配置生效

sudo /etc/init.d/networkin restart

然后在各个从机上也按规定更改为对应的ip地址

使用ping指令在Master主机中进行测试,使用类似指令在Slave上测试,确保两两之间一定可以ping通。

ping -c4 Slave1

ping -c4 Slave2

<think>好的,我现在需要帮用户理解搭建Hadoop平台的每一步具体作用,并且用简单易懂的语言解释。用户之前已经得到过详细的步骤说明,现在他们可能希望更简化或者更强调每一步的必要性。我需要参考提供的引用内容,结合之前的回答,确保信息准确且易于理解。 首先,用户提到的引用中有几个关键点:Hadoop的历史发展、配置文件的具体设置(比如JournalNode)、完全分布式的搭建步骤、SSH免密登录、JDK安装注意事项、以及端口开放等。这些内容需要整合到步骤中,说明它们的作用。 用户希望用通俗语言,所以需要避免技术术语过多,用日常例子或类比。例如,解释HDFS副本数时,可以比喻为文件备份,防止丢失。同时,要确保结构清晰,分步骤说明,每步的作用明确。 需要注意之前回答中的步骤可能有些技术细节,现在要简化。例如,环境准备中的关闭防火墙和配置SSH免密登录,可以解释为“让各个机器能互相通信,不需要每次输入密码”。安装JDK是因为Hadoop是用Java写的,需要运行环境。 引用中提到华为云服务器使用ARM版JDK,这一点很重要,需要提醒用户注意选择合适的版本,避免兼容问题。另外,分发Hadoop配置文件时使用scp,但带宽小导致速度慢,可以说明这步骤是为了同步所有节点的配置,保持一致。 格式化NameNode的作用是创建初始文件系统结构,但强调只能做一次,否则数据丢失。启动HDFS和YARN后,验证部分可以通过jps命令和Web界面,这样用户能直观看到服务是否正常。 需要检查之前的回答是否覆盖了所有引用中的要点,比如JournalNode配置在hdfs-site.xml中,用于高可用性,但用户的问题可能不需要深入HA配置,所以可能简要提及或忽略,除非用户明确问及。 总结:需要将步骤分解,每步用简单的话说明目的,结合引用中的实际案例,如JDK版本选择、配置文件分发、端口开放等,确保用户理解每一步为何必要,以及如何影响整个Hadoop平台的运行。</think>### **Hadoop平台搭建步骤及通俗解释** (以下步骤用“做饭”类比,帮你轻松理解每个环节的作用🍳) --- #### **1. 准备厨房(环境配置)** **作用**:确保所有工具和材料齐全,厨房能正常运作。 - **装好灶台和锅(虚拟机/物理机)**:用虚拟机(如VMware)模拟多台电脑,省钱又方便测试[^2]。 - **打通排烟管道(网络配置)**: - 关防火墙:就像打开排风扇,避免烟雾(数据)堵在厨房里。 - 配置SSH免密登录:让厨师(主节点)能直接进其他厨房(从节点)不用敲门(输密码)。 - 给每台机器贴标签(主机名映射):比如“冰箱=192.168.1.101”,避免拿错食材(IP混淆)。 --- #### **2. 买食材(安装Hadoop)** **作用**:拿到Hadoop的核心程序,就像买到米和菜。 - 从官网下载Hadoop安装包(如买菜)。 - 解压到指定目录(如把菜放进冰箱): ```bash tar -zxvf hadoop-3.3.6.tar.gz -C /opt/hadoop # 解压到/opt/hadoop ``` - **重点文件夹**: - `bin`和`sbin`:就像菜刀和炒勺,用来切菜(执行命令)。 - `etc/hadoop`:菜谱(配置文件),告诉你怎么炒菜。 --- #### **3. 调酱料(配置环境变量)** **作用**:让系统记住Hadoop的位置,就像记住盐放在哪儿。 - 在系统配置文件(如`~/.bashrc`)里加两行: ```bash export HADOOP_HOME=/opt/hadoop # 告诉系统“盐罐在这儿” export PATH=$HADOOP_HOME/bin:$PATH # 把盐罐放到灶台边,随手就能用 ``` - 生效配置: ```bash source ~/.bashrc # 相当于摇一摇调料瓶,让盐均匀分布 ``` **注**:配置后可直接用`hdfs`等命令,不用写完整路径[^1]。 --- #### **4. 写菜谱(修改配置文件)** **作用**:定义怎么做菜,比如火候、调料比例。 ##### **(1) core-site.xml(基础配置)** ```xml <property> <name>fs.defaultFS</name> <value>hdfs://namenode:9000</value> <!-- 指定大厨(NameNode)的位置 --> </property> ``` **作用**:告诉所有帮厨(DataNode):“有事找大厨,他在厨房A”。 ##### **(2) hdfs-site.xml(存储配置)** ```xml <property> <name>dfs.replication</name> <value>3</value> <!-- 每道菜存3份,防止打翻一盘没得吃 --> </property> ``` **作用**:重要文件备份3份,就像把菜谱复印3份,丢一份也不怕。 ##### **(3) yarn-site.xml(资源管理)** ```xml <property> <name>yarn.resourcemanager.hostname</name> <value>resourcemanager</value> <!-- 指定资源管理员的位置 --> </property> ``` **作用**:找个监工(ResourceManager),确保炒菜时煤气和锅分配合理。 --- #### **5. 开火前准备(格式化HDFS)** **作用**:初始化文件系统,就像第一次用新锅要开锅。 ```bash hdfs namenode -format # 格式化,一生只能做一次! ``` **警告**:重复格式化=把锅烧红再浇冷水,锅会裂(数据全丢)[^1]。 --- #### **6. 开炒!(启动集群)** **作用**:点火开灶,开始做饭。 - **启动HDFS**: ```bash start-dfs.sh # 点火!启动大厨(NameNode)和帮厨(DataNode) ``` - **启动YARN**: ```bash start-yarn.sh # 监工(ResourceManager)上线,监督炒菜进度 ``` --- #### **7. 试菜(验证集群)** **作用**:尝一口菜,确认没烧糊。 - **检查进程**: ```bash jps # 查看有没有“大厨”、“帮厨”、“监工”在干活 ``` - **网页监控**: - 输入`http://namenode:9870`:看HDFS状态,就像看冰箱里还剩多少菜。 - 输入`http://resourcemanager:8088`:看YARN任务进度,就像看监工的小本本。 --- ### **为什么这些步骤重要?** 1. **免密登录**:省去每次敲门的时间,提升效率(就像指纹锁)。 2. **副本数量**:存3份数据=重要文件备份到3个U盘,丢两个也不慌[^1]。 3. **格式化警告**:就像格式化硬盘,只能做一次,否则数据全没! --- ### **常见问题解答** **Q1:为什么要装Java?** A:Hadoop是用Java写的,就像电饭锅需要电才能用。 **Q2:配置文件分发给所有节点有什么用?** A:确保所有帮厨(DataNode)用同一份菜谱,不会有人乱放盐[^3]。 **Q3:为什么Web页面打不开?** A:可能是防火墙没关,或者端口没开(就像忘了开排风扇,烟雾出不去)[^4]。 --- 通过这个“做饭”比喻,希望能帮你轻松理解Hadoop搭建的逻辑! 🎉
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值