博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(超详细版)Linux下Hadoop2.7.1集群环境的搭建(3台为例)
阅读量:6438 次
发布时间:2019-06-23

本文共 5955 字,大约阅读时间需要 19 分钟。

hot3.png

一、基础环境

在Linux上安装Hadoop之前,需要先安装两个程序:

1.1 安装说明

1. JDK 1.6或更高版本(本文所提到的安装的是jdk1.7); redHat自带的jdk一般不用,删除后重新装自己需要的

2. SSH(安全外壳协议),推荐安装MobaXterm_Personal。(功能的,好用)

二、Host配置

由于我搭建Hadoop集群包含三台机器,所以需要修改调整各台机器的hosts文件配置,进入/etc/hosts,配置主机名和ip的映射,命令如下:

vim /etc/hosts

如果没有足够的权限,可以切换用户为root。

三台机器的内容统一增加以下host配置:

可以通过hostname来修改服务器名称为redHat1,redHat2,redHat3

140621_zOFp_2860470.png

三、Hadoop的安装与配置

3.1 创建文件目录

为了便于管理,给redHat1的hdfs的NameNode、DataNode及临时文件,在用户目录下创建目录:

/data/hdfs/name

/data/hdfs/data

/data/hdfs/tmp

然后将这些目录通过scp命令拷贝到redHat2和redHat3的相同目录下。

3.2 下载

首先到Apache官网下载Hadoop,从中选择推荐的下载镜像,我选择hadoop-2.7.1的版本,并使用以下命令下载到redHat1机器的

/data目录:

wget http://archive.apache.org/dist/hadoop/core/hadoop-2.7.1/hadoop-2.7.1.tar.gz

然后使用以下命令将hadoop-2.7.1.tar.gz 解压缩到/data目录

tar -zxvf hadoop-2.7.1.tar.gz

3.3 配置环境变量

回到/data目录,配置hadoop环境变量,命令如下:

vim /etc/profile

在/etc/profile添加如下内容

141306_vpRC_2860470.png

立刻让hadoop环境变量生效,执行如下命令:

source /etc/profile

再使用hadoop命令,发现可以有提示了,则表示配置生效了。

hadoop

141401_KTa6_2860470.png

3.4 Hadoop的配置

进入hadoop-2.7.1的配置目录:

cd /data/hadoop-2.7.1/etc/hadoop

依次修改core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml以及slaves文件。

141618_WL1x_2860470.png

3.4.1 修改core-site.xml

vim core-site.xml

 

 
   
hadoop.tmp.dir
   
file:/data/hdfs/tmp
   
A base for other temporary directories.
 
 
   
io.file.buffer.size
   
131072
 
 
   
fs.default.name
   
hdfs://redHat1:9000
 
 
   
hadoop.proxyuser.root.hosts
   
*
 
 
   
hadoop.proxyuser.root.groups
   
*
 

注意:hadoop.tmp.dir的value填写对应前面创建的目录

 

3.4.2 修改vim hdfs-site.xml

vim hdfs-site.xml

 
   
dfs.replication
   
2
 
 
   
dfs.namenode.name.dir
   
file:/data/hdfs/name
   
true
 
 
   
dfs.datanode.data.dir
   
file:/data/hdfs/data
   
true
 
 
   
dfs.namenode.secondary.http-address
   
redHat1:9001
 
 
   
dfs.webhdfs.enabled
   
true
 
 
   
dfs.permissions
   
false
 

注意:dfs.namenode.name.dir和dfs.datanode.data.dir的value填写对应前面创建的目录

 

3.4.3 修改vim mapred-site.xml

复制template,生成xml,命令如下:

cp mapred-site.xml.template mapred-site.xml

vim  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>
 </property>
</configuration>
 

3.4.4 修改vim yarn-site.xml

vim  yarn-site.xml

 

 
   
yarn.resourcemanager.address
   
redHat1:18040
 
 
   
yarn.resourcemanager.scheduler.address
   
redHat1:18030
 
 
   
yarn.resourcemanager.webapp.address
   
redHat1:18088
 
 
   
yarn.resourcemanager.resource-tracker.address
   
