Hadoop HDFS 安装详细步骤

这篇具有很好参考价值的文章主要介绍了Hadoop HDFS 安装详细步骤。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hadoop 安装详细步骤

安装前
分别在 master、slave1、slave2 三台机器的 root 用户下的主目录下创建目录 bigdata,即执行下面的命令:
mkdir ~/bigdata
Hadoop 安装包下载
检查 Hadopp 和 java 版本是否对应,在官网中查

hadoop-3.1.3      JDK 1.8
hadoop-2.10.2    JDK 1.7 or 1.8
hadoop-2.9.2      JDK 1.7 or 1.8
hadoop-2.8.2      JDK 1.7+
hadoop-2.7.1      JDK 1.7+

解压 hadoop 压缩安装包

tar zxvf hadoop-2.7.5.tar.gz

执行完后,在当前的目录下会出现一个名为 hadoop-2.7.5 的文件目录,这个目录就是 hadoop 的安装目录。

至此,Hadoop 安装包下载完毕。

在 Hadoop 中包含了 3 个技术组件,分别是:

分布式存储技术 - HDFS
分布式资源管理技术 - Yarn
分布式计算技术 - MapReduce

HDFS 配置安装

修改配置
执行下面的命令进入到 hadoop 的配置文件所在的目录:

cd ~/bigdata/hadoop-2.7.5/etc/hadoop/

  1. 修改 core-site.xml 配置文件
    *vi core-site.xml
  2.  在master 中创建
    
    创建 NameNode 需要存储数据的文件目录
    mkdir -p ~/bigdata/dfs/name
    创建 DataNode 需要存放数据的文件目录
    mkdir -p ~/bigdata/dfs/data

core-site.xml 多台PC 需要一致
在 configuration 标签中添加如下的内容:

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://IP:9999</value><description>表示HDFS的基本路径</description>
</property>
  1. 修改 hdfs-site.xml 配置文件

     <property>
         <name>dfs.replication</name> 
          <value>1</value>
     	 <description>表示数据块的备份数量,不能大于DataNode的数量</description>
     </property>
     <property>
         <name>dfs.namenode.name.dir</name>
         <value>/home/use.../bigdata/hadoop-2.10.2/dfs/name</value>
         <description>表示 NameNode 需要存储数据的文件目录</description>
     </property>
     <property>
         <name>dfs.datanode.data.dir</name>
         <value>/home/use.../bigdata/hadoop-2.10.2/dfs/data</value>
         <description>表示 DataNode 需要存放数据的文件目录</description>
     </property>
    
  2. 修改 slaves 文件

     执行下面的命令将 slaves 的机器名字填入到 slaves 文件中:
     删除文件中 localhost ,然后添加如下内容:
     每台pc ip地址
    
  3. 配置 Hadoop 依赖的 JAVA_HOME

     修改配置 hadoop-env.sh :
     
     vi hadoop-env.sh
     
     export JAVA_HOME=/usr/local/lib/jdk1.8.0_161
    
  4. 拷贝配置到 slave1 和 slave2 上

      dfs 文件夹与  <name>dfs.namenode.name.dir</name>   有对应关系
     
     在 master 机器中执行如下的命令
    
     将 NameNode 存储的文件目录以及 DataNode 存储的文件目录拷贝到 slave1 和 slave2 中
     scp -r ~/bigdata/dfs root@ip:~/bigdata
     scp -r ~/bigdata/dfs root@ip:~/bigdata
     
     
     ## 将在 master 中配置好的 hadoop 安装目录拷贝到 slave1 和 slave2 中
     scp -r ~/bigdata/hadoop-2.10.2 root@ip:~/bigdata
     scp -r ~/bigdata/hadoop-2.10.2 root@ip:~/bigdata
    
  5. 配置环境变量
    在 master 机器上执行下面的命令,配置 hadoop 的环境变量:

     vi ~/.bash_profile
    

    添加如下的内容:

     export HADOOP_HOME=~/bigdata/hadoop-2.7.5
     PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    然后执行下面的命令,使得环境变量生效:
    source ~/.bash_profile

  6. 启动验证

    到目前为止,HDFS 的配置已经全部结束,接下来我们启动 HDFS 集群,并且验证。
    第一次启动 HDFS 之前,需要先对集群做格式化处理,执行下面的命令:

     ## 格式化 HDFS 集群的 namenode
     hdfs namenode -format
    

    接下来我们在 master 节点中执行下面的命令来启动 HDFS 集群:

     start-dfs.sh
    

    我们分别在 master 、slave1、slave2 机器上执行 jps 命令,如果能看到如下的进程,说明机器成功启动:

     master :
     27376 DataNode
     27666 SecondaryNameNode
     28515 Jps
     27128 NameNode
     
     slave1:
     23861 Jps
     24925 DataNode
    
  7. 停止 HDFS 集群

