网站搜索

如何在CentOS 7上安装Hadoop单节点集群(伪节点)


Hadoop 是一个广泛用于处理大数据的开源框架。大多数大数据/数据分析项目都是建立在Hadoop生态系统之上的。它由两层组成,一层用于存储数据,另一层用于处理数据

存储将由其自己的名为HDFSHadoop分布式文件系统)的文件系统负责,并且处理将进行由YARN另一个资源谈判者)负责。 MapreduceHadoop生态系统的默认处理引擎。

本文介绍了HadoopPseudonode安装过程,其中所有守护进程JVM)将被安装在CentOS 7上运行单节点集群。

这主要是为了初学者学习Hadoop。实时地,Hadoop 将安装为多节点集群,其中数据将作为块分布在服务器之间,并且作业将以并行方式执行。

先决条件

  • CentOS 7 服务器的最小安装。
  • Java v1.8 发布。
  • Hadoop 2.x 稳定版本。

在本页

  • 如何在 CentOS 7 上安装 Java
  • 在 CentOS 7 上设置无密码登录
  • 如何在CentOS 7中安装Hadoop单节点
  • 如何在 CentOS 7 中配置 Hadoop
  • 通过NameNode格式化HDFS文件系统

在 CentOS 7 上安装 Java

1. Hadoop是一个由Java组成的生态系统。我们需要在系统中强制安装Java才能安装Hadoop

yum install java-1.8.0-openjdk

2. 接下来,验证系统上安装的 Java 版本。

java -version

在 CentOS 7 上配置无密码登录

我们需要在我们的机器上配置 ssh,Hadoop 将使用 SSH 管理节点。主节点使用SSH连接来连接其从节点并执行启动、停止等操作。

我们需要设置无密码的ssh,以便master可以在没有密码的情况下使用ssh与slave进行通信。否则每次连接建立时,都需要输入密码。

在这个单一节点中,Master服务(NamenodeSecondary Namenode资源管理器)和Slave< 服务(DatanodeNodemanager)将作为单独的 JVM 运行。即使是单节点,我们也需要无密码的 ssh 来让 Master 与 Slave 进行无需身份验证的通信。

3. 在服务器上使用以下命令设置无密码 SSH 登录。

ssh-keygen
ssh-copy-id -i localhost

4.配置无密码SSH登录后,再次尝试登录,即可免密码连接。

ssh localhost

在 CentOS 7 中安装 Hadoop

5. 转到 Apache Hadoop 网站并使用以下 wget 命令下载 Hadoop 的稳定版本。

wget https://archive.apache.org/dist/hadoop/core/hadoop-2.10.1/hadoop-2.10.1.tar.gz
tar xvpzf hadoop-2.10.1.tar.gz

6. 接下来,在 ~/.bashrc 文件中添加 Hadoop 环境变量,如图所示。

HADOOP_PREFIX=/root/hadoop-2.10.1
PATH=$PATH:$HADOOP_PREFIX/bin
export PATH JAVA_HOME HADOOP_PREFIX

7. 将环境变量添加到 ~/.bashrc 文件后,获取该文件并通过运行以下命令验证 Hadoop。

source ~/.bashrc
cd $HADOOP_PREFIX
bin/hadoop version

在 CentOS 7 中配置 Hadoop

我们需要配置以下 Hadoop 配置文件才能适合您的计算机。在Hadoop中,每个服务都有自己的端口号和自己的存储数据的目录。

  • Hadoop 配置文件 – core-site.xml、hdfs-site.xml、mapred-site.xml 和yarn-site.xml

8. 首先,我们需要更新 hadoop-env.sh 文件中的 JAVA_HOMEHadoop 路径,如图所示。

cd $HADOOP_PREFIX/etc/hadoop
vi hadoop-env.sh

在文件开头输入以下行。

export JAVA_HOME=/usr/lib/jvm/java-1.8.0/jre
export HADOOP_PREFIX=/root/hadoop-2.10.1

9. 接下来,修改 core-site.xml 文件。

cd $HADOOP_PREFIX/etc/hadoop
vi core-site.xml

将以下内容粘贴到 <configuration> 标记之间,如图所示。

<configuration>
            <property>
                   <name>fs.defaultFS</name>
                   <value>hdfs://localhost:9000</value>
           </property>
</configuration>

10.howtoing用户主目录下创建以下目录,用于NNDN存储。

mkdir -p /home/tecmint/hdata/
mkdir -p /home/tecmint/hdata/data
mkdir -p /home/tecmint/hdata/name

10. 接下来,修改 hdfs-site.xml 文件。

cd $HADOOP_PREFIX/etc/hadoop
vi hdfs-site.xml

将以下内容粘贴到 <configuration> 标记之间,如图所示。

<configuration>
<property>
        <name>dfs.replication</name>
        <value>1</value>
 </property>
  <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/tecmint/hdata/name</value>
  </property>
  <property>
          <name>dfs .datanode.data.dir</name>
          <value>home/tecmint/hdata/data</value>
  </property>
</configuration>

11. 再次修改 mapred-site.xml 文件。

cd $HADOOP_PREFIX/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

将以下内容粘贴到 <configuration> 标记之间,如图所示。

<configuration>
                <property>
                        <name>mapreduce.framework.name</name>
                        <value>yarn</value>
                </property>
</configuration>

12.最后,修改yarn-site.xml文件。

cd $HADOOP_PREFIX/etc/hadoop
vi yarn-site.xml

将以下内容粘贴到 <configuration> 标记之间,如图所示。

<configuration>
                <property>
                       <name>yarn.nodemanager.aux-services</name>
                       <value>mapreduce_shuffle</value>
                </property>
</configuration>

通过NameNode格式化HDFS文件系统

13.在启动集群之前,我们需要在安装了Hadoop NN的本地系统中对其进行格式化。通常,它会在第一次启动集群之前的初始阶段完成。

格式化NN会导致NN Metastore中的数据丢失,所以我们必须更加谨慎,除非有意为之,否则不要在集群运行时格式化NN

cd $HADOOP_PREFIX
bin/hadoop namenode -format

14.启动NameNode守护进程和DataNode守护进程:(端口50070)。

cd $HADOOP_PREFIX
sbin/start-dfs.sh

15.启动ResourceManager守护进程和NodeManager守护进程:(端口8088)。

sbin/start-yarn.sh

16.停止所有服务。

sbin/stop-dfs.sh
sbin/stop-dfs.sh
概括

总结
在本文中,我们逐步完成了设置Hadoop伪节点单节点集群的过程。如果您有 Linux 基础知识并按照以下步骤操作,集群将在 40 分钟内启动。

这对于初学者开始学习和练习 Hadoop 非常有用,或者这个普通版本的 Hadoop 可用于开发目的。如果我们想要拥有一个实时集群,要么我们需要至少 3 台物理服务器,要么必须配置云来拥有多台服务器。