阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.7安装Hadoop 2.7.2

398次阅读
没有评论

共计 10628 个字符,预计需要花费 27 分钟才能阅读完成。

用 VMware 虚拟机创建两个虚拟机,分别作为此次实验的 master 节点(主机)、slave 节点(从机)。

  • 先新建一个内存为 2G、硬盘占用为 30G、CetnOS 6.7 64 位的虚拟机(master),选择 NAT 网络模式(之前尝试过 Bridged、Host-Only 模式,感觉还是 NAT 模式方便快捷,这也是虚拟机默认的网络模式)。测试网络没问题后,克隆 master 机器,并将其命名为 slave。
主机名 IP 地址
master 192.168.229.130
slave 192.168.229.131

设置 hosts、hostname

master

[root@localhost ~]# vi /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

内容修改为

127.0.0.1  localhost
192.168.229.130 master
192.168.229.131 slave

保存退出

[root@localhost ~]# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=localhost.localdomain

内容修改为

NETWORKING=yes
HOSTNAME=master

保存退出

slave

[root@localhost ~]# vi /etc/hosts

127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4
::1        localhost localhost.localdomain localhost6 localhost6.localdomain6

内容修改为

127.0.0.1  localhost
192.168.229.130 master
192.168.229.131 slave

保存退出

[root@localhost ~]# vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=localhost.localdomain

内容修改为

NETWORKING=yes
HOSTNAME=slave

保存退出

可用 hostname your-hostname 命令作临时修改,但它只是临时地修改主机名,系统重启后会恢复原样的。但修改上面的文件是永久的,重启系统会得到新的主机名。因此,修改后需要重启虚拟机。

关闭 selinux

master

[root@master ~]# vim /etc/selinux/config

修改

SELINUX=enforcing

SELINUX=disabled

保存退出,重启


关闭 firewall

CentOS 上默认是设有 iptables 规则的

master

[root@master ~]# iptables -F; /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[OK  ]

重启系统后,通过 iptables -nvL 命令可查看规则已清除

slave

[root@slave ~]# iptables -F; /etc/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[OK  ]

-nvL 就是查看规则。-F 是把当前规则清除,但这个只是临时的,重启系统或者重启 iptalbes 服务后还会加载已经保存的规则,所以需要使用 /etc/init.d/iptables save 保存一下规则,通过上边的命令输出我们也可以看到,防火墙规则保存在了/etc/sysconfig/iptables

免密钥登录配置

master

[root@master ~]# ssh-keygen

一直回车

  • 运行结束后,/root/.ssh目录下,会新生成两个文件:id_rsaid_rsa.pub。前者是私钥,后者是公钥。
[root@master ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@master ~]# scp ~/.ssh/authorized_keys slave:~/.ssh/

slave

[root@slave ~]# ls .ssh/
authorized_keys

master

[root@master ~]# ssh slave
[root@slave ~]# exit
[root@master ~]#
  • 测试从 master 免密钥登录到 slave,第一次会需要输入 yes 继续连接

安装 JDK

检查是否已安装正确版本的 JDK

# Java -version

如果没有安装正确版本的 JDK,先卸载自带的 JDK,再安装

master

  • 下载前,需要在官网点击接受许可证,之后获取链接
[root@master ~]# wget http://download.Oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-x64.tar.gz?AuthParam=1480051498_4f2fdb0325a457f4c7d33a69355b3560

 

[root@master ~]# mv jdk-7u79-linux-x64.tar.gz\?AuthParam\=1480051498_4f2fdb0325a457f4c7d33a69355b3560  jdk-7u79-linux-x64.tar.gz
[root@master ~]# tar zxvf jdk-7u79-linux-x64.tar.gz
[root@master ~]# mv jdk1.7.0_79 /usr/local/

JDK 环境变量

[root@master ~]# vi /etc/profile.d/java.sh

添加

export JAVA_HOME=/usr/local/jdk1.7.0_79
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
[root@master ~]# source /etc/profile.d/java.sh
[root@master ~]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

[root@master ~]# scp jdk-7u79-linux-x64.tar.gz slave:/root/
[root@master ~]# scp /etc/profile.d/java.sh slave:/etc/profile.d/

slave

[root@slave ~]# tar zxvf jdk-7u79-linux-x64.tar.gz
[root@slave ~]# mv jdk1.7.0_79 /usr/local/

JDK 环境变量

[root@slave ~]# source /etc/profile.d/java.sh
[root@slave ~]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

安装 Hadoop

master

[root@master ~]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
[root@master ~]# tar zxvf hadoop-2.7.2.tar.gz
[root@master ~]# mv hadoop-2.7.2 /usr/local/
[root@master ~]# ls /usr/local/
bin  games         include      lib    libexec  share  etc  hadoop-2.7.2  jdk1.7.0_79  lib64  sbin     src
[root@master ~]# ls /usr/local/hadoop-2.7.2/
bin  include  libexec      NOTICE.txt  sbin  etc  lib      LICENSE.txt  README.txt  share
[root@master ~]# mkdir /usr/local/hadoop-2.7.2/tmp /usr/local/hadoop-2.7.2/dfs /usr/local/hadoop-2.7.2/dfs/data /usr/local/hadoop-2.7.2/dfs/name
  • 目录/usr/local/hadoop-2.7.2/tmp,用来存储临时生成的文件
  • 目录/usr/local/hadoop-2.7.2/dfs,用来存储集群数据
  • 目录/usr/local/hadoop-2.7.2/dfs/data,用来存储真正的数据
  • 目录/usr/local/hadoop-2.7.2/dfs/name,用来存储文件系统元数据
