Hadoop-2.5.1 分布式部署,Centos7

本文提供了一篇关于在Centos7环境下,详细部署Hadoop-2.5.1分布式集群的步骤,包括设置主机名、用户权限,配置虚拟机网络互通,安装JDK,配置SSH免登录,安装并配置Hadoop,以及启动和验证集群运行状态。

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

由于现在需要实际的Hadoop分布式环境以及我当初的一篇伪分布的环境搭建文章不够细致,所以在这里从新写一篇
环境准备:
Centos7

部署节点:
192.168.192.11 master
192.168.192.12 slave1
192.168.192.13 slave2

以下配置内容,大部分在master节点主机上
一、Centos7 环境配置
1、修改主机名

$hostnamectl set-hostname master

注:查看主机名

$hostnamectl

2.查看当前用户名并且赋予管理员权限

$whoami
$su root
$chmod -v u+w /etc/sudoers

root    ALL=(ALL)       ALL

下添加一行

Hadoop    ALL=(ALL)       ALL          //这一行是添加的
$chmod -v u-w /etc/sudoers

二、设置虚拟机相互联通
这里我就不细说了,大家可以上网找下相关内容,我这里是使用NAT模式。我只说几点我遇到的注意事项
1.设置Vmnet8网卡必须在本机的IP段中,比如
主机为 192.168.14.17
则网卡必须为:192.168.xxx.xxx
2.虚拟机虚拟网络设置时,既要保持与网卡IP段一致,也要注意,子网IP最后一个数字只能为0,比如,192.168.192.0
(这点可能还需要再验证下,但是我出现问题的时候,确实是这样解决的)

三、Hadoop环境搭建
1.安装JDK
1)查看是否有自带JDK

$java -version

2) 如果有查看JDK信息并卸载自带JDK
javapackages-tools-3.4.1-6.el7_0.noarch
python-javapackages-3.4.1-6.el7_0.noarch
java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
tzdata-java-2015a-1.el7.noarch
java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64

$sudo yum -y remove java-1.7.0-openjdk-1.7.0.75-2.5.4.2.el7_0.x86_64
$sudo yum -y remove java-1.7.0-openjdk-headless-1.7.0.75-2.5.4.2.el7_0.x86_64

3)安装自带JDK

$tar -zxvf  jdk-7u75-linux-x64.gz

编辑 /etc/profile

$sudo vi /etc/profile

添加如下内容:

export JAVA_HOME=/home/hadoop/java/jdk1.7.0_75
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin

生效配置

$source /etc/profile

验证是否安装成功:

$java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)

2、配置SSH免登录(请在三台虚拟机上分别操作)
1)关闭防火墙
2)生存密钥

$ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

3)导入公钥到认证文件中

$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

4)更改.ssh文件夹以及认证文件权限

$chmod 700 .ssh/
$chmod 600 .ssh/authorized_keys 

5)将公钥发送到其它机器上(默认其它机器以执行上述步骤)
master:

$scp authorized_keys hadoop@slave1:~/.ssh/authorized_keys_from_master
$scp authorized_keys hadoop@slave2:~/.ssh/authorized_keys_from_master

slave1:

$scp authorized_keys hadoop@master:~/.ssh/authorized_keys_from_slave1
$scp authorized_keys hadoop@slave2:~/.ssh/authorized_keys_from_slave1

slave2:

$scp authorized_keys hadoop@master:~/.ssh/authorized_keys_from_slave2
$scp authorized_keys hadoop@slave1:~/.ssh/authorized_keys_from_slave2

6)拷贝公钥到认证文件中
master:

$cat authorized_keys_from_slave1 >> authorized_keys
$cat authorized_keys_from_slave2 >> authorized_keys

slave1:

$cat authorized_keys_from_master >> authorized_keys
$cat authorized_keys_from_slave2 >> authorized_keys

slave2:

$cat authorized_keys_from_slave1 >> authorized_keys
$cat authorized_keys_from_master >> authorized_keys

至此,三台机器间可以实现免密码登录

3、安装Hadoop-2.5.1
1)解压文件

$tar -zxvf hadoop-2.5.1.tar.gz

2)创建相关文件夹,注意所有节点都应该建立相关文件夹

$mkdir dfs/
$Mkdir dfs/name
$Mkdir dfs/data
$Mkdir tmp/

3)修改相关配置文件
配置文件1:hadoop-env.sh
修改JAVA_HOME值 为 /home/hadoop/java/jdk1.7.0_75

配置文件2:yarn-env.sh
修改JAVA_HOME值 为 /home/hadoop/java/jdk1.7.0_75

配置文件3:slaves (这个文件里面保存所有slave节点),默认该文件中存在localhost节点,可去除可不去除
写入:

master(localhost改为master)
slave1
slave2

配置文件4:core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:8020</name>
    </property>
    <property>
                <name>io.file.buffer.size</name>
                <value>131072</name>
        </property>
    <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/home/hadoop/tmp</name>
        </property>
    <property>
                <name>hadoop.proxyuser.master.hosts</name>
                <value>*</name>
        </property>
    <property>
                <name>hadoop.proxyuser.master.groups</name>
                <value>*</name>
        </property>
</configuration>

配置文件5:hdfs-site.xml

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:9001</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/home/hadoop/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/home/hadoop/dfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        <property>
                <name>dfs.webhdfs.enabled</name>
                <value>true</value>
        </property>
</configuration>

配置文件6:mapred-site.xml

<configuration>
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>
        <property>
                <name>mapreduce.jobhistory.address</name>
                <value>master:10020</value>
        </property>
        <property>
                <name>mapreduce.jobhistroy.webapp.address</name>
                <value>master:19888</value>
        </property>
</configuration>

配置文件7:yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
        <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:8031</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>

4) 将master的hadoop文件复制到另两个节点中

$scp -r /home/hadoop/hadoop-2.5.1 hadoop@slave1:~/
$scp -r /home/hadoop/hadoop-2.5.1 hadoop@slave2:~/

5)分别修改 /etc/profile

$sudo vi /etc/profile
export HADOOP_HOME=/home/hadoop/hadoop-2.5.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

6)格式化 namenode

$hadoop namenode -format

7)启动hadoop

$cd /home/hadoop/hadoop-2.5.1/sbin
$./start-dfs.sh

各节点jps信息

Master:
3630 DataNode   (因为在slaves 文件中也配置了 localhost 所以这里出现了)
3968 Jps
3514 NameNode
3838 SecondaryNameNode
Slave1 和 Slave2:
3253 DataNode
3332 Jps
$./start-yarn.sh

各节点jps信息

Master:
3630 DataNode
4130 NodeManager
4018 ResourceManager
3514 NameNode
4272 Jps
3838 SecondaryNameNode

Slave1 和 slave2:
3511 Jps
3253 DataNode
3399 NodeManager

8)可以访问http://master:8088 查看应用程序内容

至此,Hadoop-2.5.1 分布式部署完成

参考文章链接:
http://www.aboutyun.com/thread-7684-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值