栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

hadoop集群环境搭建的理解(hadoop集群环境搭建错误)

hadoop集群环境搭建的理解(hadoop集群环境搭建错误)

目录

思路

配置master服务器

配置slave服务器

启动

运行example

常见报错

多次初始化导致master和slave的clusterID的不一致

INFO mapreduce.Job: Running job: job_1647679522593_0001

Got exception: java.net.ConnectException

其他报错

小好奇

思路

目标:一台master,两台slave。

新建两台虚拟机,一台master一台slave,先配置master ssh登录slave,之后在master上配置好jdk和Hadoop后直接通过scp传送到slave1,然后通过slave1虚拟机克隆产生slave2。

配置master服务器

1.设置SSH免密码登录

具体教程可见

ssh免密登录远程服务器

2.安装JDK

下载“jdk-8u11-linux-x64.tar.gz”,放到/home/java目录下,解压

tar -zxvf jdk-8u11-linux-x64.tar.gz

在/etc/profile文件后面添加

export JAVA_HOME=/home/java/jdk1.8.0_11
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export PATH=$PATH:${JAVA_HOME}/bin:${JRE_HOME}/bin

一定记得输入命令

source /etc/profile

测试是否成功安装

java -version

3.安装hadoop-2.6.5

下载“hadoop-2.6.5.tar.gz”,放到/home/hadoop目录下,解压

tar -xzvf hadoop-2.6.5.tar.gz

在/home/hadoop目录下创建数据存放的文件夹,tmp、hdfs、hdfs/data、hdfs/name

4.添加java和hadoop环境变量

打开/root下的.bashrc文件,添加三行

export HADOOP_HOME=/home/hadoop/hadoop-2.6.5
export JAVA_HOME=/home/java/jdk1.8.0_11
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

这里注意三点:

一是要在对应用户下修改对应用户的.bashrc。由于我是在root用户下操作,修改的是root的.bashrc,所以我在普通用户下输入hadoop会显示command not found。

二是PATH要在最下面,否则引用不了HADOOP_HOME和JAVA_HOME。

三是记得

source /root/.bashrc

5.修改配置文件

配置/home/hadoop/hadoop-2.6.5/etc/hadoop目录下的core-site.xml

需要修改第四行ip


    
        fs.defaultFS
        hdfs://192.168.79.128:9000
    
    
        hadoop.tmp.dir
        file:/home/hadoop/tmp
    
    
        io.file.buffer.size
        131702
    
 

配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的hdfs-site.xml

需要修改倒数第七行ip


    
        dfs.namenode.name.dir
        file:/home/hadoop/hdfs/name
    
    
        dfs.datanode.data.dir
        file:/home/hadoop/hdfs/data
    
    
        dfs.replication
        3
    
    
        dfs.namenode.secondary.http-address
        192.168.79.128:9001
    
    
		    dfs.webhdfs.enabled
		    true
    
 

配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的mapred-site.xml

修改两行value的ip


    
        mapreduce.framework.name
        yarn
    
    
        mapreduce.jobhistory.address
        192.168.79.128:10020
    
    
        mapreduce.jobhistory.webapp.address
        192.168.79.128:19888
    
 

配置/home/hadoop/hadoop-2.7.0/etc/hadoop目录下的yarn-site.xml

修改好多ip


    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    
    
        yarn.nodemanager.auxservices.mapreduce.shuffle.class
        org.apache.hadoop.mapred.ShuffleHandler
    
    
        yarn.resourcemanager.address
        192.168.79.128:8032
    
    
        yarn.resourcemanager.scheduler.address
        192.168.79.128:8030
    
    
        yarn.resourcemanager.resource-tracker.address
        192.168.79.128:8031
    
    
        yarn.resourcemanager.admin.address
        192.168.79.128:8033
    
    
        yarn.resourcemanager.webapp.address
        192.168.79.128:8088
    
    
        yarn.nodemanager.resource.memory-mb
        6144
    
    
	      yarn.scheduler.minimum-allocation-mb
	      2048
    
    
        yarn.nodemanager.vmem-pmem-ratio
	      2.1
    

配置/home/hadoop/hadoop-2.6.5/etc/hadoop目录下hadoop-env.sh、yarn-env.sh

export JAVA_HOME=/home/java/jdk1.8.0_11

配置/home/hadoop/hadoop-2.6.5/etc/hadoop目录下的slaves,删除默认的localhost,增加2行

192.168.79.138
192.168.79.143

(这一步要等到创建slave2后,知道slave2的ip再回来填,到时候记得就好)

6.将jdk和hadoop传给slave

scp -r /home/java 192.168.79.138:/home/
scp -r /home/hadoop 192.168.79.138:/home/

(如果上一步ssh配置好的话,这一步是不需要密码的)

配置slave服务器

1.配置slave1

java配置同master服务器,只需要修改/etc/profile并且source一下就可以了。

hadoop配置传送过来就好了,不要修改hadoop下的配置文件,master和slave的这些配置文件需要一毛一样。

添加java和hadoop环境变量,同master,可参考master的配置。

2.克隆产生slave2

选择 创建完整克隆

(如果之前没有额外的虚拟机的话,选择克隆会比新建一个虚拟机快一些,而且不会出错。如果之前有的话,通过scp传送java和Hadoop也很快)

试一下用master能不能ssh登录,再试一下java -version,如果都可以的话说明克隆成功了

3.配置master上/home/hadoop/hadoop-2.6.5/etc/hadoop目录下的slaves,把之前那一步做完

启动

1.启动

在master上,输入

hdfs namenode -format

这里一定要注意,初始化一次就够了,不要多次初始化,重启hdfs的时候不需要再次初始化,如果已经多次初始化,参考常见报错第一个。

一般提示Exiting with status 0表示成功

start-all.sh

2.查看

在master和slave上分别输入jps,显示已运行的java程序

也可以用浏览器打开管理页面http://192.168.79.128:50070/ ,查看节点信息

打开http://192.168.79.128:8088/ ,查看节点运行情况

3.关闭所有节点

stop-all.sh

运行example

算圆周率

hadoop jar /home/hadoop/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar pi 10 10

没有报错并正确显示计算结果,表明运行成功

统计单词个数

先创建input文件夹,再上传文件至input目录下,输入以下命令,统计结果会放到output里

hadoop jar /home/hadoop/hadoop-2.6.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /input /output

可在管理页面找到output,下载统计结果

 

常见报错

多次初始化导致master和slave的clusterID的不一致

使得slave节点无法启动datanode。

如果已经多次初始化,按如下步骤恢复。

首先

stop-all.sh

再删除core-site.xml和hdfs-site.xml指定路径下所有的文件和文件夹,但一定要保留他们指定的文件夹。

比如我最后的结果是这样的

所有slave中data下的文件和tmp下的文件都要删除,最后状态应该和master一样。

现在可以初始化了

hdfs namenode -format

在master上打开/home/hadoop/hdfs/name/current/VERSION,再在slave上打开/home/hadoop/hdfs/data/current/VERSION,如果发现两者clusterID一致的话,说明初始化成功了。

以后记得不要多次初始化了噢~

INFO mapreduce.Job: Running job: job_1647679522593_0001

运行example时卡在这行不动了,可参考

hadoop yarn方式执行mapreducejob一致peding,卡住不动_如何在5年薪百万的博客-CSDN博客

Hadoop运行任务时一直卡在: INFO mapreduce.Job: Running job_Oooover的博客-CSDN博客_hadoop卡在runningjob

但我当时的问题是hostname配置不对,跟第二个报错是一样的,这里解释了问题原因

Hadoop java Got exception: java.net.ConnectException

Got exception: java.net.ConnectException

根本原因是hosts和hostname配置不对,修改一下配置再重启虚拟机就好了。记得master和slave都要修改设置。

以下是我的配置:

/etc/hosts(slave同master)

127.0.0.1	localhost localhost.localdomain localhost4 localhost4.localdomain4
#127.0.1.1	ubuntu

192.168.79.128	meta1
192.168.79.138	meta2
192.168.79.143	meta3

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback localhost localhost.localdomain localhost4 localhost4.localdomain4
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

/etc/hostname,每个服务器写自己的名称就好,修改之后重启虚拟机才生效,然后输入命令查看是否生效。

hostname

我的报错和这里的几乎一样,他的解决方法很有效,可参考。

Hadoop java Got exception: java.net.ConnectException

其他报错

参考这里。

Linux报错集锦

小好奇

上传文件的时候,究竟上传到哪里了呢~

用find查找整个系统,发现找不到,最后在从节点的这个目录下找到文件

/home/hadoop/dfs/data/current/BP-1615665570-127.0.1.1-1647576217136/current/finalized/subdir0/subdir0

原文链接(会有更新)

Notion – The all-in-one workspace for your notes, tasks, wikis, and databases.A new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your teamhttps://thrilling-coffee-afc.notion.site/hadoop-cb4c19c3494d4d22af3ba74c166a5826

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771407.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号