从零开始:手摸手教你入门搭建Hadoop

举报
菜菜的后端私房菜 发表于 2024/11/18 09:37:52 2024/11/18
【摘要】 从零开始:手摸手教你入门搭建Hadoop 引言在现代企业中,数据量的快速增长带来了巨大的挑战传统的数据处理和分析工具已经难以应对大规模数据的存储和处理需求特别是在业务团队项目中,面对海量数据的实时处理和分析,如何高效地管理和利用这些数据成为了一个关键问题而Hadoop的出现就能够解决海量数据下的存储与计算然而,Hadoop的安装与配置并非易事,尤其是对于初学者来说,可能会遇到各种困难和挑战...

从零开始:手摸手教你入门搭建Hadoop

引言

在现代企业中,数据量的快速增长带来了巨大的挑战

传统的数据处理和分析工具已经难以应对大规模数据的存储和处理需求

特别是在业务团队项目中,面对海量数据的实时处理和分析,如何高效地管理和利用这些数据成为了一个关键问题

而Hadoop的出现就能够解决海量数据下的存储与计算

然而,Hadoop的安装与配置并非易事,尤其是对于初学者来说,可能会遇到各种困难和挑战

别担心,本文将为你提供详尽的步骤指导,帮助你轻松上手,从零开始搭建属于自己的Hadoop

在这篇文章中,我们将使用云服务器演示入门搭建Hadoop的完全流程,包含一些需要注意的点和坑都会列举出来

无论你是出于学习目的还是实际应用需求,相信都能从中受益匪浅

接下来,就让我们一起踏上这段充满挑战与乐趣的旅程吧

环境准备

需要准备Linux系统的机器,我采用的是云服务器

如果没有服务器的同学也可以在之前挑选服务器的文章中,选择秒杀活动中的轻量级服务器,一年也就三十不到

或者也可以在本地虚拟机的Linux系统中进行搭建学习

创建用户

首先,我们需要创建Hadoop用户进行使用

菜菜一开始使用的是Root用户,后面会导致无法运行Hadoop

#添加用户
sudo useradd hadoop

#设置密码
sudo passwd hadoop

#切换用户
su hadoop

配置SSH

Hadoop节点间采用ssh,没配会导致程序无法启动,因此需要配置ssh免密登陆

首先需要安装ssh

#安装
yum install openssh
 
#需要密码校验
ssh localhost
 
#登陆成功后退出 开始配置免密登陆
exit

测试成功后,开始配置免密登录

cd  ~/.ssh

#生成密钥 回车几下
ssh-keygen -t rsa

#添加
cat ./id_rsa.pub >> ./authorized_keys
 
#确保有权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
 
#再次登陆不需要密码
ssh localhost

配置完成后,再次登录无需输入密码

ssh免密登陆

JDK安装与配置

由于Hadoop是基于Java实现的,因此我们需要确保拥有JDK的环境

#更新包索引
sudo yum update -y
 
#安装JDK
sudo yum install java-1.8.0-openjdk-devel -y

成功安装JDK后只能在bin目录下使用命令才会生效,因此需要配置环境变量

配置环境变量后,即使在全局任意目录下,使用命令都会生效

首先需要找到JDK 安装目录,通常在/usr/lib下

#找到JDK目录  JDK通常在/usr/lib下 
#/usr/lib/jvm
pwd
 
#目录名太长改成jdk8
mv java-1.8.0-openjdk-1.8.0.432.b06-2.oc8.x86_64/ jdk8
 
#配置环境变量 在末尾追加环境变量
vim  ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk8
export PATH=$JAVA_HOME/bin:$PATH
 
#环境变量生效
source ~/.bashrc
 
#查看版本号 判断是否安装成功
java -version

配置完环境变量,运行查看Java版本号的命令出现:

查看JDK版本

搭建Hadoop

准备好环境后,即可开始准备安装Hadoop

下载压缩包

我们采用压缩包的方式进行安装,先进行下载

压缩包下载

