如何8步完成hadoop单机安装

前言

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

能看到NameNode、DataNode、SecondaryNameNode和NodeManager等进程正在运行。

通过浏览器访问: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 交互以读写数据。
相关推荐
nvd118 小时前
Flink 批处理驱动的湖仓 AI 财务研报流水线:从双流广播汇聚到 Agent 智能决策与原生 Iceberg 落盘全景实战
大数据·人工智能·flink
计算机编程指导师10 小时前
【计算机毕设推荐】基于Hadoop+Spark的公共交通运营数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·数据分析·spark·交通
QYR_1111 小时前
机械制造用固体润滑涂层市场分析:2032年全球市场规模预计达8.78亿元,CAGR为6.2%
大数据·人工智能·物联网
数字化顾问12 小时前
(144页PPT)数字化转型汽车企业数智化战略规划(附下载方式)
大数据
智慧物业老杨13 小时前
数字底座,重构小区治理秩序
大数据
计算机编程指导师14 小时前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
Pniubi14 小时前
分布式锁分类讲解
分布式
guhunyihan14 小时前
无代码系统搭建平台,探索恐象 AI 带来的开发新范式
大数据·人工智能
计算机编程指导师14 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
benchmark_cc15 小时前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash