Hadoop集群环境搭建

Hadoop集群环境搭建

一、集群规划

这里搭建一个 3 节点的 Hadoop 集群,其中三台主机均部署 DataNodeNodeManager 服务,但只有 hadoop-nn-01 上部署 NameNodeResourceManager 服务。

二、前置条件

Hadoop 的运行依赖 JDK,需要预先安装。其安装步骤单独整理至:

Linux 下 JDK 的安装

使用 scp 命令进行分发 在另外两台机器上安装jdk:

[root@hadoop-nn-01 opt]# scp -r ./jdk1.8.0_181 hadoop-nn-02:/opt/
[root@hadoop-nn-01 opt]# scp -r ./jdk1.8.0_181 hadoop-dn-01:/opt/

或者将tar.gz 文件scp过去重新解压 再按照Linux 下 JDK 的安装 在另外两台机器上配置环境变量

三、配置免密登录

3.1 生成密匙

在每台主机上使用 ssh-keygen -t rsa 命令生成公钥私钥对:

ssh-keygen

3.2 免密登录

在主节点上将公钥拷到一个特定文件authorized_keys中。

[hadoop@hadoop-nn-01 .ssh]$ cat id_rsa.pub >> authorized_keys
[hadoop@hadoop-nn-01 .ssh]$ chmod 600 authorized_keys

将authorized_keys文件拷到下一个节点,并将该节点的ssh密钥id_rsa.pub加入该文件中。

[hadoop@hadoop-nn-01 .ssh]$scp authorized_keys  hadoop@hadoop-nn-02:/home/hadoop/.ssh

登录hadoop-nn-02主机

[hadoop@hadoop-nn-02 .ssh]$ cat id_rsa.pub >> authorized_keys
[hadoop@hadoop-nn-02 .ssh]$scp authorized_keys  hadoop@hadoop-dn-01:/home/hadoop/.ssh

最后在hadoop-dn-01节点

[hadoop@hadoop-dn-01 .ssh]$ cat id_rsa.pub >> authorized_keys
[hadoop@hadoop-dn-01 .ssh]$ scp authorized_keys  hadoop@hadoop-nn-01:/home/hadoop/.ssh
[hadoop@hadoop-dn-01 .ssh]$ scp authorized_keys  hadoop@hadoop-nn-02:/home/hadoop/.ssh

这样就完成了三个节点间的免密登录 核心就是配置authorized_keys文件 将需要免密登录的host的id_rsa.pub加入authorized_keys 即可

3.3 验证免密登录

ssh hadoop-nn-01
ssh hadoop-nn-02
ssh hadoop-dn-01

四、集群搭建

4.1 下载并解压

下载 Hadoop 安装包,下载地址为:https://hadoop.apache.org/releases.html

# 解压
tar -zvxf hadoop-3.1.3.tar.gz -C /home/hadoop/ 

4.2 配置环境变量

sudo vi /etc/profile

配置环境变量:

export HADOOP_HOME=/home/hadoop/hadoop-3.1.3
export PATH=${HADOOP_HOME}/bin:$PATH

执行 source 命令,使得配置的环境变量立即生效:

source /etc/profile

4.3 修改Hadoop配置

进入 ${HADOOP_HOME}/etc/hadoop 目录下,修改配置文件。各个配置文件内容如下:

1. hadoop-env.sh
# 指定JDK的安装位置
export JAVA_HOME=/opt/jdk1.8.0_181/
2. core-site.xml
<configuration>
    <property>
        <!--指定 namenode 的 hdfs 协议文件系统的通信地址-->
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop-nn-01:8020</value>
    </property>
    <property>
        <!--指定 hadoop 存储临时文件的目录-->
        <name>hadoop.tmp.dir</name>
        <value>/data/hadoop/tmp</value>
    </property>
</configuration>
3. hdfs-site.xml
<configuration>
		<property>
		      <!--namenode 节点数据(即元数据)的存放位置,可以指定多个目录实现容错,多个目录用逗号分隔-->
		    <name>dfs.namenode.name.dir</name>
		    <value>/data/hadoop/namenode/data</value>
		</property>
		<property>
		      <!--datanode 节点数据(即数据块)的存放位置-->
		    <name>dfs.datanode.data.dir</name>
		    <value>/data/hadoop/datanode/data</value>
		</property>
</configuration>
4. yarn-site.xml
<configuration>
    <property>
        <!--配置 NodeManager 上运行的附属服务。需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序。-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <!--resourcemanager 的主机名-->
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop-nn-01</value>
    </property>
</configuration>
5. mapred-site.xml
<configuration>
    <property>
        <!--指定 mapreduce 作业运行在 yarn 上-->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
5. workers

配置所有从属节点的主机名或 IP 地址,每行一个。所有从属节点上的 DataNode 服务和 NodeManager 服务都会被启动。

hadoop-nn-01
hadoop-nn-02
hadoop-dn-01

4.4 分发程序

将 Hadoop 安装包分发到其他两台服务器,分发后建议在这两台服务器上也配置一下 Hadoop 的环境变量。

# 将安装包分发到hadoop-nn-02
scp -r /home/hadoop/hadoop-3.1.3/  hadoop-nn-02:/home/hadoop/
# 将安装包分发到hadoop-dn-01
scp -r /home/hadoop/hadoop-3.1.3/  hadoop-dn-01:/home/hadoop/

4.5 初始化

hadoop-nn-01 上执行 namenode 初始化命令:

hdfs namenode -format

4.6 启动集群

进入到 hadoop-nn-01${HADOOP_HOME}/sbin 目录下,启动 Hadoop。此时 hadoop002hadoop003 上的相关服务也会被启动:

# 启动dfs服务
./start-dfs.sh
# 启动yarn服务
./start-yarn.sh

4.7 查看集群

在每台服务器上使用 jps 命令查看服务进程:

[hadoop@hadoop-nn-01 sbin]$ jps
34819 SecondaryNameNode
35331 Jps
35197 NodeManager
35086 ResourceManager
34510 NameNode
34622 DataNode

[hadoop@hadoop-nn-02 data]$ jps
2771 NodeManager
2643 DataNode
2885 Jps

[hadoop@hadoop-dn-01 ~]$ jps
2837 Jps
2726 NodeManager
2598 DataNode

或直接进入 Web-UI 界面进行查看,端口为 9870。可以看到此时有三个可用的 Datanode:http://hadoop-nn-01:9870/

接着可以查看 Yarn 的情况,端口号为 8088http://hadoop-nn-01:8088/ 也可看到看到此时有三个 Active Nodes

五、查看集群

[hadoop@hadoop-dn-01 gzg]$ hadoop fs -put test.txt /tmp
[hadoop@hadoop-dn-01 gzg]$ hadoop fs -text /tmp/test.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值