下载完成后将压缩包进行上传

 #解压
 sudo tar -zxf hadoop-3.4.1.tar.gz
 
 #进入目录
 cd hadoop-3.4.1
 
 #查看版本 如果没找到JDK说明 JDK环境变量配的有问题
 ./bin/hadoop version

解压完成后,进入bin目录使用hadoop version查看版本号

查看Hadoop版本

配置环境变量

 #末尾追加 我的Hadoop目录是:/home/lighthouse/hadoop-3.4.1
 vim ~/.bashrc  
 
 export HADOOP_HOME=/home/lighthouse/hadoop-3.4.1
 export HADOOP_MAPRED_HOME=$HADOOP_HOME
 export HADOOP_COMMON_HOME=$HADOOP_HOME
 export HADOOP_HDFS_HOME=$HADOOP_HOME
 export YARN_HOME=$HADOOP_HOME
 export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
 export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
 
 #这里也有JAVA的环境变量
 export PATH=${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH

在其他目录下输入hadoop version 输出版本信息说明安装成功

hadoop安装成功

修改配置文件

启动Hadoop前,需要进行一些重要配置,比如配置hdfs存储数据目录

 #创建目录存放Hadoop的数据,/home/lighthouse/hadoop-data
 mkdir hadoop-data
 
 #进入Hadoop安装目录的etc目录下 准备编辑配置文件
 #/home/lighthouse/hadoop-3.4.1/etc/hadoop
 pwd

配置临时数据文件和hdfs地址:vim core-site.xml

 <configuration>
     <!-- 临时文件 -->
     <property>
         <name>hadoop.tmp.dir</name>
         <value>file:/home/lighthouse/hadoop-data/tmp</value>
         <description>Abase for other temporary directories.</description>
     </property>
     <!--hdfs地址-->
     <property>
         <name>fs.defaultFS</name>
         <value>hdfs://localhost:9000</value>
     </property>
 </configuration>

配置hdfs存储相关配置: vim hdfs-site.xml

 <configuration>
         <!-- 副本数量 -->
         <property>
                 <name>dfs.replication</name>
                 <value>3</value>
         </property>
         <!-- namenode 元数据 存储目录 -->
         <property>
                 <name>dfs.namenode.name.dir</name>
                 <value>file:/home/lighthouse/hadoop-data/tmp/dfs/name</value>
         </property>
         <!-- datanode 真正数据 存储目录 -->
         <property>
                 <name>dfs.datanode.data.dir</name>
                 <value>file:/home/lighthouse/hadoop-data/tmp/dfs/data</value>
         </property>
 </configuration>

配置jdk环境变量:vim hadoop-env.sh

查找 /JAVA_HOME

image.png

格式化数据节点 hdfs namenode -format

启动

start-all.sh 执行启动脚本

(此时如果你使用的用户不是hadoop,并且没有配置ssh是无法成功运行的)

启动

jps 查看启动的Java程序

image.png

如果你也是云服务器的话要开放UI界面的端口,NameNode 50070(Hadoop 2.x版本),9870(Hadoop 3.x版本)

开放端口

或者选择关闭防火墙 systemctl stop firewalld.service

访问NameNode的UI WEB界面,默认端口:50070(Hadoop 2.x版本),9870(Hadoop 3.x版本)

访问UI WEB界面

至此,Hadoop相当于搭建成功,可以使用命令或WEB界面进行使用

依旧无法启动的情况:

  1. 用户不为Hadoop
  2. 用户未配置SSH
  3. 删除name和data节点的数据(有重要数据记得备份),再进行格式化
#删除历史数据
rm /home/lighthouse/hadoop-data/tmp/dfs/name
rm /home/lighthouse/hadoop-data/tmp/dfs/data
 
#格式化
hdfs namenode -format

#启动
start-all.sh

#查看已启动的Java程序
jps

总结

通过引入Hadoop,业务团队能够有效地应对大规模数据的存储和处理挑战,提升了数据处理效率,降低存储成本,增强系统的稳定性和可靠性

搭建Hadoop的过程可能涉及到不同的坑,但通过本文的详细指导,同学们可以顺利地进行搭建

希望本篇实践能帮助你在项目中成功应搭建Hadoop,带来显著的业务价值

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。