栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Ubuntu下伪分布式安装Hadoop详细教程

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Ubuntu下伪分布式安装Hadoop详细教程

目录

前言

一、修改配置文件

1. 配置 .bashrc 文件

2. 配置伪分布式

二、初始化文件系统

三、验证安装

1. 启动HDFS

 2. 部分报错

总结



前言

        Hadoop 的伪分布式安装需要建立在 Hadoop 的单机安装之上,关于 Hadoop 的单机安装可以参考作者的另一篇博客:Ubuntu下单机安装Hadoop详细教程(附所需安装包下载)

        本文安装的 Hadoop 及 Java 环境基于林子雨老师的《大数据技术原理与应用(第3版)》中所要求,其中 Java 版本为1.8.0_301,Hadoop 版本为3.3.1,这里我的操作系统环境是 Ubuntu 20.04,此安装方法同样适用于低版本。


一、修改配置文件

1. 配置 .bashrc 文件

修改 .bashrc 文件:

sudo gedit ~/.bashrc

往文件末加入以下两行:

# 注意此处的路径和你的hadoop文件最后解压存放的位置是一致的
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

使配置文件立即生效:

source ~/.bashrc

2. 配置伪分布式

对于伪分布式配置,我们需要修改 core-site.xml 和 hdfs-site.xml 两个文件,这两个文件在我们单机安装好的 Hadoop 目录下的 /etc/hadoop 文件夹内。

Ctrl + Alt + T 打开终端,进入 Hadoop 安装目录:

cd /usr/local/hadoop

输入 ls 命令,可以看到如下输出:

hadoop@fzqs-computer:/usr/local/hadoop$ ls
bin               input          LICENSE-binary   NOTICE-binary  README.txt
etc               lib              licenses-binary      NOTICE.txt        sbin
include        libexec       LICENSE.txt          output                share
hadoop@fzqs-computer:/usr/local/hadoop$

我们所需要修改的配置文件就在该目录下的 /etc/hadoop 文件夹内:

cd ./etc/hadoop

修改我们的 core-site.xml 文件:

sudo gedit core-site.xml

 修改文件内容如下:(实则就是往 configuration 里添加参数,注意缩进)


    
        hadoop.tmp.dir
        file:/usr/local/hadoop/tmp
        Abase for other temporary directories.
    

    
        fs.defaultFS
        hdfs://localhost:9000
    

期间 gedit 一堆 WARNING 不用管,没有 ERROR 就行。接着修改 hdfs-site.xml 文件:

sudo gedit hdfs-site.xml

也是添加一些配置参数,修改后如下:(注意缩进)


    
        dfs.replication
        1
    

    
        dfs.namenode.name.dir
        file:/usr/local/hadoop/tmp/dfs/name
    

    
        dfs.datanode.data.dir
        file:/usr/local/hadoop/tmp/dfs/data
    

到这,伪分布式安装所需要的配置就配置好啦!



二、初始化文件系统

先回到我们的 Hadoop 安装目录下:

cd /usr/local/hadoop

使用以下命令初始化文件系统:

./bin/hdfs namenode -format

部分输出如下:

/usr/local/hadoop> ./bin/hdfs namenode -format
WARNING: /usr/local/hadoop/logs does not exist. Creating.
2021-09-27 23:54:48,247 INFO namenode.NameNode: STARTUP_MSG: 

......

2021-09-27 23:54:49,927 INFO common.Storage: Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted.

......


/usr/local/hadoop> 


三、验证安装

1. 启动HDFS

文件初始化成功后,赋予 logs 文件夹相关权限:

sudo chmod -R a+w ./logs

可使用如下命令启动 HDFS:

./sbin/start-dfs.sh

注意这里若出现如下报错:localhost: ERROR: JAVA_HOME is not set and could not be found.

hadoop@fzqs-computer:/usr/local/hadoop$ ./sbin/start-dfs.sh
Starting namenodes on [localhost]
localhost: ERROR: JAVA_HOME is not set and could not be found.
Starting datanodes
localhost: ERROR: JAVA_HOME is not set and could not be found.
Starting secondary namenodes [fzqs-computer]
fzqs-computer: Warning: Permanently added 'fzqs-computer,240e:615:4003:132::a07' (ECDSA) to the list of known hosts.
fzqs-computer: ERROR: JAVA_HOME is not set and could not be found.

使用如下命令修改环境文件:

sudo gedit ./etc/hadoop/hadoop-env.sh

添加如下内容:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_301
export HADOOP=/usr/local/hadoop
export PATH=$PATH:/usr/local/hadoop/bin

注意这里的 jdk 版本号。正常启动输出如下:

hadoop@fzqs-computer:/usr/local/hadoop$ ./sbin/start-dfs.sh
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [fzqs-computer]

2021-09-29 21:16:11,575 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

hadoop@fzqs-computer:/usr/local/hadoop$ 

启动后,使用 jps 指令查看所有 Java 进程,若 HDFS 启动成功输出如下:

hadoop@fzqs-computer:/usr/local/hadoop$ jps
27538 SecondaryNameNode
27138 NameNode
27319 DataNode
27663 Jps
hadoop@fzqs-computer:/usr/local/hadoop$

此时可访问 Web 页面(在浏览器输入:http://localhost:9870):

 2. 部分报错

一种是出现 permission denied 权限不足的情况,这种情况下需要往 $HADOOP_HOME/etc/hadoop 目录下的 hadoop-env.sh 添加一行内容:

sudo gedit ./etc/hadoop/hadoop-env.sh

在文首添加以下代码:

HADOOP_SHELL_EXECNAME=root

立即使配置文件生效:

source ./etc/hadoop/hadoop-env.sh

还有一种是 jps 后没有 namenode 等输出的情况,这种情况需要删除 $HADOOP_HOME 目录下的 tmp 目录:

先关闭所有 HDFS 服务:

./sbin/stop-all.sh

删除 tmp 目录: 

sudo rm -rf usr/local/hadoop/tmp

接着再重新启动 HDFS:

./sbin/start-dfs.sh

接着 jps 应该就有输出啦!



总结

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/275626.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号