遇到问题
  • 1 无法http://meater/dfshealth.html 中显示 其他datenode 节点

      WARN org.apache.hadoop.hdfs.server.datanode.datanode:寄存器中出现远程异常
      org.apache.hadop.ipc.RemoteException(org.apache.hdop.hdfs.server.procol.DisabledDatanodeException):数据节点拒绝与namenode通信,因为无法解析主机名
    
    • 解决方法
      在 hdfs-site.xml 配置文件最加

        <property>
         <name>dfs.namenode.datanode.registration.ip-hostname-check</name>
         <value>false</value>
        </property>
      
  • 2 shh 问题
    如果在没有密码的情况下无法 ssh 到 localhost,请执行以下命令:

      	  $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
      	  $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
      	  $ chmod 0600 ~/.ssh/authorized_keys
    

    在其他pc:slave1中 添加 密钥
    pc: ~/.ssh/konwn_hosts 中

      ip地址 <空格> ssh-rsa <空格> 密钥信息 
    

Yarn 配置安装

  1. 创建 Yarn 存储临时数据的文件目录
    在 master 机器上执行如下命令:

     mkdir -p ~/bigdata/yarn/local-dir
    
  2. 修改 yarn-site.xml 配置文件
    在 master 机器上执行如下的命令来修改 yarn-site.xml 文件:

     cd ~/bigdata/hadoop-2.7.5/etc/hadoop/
     
     vi yarn-site.xml
    

在文件中的 configuration 标签中增加如下的内容:

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>IP0.0.0.0</value>
    <description>表示ResourceManager安装的主机</description>
</property>
<property>
    <name>yarn.resourcemanager.address</name>
    <value>IP0.0.0.0:8032</value>
    <description>表示ResourceManager监听的端口</description>
</property>
<property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/home/mtk21275/bigdata/hadoop-2.10.2/yarn/local-dir</value>
    <description>表示nodeManager中间数据存放的地方</description>
</property>
<property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>1630</value>
   <description>表示这个NodeManager管理的内存大小</description>
</property>
<property>
    <name>yarn.nodemanager.resource.cpu-vcores</name>
        <value>1</value>
   <description>表示这个NodeManager管理的cpu个数</description>
</property>

拷贝 yarn 相关配置到 slave1 和 slave2 中
在 master 机器上执行如下的命令:

sudo scp -r /home/mtk21275/bigdata/hadoop-2.10.2/etc/hadoop/yarn-site.xml mtk21275@ip:/home/mtk21275/bigdata/hadoop-2.10.2/etc/hadoop/yarn-site.xml 


sudo scp -r /home/mtk21275/bigdata/yarn/local-dir mtk21275@ip:/home/mtk21275/bigdata/yarn/local-dir
  1. 启动验证
    在 master 机器上执行下面的命令,来启动 yarn :

     start-yarn.sh
     
     主:
     21500 ResourceManager
     12429 NameNode
     12973 SecondaryNameNode
     12671 DataNode
     从:
     9845 NodeManager
     26810 DataNode
    

Yarn 集群 : http://master_IP:8088/cluster

Yarn slave1 信息:http://slave1_ip:8042

  1. 停止 Yarn 集群
    我们可以在 master 机器上执行下面的命令来停止 Yarn 集群:

stop-yarn.sh

问题:
  • 1 .slave1 无法正常启动 9845 NodeManager

    yarn-site.xml 添加

         <property>
             <name>yarn.nodemanager.pmem-check-enabled</name>
             <value>false</value>
         </property>
         <property>
             <name>yarn.nodemanager.vmem-check-enabled</name>
             <value>false</value>
         </property>
    
  • 2 问题:
    == throws java.lang.ClassFormatError accessible: module java.base does not “opens java.lang” to unnamed module ==

     cd /home/mtk21275/bigdata/hadoop-2.10.2/etc/hadoop/
     vim yarn-env.sh 
     追加:
     export YARN_RESOURCEMANAGER_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"
     export YARN_NODEMANAGER_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"
    

MapReduce 配置安装

在安装 MapReduce 之前,需要先保证 Yarn 集群是停止的,可以通过执行 stop-yarn.sh 来完成。

  1. 修改 yarn-site.xml 配置
    在 master 机器上修改 yarn-site.xml 文件:

     cd ~/bigdata/hadoop-2.7.5/etc/hadoop/
     vi yarn-site.xml
    

添加一个配置项:

	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	    <description>为map reduce应用打开shuffle 服务</description>
	</property>

