centos7 搭建Hadoop3.0.3完全分布式

2023-11-18

第一步:服务器规划

IP地址 主机名称 nameNode dataNode
192.168.60.201 master
192.168.60.200 node1

 

第二步:基于依赖环境准备

1、centos7 搭建JDK8

                 参考文章地址:https://blog.csdn.net/zhouzhiwengang/article/details/87882197

2、centos7 查看防火墙状态,如果启动防火墙,则关闭防火墙

systemctl status firewalld.service   # 查询防火墙状态(active :激活状态,disable:关闭状态)

systemctl stop firewalld.service      # 关闭防火墙

systemctl disable firewalld.service      # 禁用防火墙

3、输入mkdir /usr/local/hadoop   创建一个hadoop文件夹

4、将hadoop-3.0.3.tar.gz放到刚创建好的hadoop文件夹中

5、进入hadoop目录,输入tar -xvf hadoop-3.0.3.tar.gz 解压tar包

[root@master sbin]# cd /usr/local/hadoop/
[root@master hadoop]# ls
hadoop-3.0.3  hadoop-3.0.3.tar.gz 

6、输入 vi /etc/profile,配置环境变量。加入如如下内容

export HADOOP_HOME=/usr/local/hadoop/hadoop-3.0.3

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin

7、 输入 souce /etc/profile ,使环境变量改动生效

8、任意目录输入hado,然后按Tab,如果自动补全为hadoop,则说明环境变量配的没问题,否则检查环境变量哪出错了

[root@master ~]# hadoop

9、创建三个之后要用到的文件夹,分别如下: 

mkdir /usr/local/hadoop/tmp

mkdir -p /usr/local/hadoop/hdfs/name

mkdir /usr/local/hadoop/hdfs/data

创建结果如下:

10、进入hadoop-3.0.3解压后的 /etc/hadoop 目录,里面存放的是hadoop的配置文件,接下来要修改里面一些配置文件

11、有两个 .sh 文件,需要指定一下java的目录,首先输入 vi hadoop-env.sh 修改配置文件

[root@master hadoop]# vi hadoop-env.sh

将原有的JAVA_HOME注释掉,根据自己的JDK安装位置,精确配置JAVA_HOME如下,保存并退出

export JAVA_HOME=/usr/local/java/jdk1.8.0_181-amd64/

12、输入 vi yarn-env.sh 修改配置文件

[root@master hadoop]# vi yarn-env.sh

加入如下内容,指定JAVA_HOME,保存并退出

export JAVA_HOME=/usr/local/java/jdk1.8.0_181-amd64/

13、 输入 vi core-site.xml 修改配置文件

[root@master hadoop]# vi core-site.xml 

在configuration标签中,添加如下内容,保存并退出,注意这里配置的hdfs:master:9000是不能在浏览器访问的

<?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://master:9000</value>
                <description>HDFS的URI</description>
        </property>

        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>节点上本地的hadoop临时文件夹</description>
        </property>
</configuration>

14、输入 vi hdfs-site.xml 修改配置文件

[root@master hadoop]# vi hdfs-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>dfs.namenode.http-address</name>
                <value>master:50070</value>
        </property>
        <!--
        <property>
                <name>dfs.datanode.http.address</name>
                <value>master:50075</value>
                <description>
                The datanode http server address and port.
                If the port is 0 then the server will start on a free port.
                </description>
        </property>
        -->
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/hdfs/name</value>
                <description>namenode上存储hdfs名字空间元数据 </description>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/hdfs/data</value>
                <description>datanode上数据块的物理存储位置</description>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
                <description>副本个数,默认是3,应小于datanode机器数量</description>
        </property>
</configuration>

15、输入 vi mapred-site.xml 修改配置文件

[root@master hadoop]# vi mapred-site.xml

<?xml version="1.0"?>
<?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>mapreduce.framework.name</name>
                <value>yarn</value>
                <description>指定mapreduce使用yarn框架</description>
        </property>
</configuration>
~                    

16、输入vi yarn-site.xml 修改配置文件

[root@master hadoop]# vi yarn-site.xml

在configuration标签中,添加如下内容,保存并退出

<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>

17、输入 vi workers 修改配置文件(老版本是slaves文件,3.0.3 用 workers 文件代替 slaves 文件)

