`

hadoop-分布式安装及报错分析

 
阅读更多

hadoop-分布式安装及报错分析

 1. 本人在虚拟机中安装了三台centos ,做了一个全分布式的hadoop集群,在网上有很多文章,大多都是一样,如果出错了,也不知道去哪里查,在此我也是试了好几天才试出来,在此把出错的地方记录下来,以便以后来反搭环境时有用。

1.安装SSH并配置无密码login ,这个在此不介绍,见另一blog,或网上有。

在此说明,我的三个centos ip为:

192.168.18.130  master 

192.168.18.131   s131

192.168.18.132   s132

.在三台centos 中的 vi /etc/hosts 文件中只配置 

注意:把上面的127.0.0.1的前三行注释掉,如果有的话。这个对以后的启动时,在日志文件中会有报错,奇怪的报错,先去掉。

2. 在/etc/hosts 中的 master名,要与hostname相同,在/etc/sysconfig/network中的名子一样,如果是很一次配置完后,用 source /etc/sysconfig/network 或重login 一下 。

这个如果配不对的话,在后面  hadoop  namenode -format 时,会报错, unkonw host,会有一个:

 

04.STARTUP_MSG: Starting NameNode  
05.STARTUP_MSG:   host = java.net.UnknownHostException: localhost.localdomain: localhost.localdomain  
06.STARTUP_MSG:   args = [-format]  
07.STARTUP_MSG:   version = 0.20.0  

3. 在三台centos 中,都做同样的操作。

4. 在三台centos 中,建相同的账号如hadoop ,都归到同一个组hadoop中去。

账号: hadoop 的主目录为:/home/hadoop/ 中。

最好都用同一样账号,这个网上说也可以不用同一个账号,但可能会有问题,要输密码之类的,所以在局域网上,最好在所有的机器上,建相同的账号,配置SSH无密码登陆。

注意,配置ssh 时有个权限要求,网上有的没有讲到,我之前试了,如果权限过高,过低,远程的话,要输入密码,见另一blog .

5. 下载hadoop安装包,放到此账号的主目录下,如/home/hadoop/hadoop1.2下,

这里,网上都直接放在账号的主目录下了,猜想,也是权限的问题,放在另的目录下,因为在格式化hdfs时,会自已建立一些目录,如果放在别的目录下,会报权限不足。所以最好放在账号的主目录下。

6.修改配置文件,conf/core-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

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

<configuration>
 <property>
   <name>fs.default.name</name>
   <value>hdfs://192.168.18.130:9000</value>
 </property>
 <property>
   <name>hadoop.tmp.dir</name>
   <!--<value>/hadoop/dfs/tmp</value>-->
   <value>/home/hadoop/tmp</value>
 </property>
</configuration>

 以上标红色的,一定在用IP地址,用master(机器名)不行,网上有的说行,我在启动后,导致

http://192.168.18.130:50030/jobtracker.jsp

State: RUNNING         /////////// INITIALIZING  开始都是 initializing 装态,但所有的服务都能正常启动,注意去查看 logs/里面的日志 用 ll -tr 对文件的时间排序,用cat 查看日志文件,里面有很一些报错。
2. 对于 <value>/home/hadoop/tmp</value>
目录最好配一个,最好放在账号的主目录下,不用先建好,它会自动新建的。如果放在其它的目录下,还对对账号hadoop 赋权限 改变目录的所属者和所属组

 

再配置mapred-site.xml 。

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

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

<configuration>
 <property>
   <name>mapred.job.tracker</name>
   <value>192.168.18.130:9001</value>
 </property>
</configuration>

 定位jobtracker的主节点,这里最好也要用IP 地址,之前用的是master有问题 。

修改 hdfs-site.xml

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

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

<configuration>
 <property>
   <name>dfs.replication</name>
   <value>2</value>
 </property>
<!-- <property>
   <name>dfs.name.dir</name>
   <value>/hadoop/hdfs/name</value>
 </property>
 <property>
    <name>dfs.data.dir</name>
    <value>/hadoop/hdfs/data</value>
 </property>
-->
</configuration>

  dfs.replication  这是hdfs 的复杂数,还不清楚,这里的2 表示我这里有两台 slave机器,如果你有100台slave机器,1台master,这里就可以写成100,表示备份的数量。

下面可以单独配置hdfs 格式化的目录,如果不配置的话,它默认的目录在/home/hadoop/tmp/dfs下 ,当然,也可以配一个单独的目录,最好也配置在主目录下,如/home/hadoop/name   /home/hadoop/data ,

如果配在其它目录下,要先建好,改变所属者,chown   chgrp   等。

 

6. 再修改 conf/hadoop-env.sh  ,这个文件中,只配一下JAVA_HOME,就行了。

7.修改conf/masters 如:

master
#192.168.18.130

 这里可以用主机名,

conf/slaves :

s131
s132
#192.168.18.131
#192.168.18.132

 和上面一样。

 

8 .修改完后,再把整个文件用 scp 到另两台slave的此相同账号的主目录下如:

scp  -R /home/hadoop/hadoop1.2/    hadoop@s131:/home/hadoop/

scp  -R /home/hadoop/hadoop1.2/    hadoop@s132:/home/hadoop/

 

9. copy 完后,再格式化namenode  用:

bin/hadoop   namenode  -format 

如果没有报错成功的话,再用:有报错的话,就报一个UnKnowHost的话,见上面。

bin/start-all.sh  启动。

用这个命令时,它会把主从上的所有节点服务都启动。在master上启动  namenode secondnamenode jobtracker. 在  slave 中有:datanode   tasktracker 服务。

猜想:主master是怎么启动从机上的服务呢?

      1.可能是和账号有关,都是同一个账号,主目录一样,

      2. 整个hadoop1.2放的位置一样。都在 主目录下如: /home/hadoop/hadoop1.2/下,

     3. 启动master后,再启动slaves 上的服务,就是找到和主master上相同的位置下去启动从slaves 上的服务。

只是猜想,目前还不清楚。

 

启动好后,在主master 可以用:

bin/hadoop   dfs  -ls 

[hadoop@master hadoop1.2]$ bin/hadoop  dfs -ls
Found 3 items
drwxr-xr-x   - hadoop supergroup          0 2014-01-08 15:12 /user/hadoop/in
drwxr-xr-x   - hadoop supergroup          0 2014-01-08 15:11 /user/hadoop/out
drwxr-xr-x   - hadoop supergroup          0 2014-01-08 15:13 /user/hadoop/out1

bin/hadoop  fs  -mkdir  out2   新建,它还有很多命令。

用:[hadoop@master hadoop1.2]$ bin/hadoop  dfsadmin  -report    查看启动是否正确,如果都为0表示启动有问题,查看日志。
Configured Capacity: 8553406464 (7.97 GB)
Present Capacity: 6522089472 (6.07 GB)
DFS Remaining: 6521745408 (6.07 GB)
DFS Used: 344064 (336 KB)
DFS Used%: 0.01%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0

-------------------------------------------------
Datanodes available: 2 (2 total, 0 dead)

Name: 192.168.18.131:50010
Decommission Status : Normal
Configured Capacity: 812650496 (775 MB)
DFS Used: 65536 (64 KB)
Non DFS Used: 722128896 (688.68 MB)
DFS Remaining: 90456064(86.27 MB)
DFS Used%: 0.01%
DFS Remaining%: 11.13%
Last contact: Wed Jan 08 16:44:06 CST 2014


Name: 192.168.18.132:50010
Decommission Status : Normal
Configured Capacity: 7740755968 (7.21 GB)
DFS Used: 278528 (272 KB)
Non DFS Used: 1309188096 (1.22 GB)
DFS Remaining: 6431289344(5.99 GB)
DFS Used%: 0%
DFS Remaining%: 83.08%
Last contact: Wed Jan 08 16:44:06 CST 2014


[hadoop@master hadoop1.2]$
或用:

 

http://192.168.18.130:50030/jobtracker.jsp

查看,如果状态不是RUNNING  ,就有问题,查看日志。

用 bin/hadoop  dfs  -ls  .  或不加.  查看dfs

这样,整个分布式的hadoop  就启动好了。

测试示例,bin/hadoop   jar   hadoop-example-1.2.0.jar  wordcount  in  out3

这个 in 目录要先建一个,out3  不用新建,它会自已建,建了反而会报错。

bin/hadoop  dfs -mkdir   in  建立 dfs  目录。

再用 bin/hadoop   dfs -ls  out3/  查看里面的文件,有一个:

-rw-r--r--   2 hadoop supergroup       1306 2014-01-08 15:13 /user/hadoop/out1/part-r-00000
查看此文件即可:

[hadoop@master hadoop1.2]$ bin/hadoop dfs -cat  out1/part-r-00000
就可以查看里面的内容。

 注意:

 要把三台机器的防火墙 都关闭,否则也会有问题。

用chkconfig   iptables  --list  查看:

[hadoop@master hadoop1.2]$ chkconfig  iptables --list
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off
如果有  on 的用

chkconfig  --level  2345  iptables off
这个命令,要用root 用户去操作。

 

用此命令

bin/hadoop dfsadmin -report
启动好后,多试几次,在后台可以还在运行,状态由INITIALIZING --------------  RUNNING  需要几十秒的时间。

  • 大小: 5.7 KB
  • 大小: 53.4 KB
分享到:
评论

相关推荐

    apache-hadoop-3.1.0-winutils-master.zip

    Apache Hadoop是一个开源框架,主要用于分布式存储和计算大数据。在Windows 10环境下安装和运行Hadoop通常会遇到一些挑战,因为Hadoop最初是为Linux系统设计的。标题中的"apache-hadoop-3.1.0-winutils-master.zip...

    hadoop-2.6.0-bin-master

    2.6.0版本包含了对Hadoop生态系统的各种改进和优化,包括MapReduce、HDFS(Hadoop分布式文件系统)和其他相关组件。 描述中提到的"用于解决windows环境下,在eclipse上运行mapreduce/spark等程序报错的众多错误的...

    hadoop-3.1.1 bin目录文件-含hadoop.dll、winutils

    在IT行业中,Hadoop是一个广泛使用的开源框架,用于大数据处理和分布式存储。Hadoop-3.1.1是Hadoop的其中一个稳定版本,提供了一系列优化和改进,以提高性能和稳定性。本文将深入探讨Hadoop的bin目录以及其中的...

    hadoop-2.8.5编译

    3. 编译时可能出现依赖库的问题,按照报错信息安装缺失的库即可。 4. 如果遇到权限问题,可能需要调整Hadoop目录和文件的权限,通常使用`chown`和`chmod`命令。 总结,编译Hadoop-2.8.5 X64的过程包括获取源代码、...

    Hadoop Shell命令大全

    Hadoop是一个开源的框架,它允许用户在大型分布式系统中存储和处理数据。...通过掌握Hadoop Shell命令,可以有效地管理和操作Hadoop分布式文件系统中的数据,从而为大数据处理和分析任务提供坚实的基础。

    java运行所需jar包,hadoop-2.8.4

    在Windows下eclipse运行java程序,报错原因是没有添加正确的库,这是hadoop-2.8.4 所需... 在Windows的eclipse运行java程序,调试无报错,打包成jar,上传到linux虚拟机(CentOS 64位),Hadoop2.8.4上进行分布式运算。

    Hadoop Windows系统安装包 和 winutils的文件

    在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。它最初设计的目标是处理和存储海量数据,尤其适合那些不适合在单台机器上运行的大型数据集。本篇将详细介绍如何在Windows系统中安装Hadoop...

    hadoop-2.8.5所需jar

    描述中提到的“在Windows下eclipse运行java程序,报错原因是没有添加正确的库”,这通常意味着开发者在Eclipse中创建项目时,没有将Hadoop的JAR包添加到项目的类路径(Classpath)中。Eclipse的构建路径设置(Build ...

    大数据之hadoop分布式集群初次启动.docx

    Hadoop分布式集群初次启动 本文档主要讲解了Hadoop分布式集群的初次启动过程,包括配置SSH免密登录、格式化HDFS、启动HDFS和YARN模块等步骤。 一、配置SSH免密登录 在Hadoop分布式集群中,需要配置集群中各个节点...

    大数据之hadoop分布式集群初次启动.pdf

    Hadoop 分布式集群初次启动 Hadoop 分布式集群初次启动是大数据处理的重要步骤,涉及到 Hadoop 集群的搭建、ssh 免密登录、HDFS 格式化、Hadoop 集群启动等多个知识点。本文将详细介绍 Hadoop 分布式集群初次启动的...

    Hadoop 2.7.4 Windows (7, 10) 64位 编译bin(包含winutils.exe, hadoop.dll等)

    Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大规模集群中高效处理和存储大量数据。这个压缩包文件“Hadoop 2.7.4 Windows (7, 10) 64位 编译bin(包含winutils.exe, hadoop.dll等)”是专为...

    第十七讲hadoop分布计算配置.pptx

    以上便是对Hadoop分布式计算环境配置的详细解析,包括了核心配置文件的设置、masters与slaves文件的编写、Hadoop的安装与启动流程以及如何验证Hadoop是否成功启动等内容。这对于初学者理解和实践Hadoop集群的搭建...

    hadoop2.4.1的64位redhat的native包,解决hadoop 安装报错

    Hadoop是一个分布式计算框架,用于处理和存储大量数据。当Hadoop在Red Hat操作系统上运行时,可能会遇到性能和兼容性问题,尤其是当它依赖于本地库时。这个问题通常出现在Hadoop的Java层与底层操作系统的交互过程中...

    hadoop ,hbase,zookeeper错误日志及相关应对措施

    hadoop、hbase、zookeeper错误日志及相关应对措施 本文将对hadoop、hbase和zookeeper的错误日志进行总结和分析,并提供相关的应对措施,以帮助读者更好地理解和解决这些错误。 Hadoop-0.20.2 & hbase-0.90.1 集群...

    Hadoop最新版本下载(0.23.0)

    总的来说,Hadoop 0.23.0作为Hadoop的重要版本,提供了强大的数据处理能力和可扩展性,适用于大数据分析、数据仓库和实时处理等多种场景。掌握Hadoop不仅可以提升你在大数据领域的专业技能,也是许多企业招聘中的...

    Hadoop2的HA配置一键运行脚本startall

    【标题】"Hadoop2的HA配置一键运行脚本startall"主要涉及到的是在Hadoop分布式文件系统(HDFS)中实现高可用性(High Availability, HA)的配置方法。Hadoop HA允许NameNode(Hadoop的核心组件之一,负责管理文件...

    mac hadoop报错native 需要的包

    Hadoop是一个分布式计算框架,它使用Java编写,但为了提高性能,它依赖于一些本地库(如libhadoop.so),这些库提供了与操作系统进行底层交互的功能,如文件系统操作和内存管理。在MacOS上,Hadoop默认可能无法找到...

    hadoop/bin/hadoop.dll

    5. **错误日志分析**:查看安装过程或Hadoop启动时产生的错误日志,这些信息可能提供关于为什么需要这个DLL文件的线索。 6. **使用兼容性模式**:如果可能,尝试以兼容模式运行Hadoop,或者使用如cygwin这样的模拟...

    Hadoop2.7.3源码Eclipse工程

    【压缩包子文件的文件名称列表】"hadoop-2.7.3-src"表明主要源代码位于这个文件夹内,包含了Hadoop的所有模块和组件的源代码,如HDFS(Hadoop分布式文件系统)、MapReduce(分布式计算框架)以及YARN(资源调度器)...

Global site tag (gtag.js) - Google Analytics