[root@master ~]# ls /usr/local/hadoop-2.7.2/
bin  etc      lib      LICENSE.txt  README.txt  share  dfs  include  libexec  NOTICE.txt   sbin        tmp
[root@master ~]# rsync -av /usr/local/hadoop-2.7.2 slave:/usr/local

slave

[root@slave ~]# ls /usr/local/hadoop-2.7.2
bin  etc      lib      LICENSE.txt  README.txt  share  dfs  include  libexec  NOTICE.txt   sbin        tmp

配置 Hadoop

master

[root@master ~]# vi /usr/local/hadoop-2.7.2/etc/hadoop/core-site.xml

添加

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop-2.7.2/tmp</value>
    </property>
    <property>
        <name>io.file.buffer.size</name>
        <value>131072</value>
    </property>
</configuration>

保存退出

  • 变量 fs.defaultFS 保存了 NameNode 的位置,HDFS 和 MapReduce 组件都需要它。这就是它出现在 core-site.xml 文件中而不是 hdfs-site.xml 文件中的原因。

[root@master ~]# vi /usr/local/hadoop-2.7.2/etc/hadoop/hdfs-site.xml

添加

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop-2.7.2/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop-2.7.2/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
</configuration>

保存退出

  • 注意:变量 dfs.replication 指定了每个 HDFS 数据块的复制次数,即 HDFS 存储文件的副本个数,默认为 3,如果不修改,DataNode 少于 3 台就会报错。我的实验环境只有一台主机和一台从机(DataNode),所以值为 1。

[root@master ~]# mv /usr/local/hadoop-2.7.2/etc/hadoop/mapred-site.xml.template /usr/local/hadoop-2.7.2/etc/hadoop/mapred-site.xml
[root@master ~]# vi /usr/local/hadoop-2.7.2/etc/hadoop/mapred-site.xml

添加

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

保存退出


[root@master ~]# vi /usr/local/hadoop-2.7.2/etc/hadoop/yarn-site.xml

添加

<configuration>

<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>

</configuration>

保存退出


[root@master ~]# vi /usr/local/hadoop-2.7.2/etc/hadoop/hadoop-env.sh

修改

export JAVA_HOME=${JAVA_HOME}

export JAVA_HOME=/usr/local/jdk1.7.0_79

保存退出


[root@master ~]# vi /usr/local/hadoop-2.7.2/etc/hadoop/yarn-env.sh

修改

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

export JAVA_HOME=/usr/local/jdk1.7.0_79

保存退出


[root@master ~]# vi /usr/local/hadoop-2.7.2/etc/hadoop/mapred-env.sh

修改

# export JAVA_HOME=/home/y/libexec/jdk1.6.0/

export JAVA_HOME=/usr/local/jdk1.7.0_79

保存退出


[root@master ~]# vi /usr/local/hadoop-2.7.2/etc/hadoop/slaves

里面的内容

localhost

修改为

slave
  • 这个文件保存所有 slave 节点

[root@master ~]# rsync -av /usr/local/hadoop-2.7.2/etc/ slave:/usr/local/hadoop-2.7.2/etc/

Hadoop 环境变量

[root@master ~]# vi /etc/profile.d/hadoop.sh

添加

export HADOOP_HOME=/usr/local/hadoop-2.7.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

保存退出

[root@master ~]# source /etc/profile.d/hadoop.sh
[root@master ~]# hadoop version
Hadoop 2.7.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41
Compiled by jenkins on 2016-01-26T00:08Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /usr/local/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar

[root@master ~]# scp /etc/profile.d/hadoop.sh slave:/etc/profile.d/

slave

hadoop 环境变量

[root@slave ~]# source /etc/profile.d/hadoop.sh
[root@slave ~]# hadoop version
Hadoop 2.7.2
Subversion https://git-wip-us.apache.org/repos/asf/hadoop.git -r b165c4fe8a74265c792ce23f546c64604acf0e41
Compiled by jenkins on 2016-01-26T00:08Z
Compiled with protoc 2.5.0
From source with checksum d0fda26633fa762bff87ec759ebe689c
This command was run using /usr/local/hadoop-2.7.2/share/hadoop/common/hadoop-common-2.7.2.jar

运行 Hadoop

master

