centos7下完全式hadoop集群搭建

本文详细记录了在CentOS7环境下,使用二进制包搭建Hadoop集群的全过程,包括环境准备、配置环境变量、设置主机信息、配置Hadoop文件、格式化HDFS以及验证启动等关键步骤。通过这次实践,对Hadoop集群的配置有了深入理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

初入数仓坑,搭建hadoop集群折腾了几天险些让我崩溃,好歹是让我看到了结果:
这里写图片描述

当然虽然过程坑了点耗费了相当心力,但好处是对配置的理解更明白了些,当然流程更是烂熟于心了。下面就开始总结吧:免密通信就不提了需要的话可以直接戳http://blog.youkuaiyun.com/qq_29186199/article/details/78428498
首先说下环境,我是在centos7下面安装的二进制hadoop包(上链接:http://hadoop.apache.org/releases.html),如下图:
这里写图片描述

1、我将所需要的文件解压到了/usr/local/software(该文件是我自己创建放下载的软件包),解压后放到local目录下并更名Hadoop,jdk8,如图:
这里写图片描述

2、接下来配置环境变量(知道肯定有人手懒,贴码),如下图:
(只看java与hadoop环境变量配置)
这里写图片描述

#java
export JAVA_HOME=/usr/local/jdk8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#hadoop
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib/native
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

写入配置信息之后别忘了source /etc/profile使配置生效。

3、nano /etc/hosts 进入该文件编辑主节点与子节点信息,我的节点信息如下:
这里写图片描述
事实上,这里只要写主机IP或者主机名(hostname可以查看主机名,vi /etc/hostname可以永久修改主机名,其他方法都更改的话这个方法优先级别最高,自测欢迎指正)其一就可以,都写的话也不错。

4、接下来就是配置Hadoop文件了,我用的是root账户所以各文件无所谓权限不够的问题了(自己玩的嘛/尴尬笑),首先进入Hadoop主目录(我的cd /usr/local/hadoop):
创建新文件tmp和hdfs以及hdfs下面的name和data文件夹上命令:

mkdir {tem,hdfs} , cd hdfs , mkdir {name,data}

上图(总结嘛怎么可能是实时的):
这里写图片描述

5、接下来配置文件,根据个人需要主要有以下几个,不敲了上图:
这里写图片描述
接下来一个一个来:

vi core-site.xml

这里写图片描述

<configuration>
<property>
 <final>true</final>
         <!--默认文件系统的名字,URL形式-->
        <name>fs.defaultFS</name>
        <value>hdfs://192.168.233.128:9000</value>
</property>
<property>
    <!--Hadoop临时目录,其他目录会基于此目录,是本地目录-->
    <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
         <final>true</final>
</property>
<property>
    <!--读写文件时使用的缓存大小,大小应该是内存Page的倍数-->
    <name>io.file.buffer.size</name>
        <value>131072</value>
</property>
</configuration>
vi hdfs-site.xml

这里写图片描述

<configuration>
<property>
<!--本地磁盘目录,用于NameNode存放fsimage文件,可以设置多个,一个坏了用另一个,但是如果设置了HA建议设置一个-->
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hdfs/name</value>
</property>
<property>
<!--本地磁盘目录,HDFS存储数据块的地方-->
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hdfs/data</value>
</property>
<property>
<!--数据块副本-->
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<!--SecondNameNode的http服务地址。端口为0的话服务随机选择一个空闲端口,使用了HA的话就不再使用SecondNameNode-->
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.233.128:9001</value>
</property>
<property>
<!--HDFS服务通信的RPC地址,该参数必须设置,如果设置,备份结点,数据结点和其他服务将会连接到指定地址-->
<name>dfs.namenode.servicerpc-address</name>
<value>192.168.233.128:10000</value>
</property>
<property>
<!--指定是否在NameNode和DataNode上面指定WebHDFS功能-->
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
vi mapred.xml(MapReduce的配置文件)

这里写图片描述

<configuration>
<property>
<!--设置MapReduce执行框架为yarn-->
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<!--MapReduce历史服务器地址-->
<name>mapreduce.jobhistory.address</name>
<value>192.168.233.128:10020</value>
</property>
<property>
<!--MapReduce历史服务器wen ui地址-->
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.233.128:19888</value>
</property>
</configuration>
vi yarn-site.xml

这里写图片描述

<configuration>
<property>
<!--Nodemanager上面运行的附属服务,需要配置成mapreduce_shuffle才可以运行mapreduce-->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--对应参考yarn.nodemanager.aux-services-->
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<!--ResourceManager对客户端暴露的地址。客户端向RM提交应用程序,杀死应用程序等-->
<name>yarn.resourcemanager.address</name>
<value>192.168.233.128:8032</value>
</property>
<property>
<!--调度器地址,ResourceManager向ApplicationManager暴露的地址,ApplicationManager通过该地址向RM申请、释放资源-->
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.233.128:8030</value>
</property>
<property>
<!--RM向NM暴露的地址,NM通过该地址向NM汇报心跳,领取任务-->
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.233.128:8031</value>
</property>
<property>
<!--RM对管理员暴露的地址,管理员通过该地址向RM发送管理命令-->
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.233.128:8033</value>
</property>
<property>
<!--RM对外WEB UI地址,用户可通过该地址查看集群各类信息-->
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.233.128:8088</value>
</property>
<property>
<!--NM总的可用物理内存,不能小于1024.一旦设置不可在运行中动态修改-->
<name>yarn.nodemanager.resource.memory-mb</name>
<value>1024</value>
</property>
<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>
</configuration>
vi hadoop-env.sh

这里写图片描述

export JAVA_HOME=/usr/local/jdk8/
vi yarn-env.sh

这里写图片描述

export JAVA_HOME=/usr/local/jdk8
vi slaves

这里写图片描述
至此主节点配置Hadoop配置完成。

6、把主节点服务器即master主机下的/etc/profile,hadoop主目录即:/usr/local/hadoop,和jdk主目录即/usr/local/jdk8复制到其余各个节点服务器,即:

scp -r  /etc/profile 192.168.233.130:/etc/
scp -r  /usr/local/hadoop 192.168.233.130:/usr/local/
scp -r  /usr/local/jdk8 192.168.233.130:/usr/local/

scp -r  /etc/profile 192.168.233.131:/etc/
scp -r  /usr/local/hadoop 192.168.233.131:/usr/local/
scp -r  /usr/local/jdk8 192.168.233.131:/usr/local/

scp -r  /etc/profile 192.168.233.132:/etc/
scp -r  /usr/local/hadoop 192.168.233.132:/usr/local/
scp -r  /usr/local/jdk8 192.168.233.132:/usr/local/

复制过去之后不要忘记source /etc/profile 使配置生效,另外这里提一下吧,hadoop里面的几个修改的文件各自主机用各自主机的IP(我就在这里面绕不出来了)。

7、第一次启动首先格式化HDFS:
cd /usr/local/hadoop/sbin
hdfs namenode -format
说明:只要看到/usr/local/hadoop/hdfs/name 被格式化成功就没问题了
启动HDFS:start-dfs.sh
java自带jps命令验证:
主节点:
这里写图片描述
子节点:
这里写图片描述
页面验证:
这里写图片描述
没毛病

8、至此hadoop的配置基本完成,其他组件有需要再加希望帮到正在焦头烂额的朋友,在此也感谢官方文档和Hadoop构建数据仓库实践,是个好东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值