resource-types.xml 设置

	<?xml version="1.0"?>
	<configuration>
	  <resource-types>
	    <resource-type>
	      <name>memory</name>
	      <units>M</units>
	      <type-count>MEMORY</type-count>
	    </resource-type>
	    <resource-type>
	      <name>virtual-cores</name>
	      <units>VCores</units>
	      <type-count>VCORES</type-count>
	    </resource-type>
	  </resource-types>
	  <scheduler>
	    <allocation>
	      <type>memory</type>
	      <default-unit>M</default-unit>
	      <value>4096</value>
	    </allocation>
	    <allocation>
	      <type>virtual-cores</type>
	      <default-unit>VCores</default-unit>
	      <value>1</value>
	    </allocation>
	  </scheduler>
	</configuration>

在安装 MapReduce 之前,需要先保证 Yarn 集群是停止的,可以通过执行 stop-yarn.sh 来完成。

  1. 修改 yarn-site.xml 配置
    在 master 机器上修改 yarn-site.xml 文件:

     cd ~/bigdata/hadoop-2.7.5/etc/hadoop/
     vi yarn-site.xml
    

添加一个配置项:

	<property>
		<name>yarn.nodemanager.aux-services</name>
		<value>mapreduce_shuffle</value>
	    <description>为map reduce应用打开shuffle 服务</description>
	</property>
  1. 修改 mapred-site.xml 配置
    在 master 机器上执行如下的命令:

     ## 创建 mapred-site.xml 文件
     cp mapred-site.xml.template mapred-site.xml
     
     <property>
         <name>mapreduce.framework.name</name>
         <value>yarn</value>
         <description>向yarn申请资源</description>
     </property>
    
  2. 将 MapReduce 相关的配置文件同步到 slave1 和 slave2 上
    在 master 中执行下面的命令:

     scp yarn-site.xml mapred-site.xml root@slave1:~/bigdata/hadoop-2.7.5/etc/hadoop
     scp yarn-site.xml mapred-site.xml root@slave2:~/bigdata/hadoop-2.7.5/etc/hadoop
    
  3. 启动 yarn
    在 master 机器上执行下面的命令

    start-yarn.sh

  4. 验证 MapReduce
    在 master 上执行下面的命令:

登录后复制

准备目录和数据

hadoop fs -mkdir /input
hadoop fs -put bigdata/hadoop-2.7.5/etc/hadoop /input
hadoop fs -rm -r /input

执行 MapReduce 任务

	hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar grep /input/hadoop /input 'dfs[a-z.]+'

如何杀死hadoop作业
不推荐使用以下命令

	hadoop job -list
	hadoop job -kill $jobId
	考虑使用
	
	mapred job -list
	mapred job -kill $jobId

web 报错:

  1. == 启动hadoop集群DataNode不显示 ==
    删除 /bigdata/hadoop-2.10.2/dfs/data/current/
    VERSION 文件

  2. web Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Internal Server Error
    java 版本问题 下载

  3. Permission denied: user=dr.who, access=WRITE, inode=“/”:mtk21275:supergroup:drwxr-xr-x

     1)修改hdfs-site.xml,追加dfs.permissions配置。如果是true,则打开权限检查系统;如果是false,权限检查就是关闭的。
     <property>
         <name>dfs.permissions.enabled</name>
         <value>false</value>
     </property>
    
    
    
     追加dfs.permissions配置。如果是true,则打开权限检查系统;如果是false,权限检查就是关闭的。
     2)修改权限,用hadoop增加写的权限,hadoop fs -chmod -R 777 /
     
     777权限即为UGO都为可读可写可执行。
     
     切换到你的虚拟机界面
     
     命令如下:
    

hadoop fs -chmod -R 777 /

MapReduce

hadoop fs -put /home/mtk21275/bigdata/hadoop-2.10.2/etc/hadoop /input

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.2.jar grep /input/hadoop /input文章来源地址https://www.toymoban.com/news/detail-730255.html