[root@master hadoop]# pwd
/usr/local/hadoop/hadoop-3.0.3/etc/hadoop
[root@master hadoop]# vi workers 

将localhost删掉,加入如下内容,即dataNode节点的主机名

node1

18、 将虚拟机关闭,再复制一份虚拟机,重命名为node1,注意这里一定要关闭虚拟机,再复制

19、将2台虚拟机都打开,后一台复制的虚拟机打开时,都选择“我已复制该虚拟机”

20、修改centos7主机名称

        参考文章:https://blog.csdn.net/zhouzhiwengang/article/details/93597019

21、在二台机器分别输入 vi /etc/hosts 修改文件,其作用是将一些常用的网址域名与其对应的IP地址建立一个关联,当用户在访问网址时,系统会首先自动从Hosts文件中寻找对应的IP地址

二个文件中都加入如下内容,保存并退出,注意这里要根据自己实际IP和节点主机名进行更改,IP和主机名中间要有一个空格

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.60.201 master
192.168.60.200 node1

22、配置二台机器间的免密登录ssh 

        参考文章地址:https://blog.csdn.net/zhouzhiwengang/article/details/93602224

23、如果node节点还没有hadoop,则master机器上分别输入如下命令将hadoop复制

scp /usr/local/hadoop/* root@node1:/usr/local/hadoop

24、在master机器上,任意目录输入 hdfs namenode -format 格式化namenode,第一次使用需格式化一次,之后就不用再格式化,如果改一些配置文件了,可能还需要再次格式化

hdfs namenode -format

25、在master机器上,进入hadoop的sbin目录,输入 ./start-all.sh 启动hadoop(若只配了hdfs,则可以 输入 ./start-dfs.sh 启动hdfs)

[root@master sbin]# ./start-dfs.sh 

26、输入jps查看当前java的进程,

该命令是JDK1.5开始有的,作用是列出当前java进程的PID和Java主类名,nameNode节点除了JPS,还有3个进程,启动成功

27、在node1机器输入 jps 查看进程如下,说明配置成功

28、在浏览器访问nameNode节点的8088端口和50070端口可以查看hadoop的运行状况、

29、 在master机器上,进入hadoop的sbin目录,输入 ./stop-all.sh 关闭hadoop 或 输入 ./stop-dfs.sh 关闭dfs

 

遇到的问题:Attempting to operate on hdfs namenode as root

写在最前注意:
1、master,slave都需要修改start-dfs.sh,stop-dfs.sh,start-yarn.sh,stop-yarn.sh四个文件
2、如果你的Hadoop是另外启用其它用户来启动,记得将root改为对应用户

HDFS格式化后启动dfs出现以下错误:

[root@master sbin]# ./start-dfs.sh
Starting namenodes on [master]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [slave1]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.

在/usr/local/hadoop/hadoop-3.0.3/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数:

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
修改后重启 ./start-dfs.sh,成功

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

centos7 搭建Hadoop3.0.3完全分布式 的相关文章

随机推荐

  • 去除快捷方式箭头BAT脚本

    去除快捷方式箭头BAT脚本 1 脚本功能 去除window电脑桌面图标右下角的快捷方式小箭头 对于强迫症患者绝对是福音 总之清除了之后非常的舒畅 2 脚本内容 echo off color 2 reg delete HKCR lnkfile
  • Knowledge Distillation and Student-Teacher Learning for Visual Intelligence

    本文是蒸馏学习综述系列的第四篇文章 Knowledge Distillation and Student Teacher Learning for Visual Intelligence A Review and New Outlooks的
  • C89和C99标准比较

    1 增加restrict指针 C99中增加了公适用于指针的restrict类型修饰符 它是初始访问指针所指对象的惟一途径 因此只有借助restrict指针表达式才能访问对象 restrict指针指针主要用做函数变元 或者指向由malloc
  • PAT B 1055 集体照(C语言)

    一 题目 拍集体照时队形很重要 这里对给定的 N 个人 K 排的队形设计排队规则如下 每排人数为 N K 向下取整 多出来的人全部站在最后一排 后排所有人的个子都不比前排任何人矮 每排中最高者站中间 中间位置为 m 2 1 其中 m 为该排
  • 设备退出:“设备正在使用”的快速解决办法

    我们常常遇到U盘或移动硬盘显示因为 设备正在使用 而无法拔出的情况 如果冒然拔出 可能会造成数据丢失或损坏设备的情况 现在提供一个可以快速解决的办法 步骤一 win r 打开cmd命令命令面板 步骤二 输入diskpart 进入磁盘分区管理
  • android手机拍摄权限,react-native 手机拍照权限

    第一步 在 android app src main AndroidManifest xml 添加 然后运行项目在手机应用权限哪里查看 这是添加前的 这是添加后的 第二步调用 import React Component from reac
  • Vuforia的各种Target的简单介绍(包括地面识别)

    Vuforia的各种Target的简单介绍 包括地面识别 前言 Vuforia的两种识别分类 1 需要特定目标的识别 2 不需要特定目标的识别 上边两种的优缺点 基于优缺点进行的阿应用场景推荐 需要目标的类型 上传你的目标到服务器 不需要目
  • Android UI-开源框架ImageLoader的完美例子

    android layout gravity left center vertical android layout marginLeft 20dip android textSize 22sp gt GridView异步加载图片显示 20
  • Android APK反编译 最新版 解决Could not decode arsc file

    本人小白 初学Android 这不想着找点成熟的app看看 学习一下 就找到反编译了 拜读各位前辈大神的文章 弄啊弄 总是出现 Could not decode arsc file 的错误 擦擦 愁人啊 百度不行 就Google 捯饬啊捯饬
  • Ubuntu 安装与使用 Visual Studio Code

    1 Visual Studio Code简介 1 1 什么是Visual Studio Code Visual Studio Code是微软推出的一个运行于 Mac OS X Windows和 Linux 之上的 针对于编写现代 Web 和
  • 服务计算:简单的web程序

    CloudGo 框架选择 看了go的一些框架如beego和iris觉得挺好的 本来想用 但是虚拟机出了点问题装不成 windows上装成了没ab指令 所以使用官方的net http库做简单的实验 看完beego和iris的特性我还是比较想用
  • Linux下yum安装dstat,安装配置整理之 dstat

    tech163 usr local download dstat help Usage dstat afv options delay count Versatile tool for generating system resource
  • 菜鸡面试遇到有印象的问题(LINUX下内核如何管理内存)

    目录 写在文章的前面 本人C C 面试岗位 学艺不精 研究生做的与代码无关的工作 仅记录每次面试遇到的问题勉励自己 一 x86下的物理地址空间布局 二 linux虚拟地址内核空间分布 三 linux虚拟地址用户空间分布 1 page 页 2
  • 通过tableExport.js插件导出jqgrid表格数据

    通过tableExport js插件导出jqgrid表格数据 提前说 没有实现导出pdf png和ppt 实现了导出 JSON XML CSV TXT SQL MS Word Ms Excel 代码实例 包含改进的tableExport j
  • MySQL建表设置默认值取值范围

    一 设置默认值 设置默认值采用default 如代码所示 二 设置取值范围 设置取值范围采用check 如代码所示 create table student id int not null primary key auto incremen
  • java项目自动化单元测试

    对于我们开发人员来说 单元测试一定不会陌生 但在各种原因下会被忽视 尤其是在我接触到的项目中 提测阶段发现各种各样的问题 我觉得有必要聊一下单元测试 为了写而写的单元测试没什么价值 但一个好的单元测试带来的收益是非常客观的 问题是怎么去写好
  • CVAT标注工具的部署步骤详解

    简介 CVAT Computer Vision Annotation Tool 此标注工具是用于机器视觉数据标注的在线标注工具 以网页形式标注 能够生成多种数据标注格式基本涵盖了市面上百分之九十以上格式 此工具也有自己的标注格式 此工具的优
  • Canvas 详解

    HTML 5 Canvas 参考手册
  • ES6语法知识点

    目录 let const 常用 暂时性死区 const 建议 箭头函数 常用 建议 iterator迭代器 解构赋值 常用 建议 剩余 扩展运算符 常用 扩展运算符 剩余运算符 在对象中使用扩展运算符 建议 对象属性 方法简写 常用 对象属
  • centos7 搭建Hadoop3.0.3完全分布式

    第一步 服务器规划 IP地址 主机名称 nameNode dataNode 192 168 60 201 master 是 否 192 168 60 200 node1 否 是 第二步 基于依赖环境准备 1 centos7 搭建JDK8 参