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 需要几十秒的时间。
相关推荐
Apache Hadoop是一个开源框架,主要用于分布式存储和计算大数据。在Windows 10环境下安装和运行Hadoop通常会遇到一些挑战,因为Hadoop最初是为Linux系统设计的。标题中的"apache-hadoop-3.1.0-winutils-master.zip...
2.6.0版本包含了对Hadoop生态系统的各种改进和优化,包括MapReduce、HDFS(Hadoop分布式文件系统)和其他相关组件。 描述中提到的"用于解决windows环境下,在eclipse上运行mapreduce/spark等程序报错的众多错误的...
在IT行业中,Hadoop是一个广泛使用的开源框架,用于大数据处理和分布式存储。Hadoop-3.1.1是Hadoop的其中一个稳定版本,提供了一系列优化和改进,以提高性能和稳定性。本文将深入探讨Hadoop的bin目录以及其中的...
3. 编译时可能出现依赖库的问题,按照报错信息安装缺失的库即可。 4. 如果遇到权限问题,可能需要调整Hadoop目录和文件的权限,通常使用`chown`和`chmod`命令。 总结,编译Hadoop-2.8.5 X64的过程包括获取源代码、...
Hadoop是一个开源的框架,它允许用户在大型分布式系统中存储和处理数据。...通过掌握Hadoop Shell命令,可以有效地管理和操作Hadoop分布式文件系统中的数据,从而为大数据处理和分析任务提供坚实的基础。
在Windows下eclipse运行java程序,报错原因是没有添加正确的库,这是hadoop-2.8.4 所需... 在Windows的eclipse运行java程序,调试无报错,打包成jar,上传到linux虚拟机(CentOS 64位),Hadoop2.8.4上进行分布式运算。
在IT行业中,Hadoop是一个广泛使用的开源框架,主要用于大数据处理和分析。它最初设计的目标是处理和存储海量数据,尤其适合那些不适合在单台机器上运行的大型数据集。本篇将详细介绍如何在Windows系统中安装Hadoop...
描述中提到的“在Windows下eclipse运行java程序,报错原因是没有添加正确的库”,这通常意味着开发者在Eclipse中创建项目时,没有将Hadoop的JAR包添加到项目的类路径(Classpath)中。Eclipse的构建路径设置(Build ...
Hadoop分布式集群初次启动 本文档主要讲解了Hadoop分布式集群的初次启动过程,包括配置SSH免密登录、格式化HDFS、启动HDFS和YARN模块等步骤。 一、配置SSH免密登录 在Hadoop分布式集群中,需要配置集群中各个节点...
Hadoop 分布式集群初次启动 Hadoop 分布式集群初次启动是大数据处理的重要步骤,涉及到 Hadoop 集群的搭建、ssh 免密登录、HDFS 格式化、Hadoop 集群启动等多个知识点。本文将详细介绍 Hadoop 分布式集群初次启动的...
Hadoop是Apache软件基金会开发的一个开源分布式计算框架,它允许在大规模集群中高效处理和存储大量数据。这个压缩包文件“Hadoop 2.7.4 Windows (7, 10) 64位 编译bin(包含winutils.exe, hadoop.dll等)”是专为...
以上便是对Hadoop分布式计算环境配置的详细解析,包括了核心配置文件的设置、masters与slaves文件的编写、Hadoop的安装与启动流程以及如何验证Hadoop是否成功启动等内容。这对于初学者理解和实践Hadoop集群的搭建...
Hadoop是一个分布式计算框架,用于处理和存储大量数据。当Hadoop在Red Hat操作系统上运行时,可能会遇到性能和兼容性问题,尤其是当它依赖于本地库时。这个问题通常出现在Hadoop的Java层与底层操作系统的交互过程中...
hadoop、hbase、zookeeper错误日志及相关应对措施 本文将对hadoop、hbase和zookeeper的错误日志进行总结和分析,并提供相关的应对措施,以帮助读者更好地理解和解决这些错误。 Hadoop-0.20.2 & hbase-0.90.1 集群...
总的来说,Hadoop 0.23.0作为Hadoop的重要版本,提供了强大的数据处理能力和可扩展性,适用于大数据分析、数据仓库和实时处理等多种场景。掌握Hadoop不仅可以提升你在大数据领域的专业技能,也是许多企业招聘中的...
【标题】"Hadoop2的HA配置一键运行脚本startall"主要涉及到的是在Hadoop分布式文件系统(HDFS)中实现高可用性(High Availability, HA)的配置方法。Hadoop HA允许NameNode(Hadoop的核心组件之一,负责管理文件...
Hadoop是一个分布式计算框架,它使用Java编写,但为了提高性能,它依赖于一些本地库(如libhadoop.so),这些库提供了与操作系统进行底层交互的功能,如文件系统操作和内存管理。在MacOS上,Hadoop默认可能无法找到...
5. **错误日志分析**:查看安装过程或Hadoop启动时产生的错误日志,这些信息可能提供关于为什么需要这个DLL文件的线索。 6. **使用兼容性模式**:如果可能,尝试以兼容模式运行Hadoop,或者使用如cygwin这样的模拟...
【压缩包子文件的文件名称列表】"hadoop-2.7.3-src"表明主要源代码位于这个文件夹内,包含了Hadoop的所有模块和组件的源代码,如HDFS(Hadoop分布式文件系统)、MapReduce(分布式计算框架)以及YARN(资源调度器)...