[root@master ~]# /usr/local/hadoop-2.7.2/bin/hdfs namenode -format
[root@master ~]# echo $?
0
  • 在执行格式化 -format 命令时,要避免 NameNode 的 namespace ID 与 DataNode 的 namespace ID 的不一致。这是因为每格式化一次就会产生 Name、Data、temp 等临时文件记录信息,多次格式化会产生很多的 Name、Data、temp,这样容易导致 ID 的不同,使 Hadoop 不能正常运行。每次执行格式化 -format 命令时,就需要将 DataNode 和 NameNode 上原来的 data、temp 文件删除。
  • 建议只执行一次格式化。格式化 NameNode 的命令可以执行多次,但是这样会使所有的现有文件系统数据受损。只有在 Hadoop 集群关闭和你想进行格式化的情况下,才能执行格式化。但是在其他大多数情况下,格式化操作会快速、不可恢复地删除 HDFS 上的所有数据。它在大型集群上的执行时间更长。

[root@master ~]# /usr/local/hadoop-2.7.2/sbin/start-all.sh
[root@master ~]# jps
5560 ResourceManager
5239 NameNode
5631 Jps
5415 SecondaryNameNode

slave

[root@slave ~]# jps
5231 DataNode
5444 Jps
5320 NodeManager

master

Web UI 查看集群是否成功启动:

  • 在浏览器地址栏中输入 master:50070,检查 namenode 和 datanode 是否正常。
  • 在浏览器地址栏中输入 master:8088,检查 Yarn 是否正常。

运行 PI 实例检查集群是否成功

[root@master ~]# cd /usr/local/hadoop-2.7.2/
[root@master hadoop-2.7.2]# bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar pi 10 10

最后输出运算的结果。

如果以上步骤都没有问题,说明集群正常启动。


停止服务(关机前,要停止 Hadoop 集群)

[root@master ~]# /usr/local/hadoop-2.7.2/sbin/stop-all.sh

Active Nodes 显示为 0

解决方案:

每台机器上(master、slave)的 /etc/hosts 文件都修改为:

127.0.0.1   localhost 
192.168.229.130 master
192.168.229.131 slave

之前文件里有其他内容,删除之后,先停止服务再启动,Active Nodes 显示为 1。

copyFromLocal: Cannot create directory /123/. Name node is in safe mode

如果提示 copyFromLocal: Cannot create directory /123/. Name node is in safe mode.,这是因为开启了安全模式

解决方法:

[root@master ~]# /usr/local/hadoop-2.7.2/bin/hdfs dfsadmin -safemode leave

  • 安全模式(safe mode)

作为一种附加的保护措施,NameNode 进程会将 HDFS 文件系统保持在只读模式下,直到它确认 DataNode 上报的数据块数量达到了副本阈值。通常情况下,只需所有 DatNode 上报其数据块状态即可。但是,如果某些 DataNode 发生故障,NameNode 需要安排重新复制部分数据块,然后集群才会达到离开安全模式的条件。

Hadoop2.3-HA 高可用集群环境搭建  http://www.linuxidc.com/Linux/2017-03/142155.htm

Hadoop 项目之基于 CentOS7 的 Cloudera 5.10.1(CDH)的安装部署  http://www.linuxidc.com/Linux/2017-04/143095.htm

Hadoop2.7.2 集群搭建详解(高可用)http://www.linuxidc.com/Linux/2017-03/142052.htm

使用 Ambari 来部署 Hadoop 集群(搭建内网 HDP 源)http://www.linuxidc.com/Linux/2017-03/142136.htm

Ubuntu 14.04 下 Hadoop 集群安装  http://www.linuxidc.com/Linux/2017-02/140783.htm

Ubuntu 16.04 上构建分布式 Hadoop-2.7.3 集群  http://www.linuxidc.com/Linux/2017-07/145503.htm

CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建  http://www.linuxidc.com/Linux/2017-06/144932.htm

Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程  http://www.linuxidc.com/Linux/2017-06/144926.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-08/146232.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计10628字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7993168
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的3D玩偶了

终于收到了以女儿为原型打印的 3D 玩偶了 前些日子参加某网站活动,获得一次实物 3D 打印的机会,于是从众多...
开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

开源MoneyPrinterTurbo 利用AI大模型,一键生成高清短视频!

  开源 MoneyPrinterTurbo 利用 AI 大模型,一键生成高清短视频! 在短视频内容...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...
2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025年11月28日-Cloudflare史诗级事故:一次配置失误,引爆全球宕机

2025 年 11 月 28 日 -Cloudflare 史诗级事故: 一次配置失误,引爆全球宕机 前言 继今...
在Windows系统中通过VMware安装苹果macOS15

在Windows系统中通过VMware安装苹果macOS15

在 Windows 系统中通过 VMware 安装苹果 macOS15 许多开发者和爱好者希望在 Window...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍

浏览器自动化工具!开源 AI 浏览器助手让你效率翻倍 前言 在 AI 自动化快速发展的当下,浏览器早已不再只是...
恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击

恶意团伙利用 PHP-FPM 未授权访问漏洞发起大规模攻击 PHP-FPM(FastCGl Process M...
240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

240 元左右!五盘位 NAS主机,7 代U硬解4K稳如狗,拓展性碾压同价位

  240 元左右!五盘位 NAS 主机,7 代 U 硬解 4K 稳如狗,拓展性碾压同价位 在 NA...