redHat1:18025
 
 
   
yarn.resourcemanager.admin.address
   
redHat1:18141
 
 
   
yarn.nodemanager.aux-services
   
mapreduce.shuffle
 
 
   
yarn.nodemanager.aux-services.mapreduce.shuffle.class
   
org.apache.hadoop.mapred.ShuffleHandler
 

3.4.5 修改data/hadoop-2.7.1/etc/hadoop/redHat1

将原来的localhost删除,改成如下内容

vim /data/hadoop-2.7.1/etc/hadoop/slaves

142738_IQ4k_2860470.png

最后,将整个hadoop-2.7.1文件夹及其子文件夹使用scp复制到redHat2和redHat3的相同目录中:

scp -r /data/hadoop-2.7.1 redHat2:/data

scp -r /data/hadoop-2.7.1 redHat3:/data

四、运行Hadoop

首先要格式化:

hadoop namenode -format

sh ./start-all.sh

143033_N46Y_2860470.png

查看集群状态:

/data/hadoop-2.7.1/bin/hdfs dfsadmin -report

143225_tGtJ_2860470.png

143242_wiJ7_2860470.png

测试yarn:

http://192.168.92.140:18088/cluster/cluster

143423_EiGM_2860470.png

测试查看HDFS:

http://192.168.92.140:50070/dfshealth.html#tab-overview

143600_uoTT_2860470.png

143625_FwaB_2860470.png

 

重点::配置运行Hadoop中遇见的问题

1 JAVA_HOME未设置?

启动的时候报:

143845_TUE1_2860470.png

则需要/data/hadoop-2.7.1/etc/hadoop/hadoop-env.sh,添加JAVA_HOME路径

143902_ZLXR_2860470.png

要将路径写为绝对路径,不要用出事自动获取那种。

2. FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for block pool Block pool BP-336454126-127.0.0.1-1419216478581 (storage id DS-445205871-127.0.0.1-50010-1419216613930) service to /192.168.149.128:9000

org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.protocol.DisallowedDatanodeException): Datanode denied communication with namenode: DatanodeRegistration(0.0.0.0, storageID=DS-445205871-127.0.0.1-50010-1419216613930, infoPort=50075, ipcPort=50020, storageInfo=lv=-47;cid=CID-41993190-ade1-486c-8fe1-395c1d6f5739;nsid=1679060915;c=0)

 

原因:

由于本地dfs.data.dir目录下的数据文件和namenode已知的不一致,导致datanode节点不被namenode接受。
解决:

1,删除dfs.namenode.name.dir和dfs.datanode.data.dir 目录下的所有文件

2,修改hosts

 cat /etc/hosts

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

3,重新格式化:bin/hadoop namenode -format

4,启动

重新启动

 

 

 

 

 

转载于:https://my.oschina.net/yjktpd/blog/1808168

你可能感兴趣的文章
别用这种方式聊天,你都不知道自己是怎么聊死的
查看>>
中国香港地区 DDoS- botnet 态势分析
查看>>
另一个角度的架构师
查看>>
SparseArray<E>详解
查看>>
Eclipse-Java代码规范和质量检查插件-PMD
查看>>
阿里专家分享:企业级大数据轻量云实践
查看>>
阿里财报:云计算年度营收133亿,季度营收连续12个季度翻番
查看>>
人工智能化发展已经到了哪一步?
查看>>
php实现上传图片保存到数据库的方法
查看>>
安卓应用安全指南 5.4.3 通过 HTTPS 的通信 高级话题
查看>>
针对CMS中的tag标签理解
查看>>
AR头显要上天!欧洲太空总署或用HoloLens维修太空站
查看>>
沃尔玛建立自家的人工智能网络,抗衡竞争对手亚马逊
查看>>
Mysql备份与还原及优化方法
查看>>
linux常用命令和选项
查看>>
sed 学习笔记(未完成)
查看>>
Eclipse保存验证JS缓慢
查看>>
2017 JMP Discovery Summit China圆满落幕
查看>>
9 Easy Steps for Successful Data Migration
查看>>
人工智能,不止于技术的革命--WOT2017全球创新技术峰会开幕
查看>>