掘金 后端 ( ) • 2024-05-06 11:44

theme: channing-cyan

前言

Hadoop是一个开源框架,用于存储和处理大规模数据集。

系统要求

  • Ubuntu 20.04
  • 4GB(建议8GB)
  • hadoop-3.3.6

步骤1:更新系统

打开终端并输入以下命令来更新您的系统:

apt update

步骤2:安装Java

Hadoop需要Java环境,我们将安装OpenJDK 8。

apt install openjdk-8-jdk

安装完成后,验证Java版本:

java -version

如果出现相应的版本信息说明已经安装成功了。

那么apt install的java安装的目录在哪里呢?

# which java
  /usr/bin/java
# ls -l /usr/bin/java
  /usr/bin/java -> /etc/alternatives/java
# ls -l /etc/alternatives/java
  /etc/alternatives/java -> /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java

也就是/usr/lib/jvm/java-8-openjdk-amd64就是java安装目录即JAVA_HOME,后面会用到配置。

步骤3:安装Hadoop

首先,我们需要下载Hadoop 3.3.6的tar.gz文件。您可以从Apache官方网站下载。

wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz

文件比较大,大概600多M,需要下载一会。

下载完成后,解压缩文件到/usr/local目录下:

tar -xzvf hadoop-3.3.6.tar.gz -C /usr/local

步骤4:配置Hadoop环境

编辑/etc/profile文件,添加Hadoop和Java的环境变量:

vim /etc/profile

在文件末尾添加:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export HADOOP_HOME=/usr/local/hadoop-3.3.6
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_DATANODE_SECURE_USER=root

保存并退出,然后应用更改:

source /etc/profile

查看hadoop是否安装成功

hadoop version

看到版本说明已安装成功,下面继续配置hadoop

步骤5:配置Hadoop文件

您需要编辑Hadoop的配置文件,这些文件位于$HADOOP_HOME/etc/hadoop目录下。

core-site.xml

<configuration>
    <property>
            <name>fs.defaultFS</name>
            <value>hdfs://10.9.2.86:9000</value>
    </property>
    <property>
            <name>hadoop.tmp.dir</name>
            <value>file:/usr/local/hadoop/tmp</value>
            <description>Abasefor other temporary directories.</description>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

步骤6:格式化HDFS

在启动Hadoop之前,需要格式化HDFS文件系统:

hdfs namenode -format

步骤7:启动Hadoop

使用以下命令启动Hadoop:

start-dfs.sh

步骤8:验证安装

使用jps命令检查Hadoop进程:

jps

能看到NameNodeDataNodeSecondaryNameNodeNodeManager等进程正在运行。

通过浏览器访问:http://10.9.2.86:9870/

相关问题

  1. 什么是 Hadoop?
    Hadoop 是一个开源框架,它允许使用简单的编程模型在计算机集群中分布式处理大数据集。它设计用于从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。
  2. Hadoop 的核心组件有哪些?
    Hadoop 的核心组件包括 HDFS(Hadoop Distributed File System),MapReduce 和 YARN(Yet Another Resource Negotiator)。
  3. HDFS 的工作原理是什么?
    HDFS 是一个分布式文件系统,它将大文件分割成块(block),并将这些块分布在整个集群的节点上。它通过复制每个块来提供容错。
  4. MapReduce 是如何工作的?
    MapReduce 是一个编程模型和处理工具,用于并行处理大量数据。它工作分为两个阶段:Map 阶段将输入数据转换成一组中间键值对,Reduce 阶段则将这些键值对合并以形成输出结果。
  5. YARN 的作用是什么?
    YARN 是 Hadoop 的资源管理层,它允许多个数据处理引擎如 MapReduce 和 Spark 在 Hadoop 上有效地共享资源。
  6. Hadoop 1.x 和 Hadoop 2.x 有什么区别?
    Hadoop 2.x 引入了 YARN,这是一个新的资源管理器,它允许更多种类的数据处理任务。Hadoop 2.x 还提高了系统的可扩展性和集群的利用率。
  7. Hadoop 如何保证数据的可靠性?
    Hadoop 通过在集群中的不同节点上存储数据块的多个副本来保证数据的可靠性。如果一个节点失败,系统可以从其他节点的副本中恢复数据。
  8. 什么是 NameNode 和 DataNode?
    NameNode 是 Hadoop HDFS 的主服务器,负责存储文件系统的元数据。DataNode 存储实际数据。客户端直接与 NameNode 交互以获取文件位置信息,然后与 DataNode 交互以读写数据。