ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hadoop 2.4.0完全分布式安装和解决一些问题

2021-06-28 20:32:21  阅读:156  来源: 互联网

标签:xml hadoop Hadoop usr HOME 2.4 local HADOOP 分布式


参考https://blog.csdn.net/qq_43605654/article/details/90746563
参考https://blog.csdn.net/weixin_50198333/article/details/108768630

三台机器配置环境

前期准备:

  • JDK环境,修改主机名称,配置网络
  • 三个ssh相互之间免密码登陆的虚拟机node1,node2,node3.
  • 修改/etc/hosts文件

安装

三台虚拟机将hadoop2.4.0解压到/usr/local中。改名

mv hadoop2.4.0 hadoop

三台机器配置环境变量

三台虚拟机修改/etc/profile,这里写出hadoop和yarn的日志路径,hadoop脚本会读取到相应变量。

openjdk的默认安装路径/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64

环境变量:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_LOG_DIR=$HADOOP_HOME/logs
export YARN_LOG_DIR=$HADOOP_LOG_DIR
export ZOOKEEPER_HOME=/usr/local/zookeeper
export KAFKA_HOME=/usr/local/kafka
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$KAFKA_HOME/bin:$ZOOKEEPER_HOME/bin
source /etc/profile

三台机器创建目录

mkdir /usr/local/hadoop/tmp              用来存放临时文件

mkdir /usr/local/hadoop/logs             用来存放日志文件

mkdir /usr/local/hadoop/hdfs             用来存储集群数据

mkdir /usr/local/hadoop/name   			用来存储文件系统元数据

mkdir /usr/local/hadoop/data     		用来存储真正的数据

三台机器修改JAVA_HOME的值

进入hadoop解压后的目录下,找到两个.sh文件,修改JAVA_HOME的值,虽然有的时候可以读出来变量,但是还是写死,防止出错。

cd /usr/local/hadoop/etc/hadoop

vi hadoop-env.sh

在这里插入图片描述

vi yarn-env.sh

在这里插入图片描述

报no namenode to stop等问题

为了以防万一,三台机器安装就修改。

1.问题描述

长时间启动hadoop后,使用stop-all.sh停止时报 no namenode to stop,但jps显示namenode 确实存在

2.造成原因

hadoop默认配置是将namenode,datanode等相关进程的pid存放在/tmp目录下,但linux会定期清理/tmp目录,所以pid信息丢失,导致出现该问题

3.解决方法

修改/usr/local/hadoop/etc/hadoop/hadoop-env.sh文件中的HADOOP_PID_DIR

在这里插入图片描述

三台机器修改核心配置文件

vi /usr/local/hadoop/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
 
<property>
 
    <name>fs.defaultFS</name>
 
    <value>hdfs://node1:9000</value>
 
    <description>HDFS的URI</description>
 
</property>
 
<property>
 
    <name>hadoop.tmp.dir</name>
 
    <value>/usr/local/hadoop/tmp</value>
 
    <description>节点上本地的hadoop临时文件夹</description>
 
</property>
</configuration>

在这里插入图片描述
输入 cp mapred-site.xml.template mapred-site.xml 将mapred-site.xml.template文件复制到当前目录,并重命名为mapred-site.xml

vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
<property>
 
    <name>mapreduce.framework.name</name>
 
    <value>yarn</value>
 
    <description>指定mapreduce使用yarn框架</description>
 
</property>

在这里插入图片描述

vi yarn-site.xml

在配置标签中添加

<property>
 
        <name>yarn.resourcemanager.hostname</name>
 
        <value>master</value>
 
<description>指定resourcemanager所在的hostname</description>
 
</property>
 
<property>
 
        <name>yarn.nodemanager.aux-services</name>
 
        <value>mapreduce_shuffle</value>
 
        <description>NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行 MapReduce程序</description>
 
</property>

在这里插入图片描述

vi slaves

删除localhost,改为datanode的主机名
在这里插入图片描述

格式化hdfs

在master机器上输入 hdfs namenode -format 格式化namenode。

第一次使用需格式化一次,之后就不用再格式化,如果修改了一些配置文件,则需要重新格式化。(由于配置了环境变量任意位置执行都可以)

hdfs namenode -format

启动hadoop

start-all.sh

在这里插入图片描述

使用jps查看每个节点的进程

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

用web端查看节点信息

在浏览器打开master:8088(hadoop管理)或master:50070(hdfs管理)
在这里插入图片描述

关闭集群

stop-all.sh

标签:xml,hadoop,Hadoop,usr,HOME,2.4,local,HADOOP,分布式
来源: https://blog.csdn.net/liutao43/article/details/118282904

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有