到了这里,关于Hadoop HDFS 安装详细步骤的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 大数据技术之Hadoop(HDFS)

    大数据技术之Hadoop(HDFS)

    1)HDFS产生背景 随着数据量越来越大,在一个操作系统存不下所有的数据,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,迫切需要一种系统来管理多台机器上的文件,这就是 分布式文件管理系统 。HDFS只是分布式文件管理系统中的一种。 2)HDFS定义

    2024年02月04日
    浏览(12)
  • Hadoop理论及实践-HDFS读写数据流程(参考Hadoop官网)

    Hadoop理论及实践-HDFS读写数据流程(参考Hadoop官网)

    主节点和副本节点通常指的是Hadoop分布式文件系统(HDFS)中的NameNode和DataNode。 NameNode(主节点):NameNode是Hadoop集群中的一个核心组件,它负责管理文件系统的命名空间和元数据。它记录了文件的目录结构、文件的块分配信息以及每个文件块所在的DataNode等关键信息。NameNo

    2024年02月14日
    浏览(8)
  • 尚硅谷大数据技术Hadoop教程-笔记03【Hadoop-HDFS】

    尚硅谷大数据技术Hadoop教程-笔记03【Hadoop-HDFS】

    视频地址: 尚硅谷大数据Hadoop教程(Hadoop 3.x安装搭建到集群调优) 尚硅谷大数据技术Hadoop教程-笔记01【大数据概论】 尚硅谷大数据技术Hadoop教程-笔记02【Hadoop-入门】 尚硅谷大数据技术Hadoop教程-笔记03【Hadoop-HDFS】 尚硅谷大数据技术Hadoop教程-笔记04【Hadoop-MapReduce】 尚硅谷

    2023年04月08日
    浏览(12)
  • 0201hdfs集群部署-hadoop-大数据学习

    0201hdfs集群部署-hadoop-大数据学习

    下面我们配置下单namenode节点hadoop集群,使用vmware虚拟机环境搭建。vmware虚拟机的配置,在下面链接2有,或者自行查阅文档。hadoop安装包可到官网下载,当前相关软件环境如下: 软件 版本 说明 hadoop 3.3.4 jar包 vmware 15.5 虚拟机 centos 7.6 服务器操作系统 xshell 6 远程连接 jdk 1.8

    2024年02月11日
    浏览(25)
  • HDFS 跨集群数据同步(hive,hadoop)

    两个不同的HDFS 集群数据迁移( A集群的数据 - B 集群) 采用的是 SHELL 脚本  按表进行; 日期分区进行; #!/bin/bash ##################### #创建人:DZH #创建日期: 2020-04 #内容: 数据迁移 ##################### ##################################### [ \\\"$#\\\" -ne 0 ] FILE=$1 path=$(cd `dirname $0`; pwd) ############## 获取执

    2024年04月27日
    浏览(48)
  • 部署HDFS集群(完全分布式模式、hadoop用户控制集群、hadoop-3.3.4+安装包)

    部署HDFS集群(完全分布式模式、hadoop用户控制集群、hadoop-3.3.4+安装包)

    目录 前置 一、上传解压 (一 )上传 (二)解压 二、修改配置文件 (一)配置workers文件 (二)配置hadoop-env.sh文件 (三)配置core-site.xml文件 (四)配置hdfs-site.xml文件 三、分发到hp2、hp3, 并设置环境变量 (一)准备数据目录    (二)配置环境变量 四、创建数据目录,并

    2024年04月14日
    浏览(17)
  • Hadoop HDFS:海量数据的存储解决方案

    在大数据时代,数据的存储与处理成为了业界面临的一大挑战。Hadoop的分布式文件系统(Hadoop Distributed File System,简称HDFS)作为一个高可靠性、高扩展性的文件系统,提供了处理海量数据的有效解决方案。本文将深入探讨HDFS的设计原理、架构组成、核心功能以及实际应用场

    2024年04月23日
    浏览(10)
  • hadoop之hdfs生产数据块损坏修复方法

    1、手动修复 检查数据块丢失情况 hdfs fsck / 修复指定路径的hdfs文件,尝试多次 hdfs debug recoverLease -path 文件位置 -retries 重复次数 删除所有损坏的块的数据文件 hdfs fsck / -delete 2、自动修复 hdfs会自动修复损坏的数据块,当数据块损坏后, DN节点执行directoryscan(datanode进行内村和

    2023年04月11日
    浏览(13)
  • Hadoop大数据技术-通过shell命令访问HDFS

    Hadoop大数据技术-通过shell命令访问HDFS

    HDFS shell大致可以分为操作命令、管理命令、其他命令三类。 注意:当命令以“$”开头时,当前用户为普通用户;以“#”开头时,当前用户为root用户。 操作命令是以“ hdfs dfs ”开头的命令,用户可以通过执行这些命令,完成对文件的查找、上传、删除等操作。 [-p]:表示如

    2023年04月11日
    浏览(10)
  • 大数据技术之Hadoop:HDFS存储原理篇(五)

    大数据技术之Hadoop:HDFS存储原理篇(五)

    目录 一、原理介绍 1.1 Block块 1.2 副本机制 二、fsck命令 2.1 设置默认副本数量 2.2 临时设置文件副本大小 2.3 fsck命令检查文件的副本数 2.4 block块大小的配置 三、NameNode元数据 3.1 NameNode作用 3.2 edits文件 3.3 FSImage文件 3.4 元素据合并控制参数 3.5 SecondaryNameNode的作用 四、HDFS的读

    2024年02月09日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包