- 浏览: 351606 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (160)
- webservice (2)
- 数据库开发 (9)
- LINUX (6)
- 团队协作 (5)
- 前端技术 (4)
- J2EE (31)
- web服务器 (9)
- 经验常识 (12)
- 开发工具 (17)
- 项目管理 (7)
- 重构与设计模式 (8)
- 安全技术 (1)
- 并发编程 (1)
- 移动互联网 (2)
- 编码风格 (1)
- 领域建模 (1)
- 随想杂记 (12)
- 翻译 (2)
- 问题排查 (2)
- 数据挖掘 (4)
- 软件架构 (1)
- java语言基础知识 (13)
- 文件读写 (1)
- mac研发笔记 (1)
- 网络问题 (1)
- python学习 (0)
- Java8新特性 (1)
- soft kes collections (1)
最新评论
-
cremains:
...
java8新特性学习笔记 -
bingyingao:
guooo 写道很好的总结,不知能否转载?可以,多谢关注
又四年了,再看如何快速融入一个新团队 -
guooo:
很好的总结,不知能否转载?
又四年了,再看如何快速融入一个新团队 -
omeweb:
又过了好几年了,有啥新感悟没有?
两年已过去,再看该如何快速融入新团队 -
kely39:
感谢楼主,问题已解决
包冲突问题的解决方法
先说一下我的环境
Win7
Visualbox4.2.10
ubuntu-12.04.2-desktop-i386.iso
hadoop0.20.2
jdk1.6.10
我的配置文件
Hosts
Profile
hadoop-env.sh
hdfs-site.xml
core-site.xml
mapred-site.xml
Masters
slavers
遇到问题之一:Retrying connect to server
原因:
1.hadoop没有启动起来,可用jps看一下是否有相关的进程。
2.看一下core-site.xml中 的fs.default.nam的值是否为hdfs://localhost:9000
在hadoop安装目录下创建4个文件夹:
data1,data2,datalog1,datalog2
有时通过jps查看,发现找不到namenode进程,那么可以用bin/stop-all.sh关闭一下,然后格式化,之后再启动hadoop:
第一次格式化有如图上的提示,说明格式化成功
查看如下图则说明hadoop已经完全启动
通过页面查看hadoop运行状态:
http://master:50030 (MapReduce的Web页面)
http://master:50070 (HDFS的Web页面)
缺少core包
有些网友通过如下命令可以编译WordCount类,但是我是0.21.0的hadoop解压后根目录中没有core包(这个我还没弄明白是什么原因),后来我装了个0.20.2
javac -classpath /home/admin/hadoop/hadoop-0.19.1-core.jar WordCount.java -d /home/admin/WordCount
编译:
hadoop@hadoop-VirtualBox:~/wordcount$ javac -classpath /usr/local/hadoop/hadoop-0.20.2-core.jar WordCount.java -d /home/hadoop/wordcount
Note: WordCount.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
打包:
hadoop@hadoop-VirtualBox:~/wordcount$ jar cvf WordCount.jar *.class
added manifest
adding: WordCount.class(in = 3286) (out= 1666)(deflated 49%)
adding: WordCount$MapClass.class(in = 1928) (out= 796)(deflated 58%)
adding: WordCount$Reduce.class(in = 1591) (out= 643)(deflated 59%)
准备数据文件
hadoop@hadoop-VirtualBox:~/wordcount$ hadoop fs -mkdir input
在/home/hadoop目录下新建两个文件input1.txt,input2.txt
文件中内容如下:
input1.txt:
hello, i love word
You are ok
Input2.txt
Hello, i love china
are you ok?
将文件加入到hadoop文件系统
hadoop@hadoop-VirtualBox:~$ hadoop fs -put input.* input
查看input目录文件
运行wordcount
查看output文件夹
查看mapreduce结果
遇到问题之二:output文件夹已经存在
如果你未进行格式化,就直接再次运行wordcount,将会抛出如下异常,因为输出文件件只能用一次,你要么将这个输出文件夹删除,要么换一个输出文件夹
删除:
也可以直接运行hadoop自带的WordCount程序,其他步骤相同,只是不用自己打WordCount.jar,命令如下,这里有些奇怪,我反编译hadoop-0.20.2-examples.jar发现wordcount.class类的首字母为大写,但执行时非要用小写才行:
Win7
Visualbox4.2.10
ubuntu-12.04.2-desktop-i386.iso
hadoop0.20.2
jdk1.6.10
我的配置文件
Hosts
10.13.19.55 master
Profile
export HADOOP_HOME=/usr/local/hadoop export JAVA_HOME=/usr/local/java export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$HADOOP_HOME:$HADOOP_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:
hadoop-env.sh
# The java implementation to use. Required. export JAVA_HOME=/usr/local/java
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.name.dir</name> <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value> </property> <property> <name>dfs.data.dir</name> <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
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://master:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration>
mapred-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- Put site-specific property overrides in this file. --> <property> <name>mapred.job.tracker</name> <value>master:9001</value> </property> </configuration>
Masters
master
slavers
master
遇到问题之一:Retrying connect to server
13/03/28 12:33:41 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:9000. Already tried 0 time(s).
原因:
1.hadoop没有启动起来,可用jps看一下是否有相关的进程。
2.看一下core-site.xml中 的fs.default.nam的值是否为hdfs://localhost:9000
在hadoop安装目录下创建4个文件夹:
data1,data2,datalog1,datalog2
有时通过jps查看,发现找不到namenode进程,那么可以用bin/stop-all.sh关闭一下,然后格式化,之后再启动hadoop:
hadoop@hadoop-VirtualBox:/usr/local/hadoop$ bin/hadoop namenode -format 13/03/28 14:08:10 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = hadoop-VirtualBox/127.0.1.1 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 0.20.2 STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010 ************************************************************/ Re-format filesystem in /usr/local/hadoop/datalog1 ? (Y or N) Y Re-format filesystem in /usr/local/hadoop/datalog2 ? (Y or N) Y 13/03/28 14:08:20 INFO namenode.FSNamesystem: fsOwner=hadoop,hadoop,adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare 13/03/28 14:08:20 INFO namenode.FSNamesystem: supergroup=supergroup 13/03/28 14:08:20 INFO namenode.FSNamesystem: isPermissionEnabled=true 13/03/28 14:08:20 INFO common.Storage: Image file of size 96 saved in 0 seconds. 13/03/28 14:08:20 INFO common.Storage: Storage directory /usr/local/hadoop/datalog1 has been successfully formatted. 13/03/28 14:08:20 INFO common.Storage: Image file of size 96 saved in 0 seconds. 13/03/28 14:08:20 INFO common.Storage: Storage directory /usr/local/hadoop/datalog2 has been successfully formatted. 13/03/28 14:08:20 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at hadoop-VirtualBox/127.0.1.1 ************************************************************/
第一次格式化有如图上的提示,说明格式化成功
查看如下图则说明hadoop已经完全启动
hadoop@hadoop-VirtualBox:/usr/local/hadoop$ jps 3491 SecondaryNameNode 3778 TaskTracker 3293 DataNode 3816 Jps 3093 NameNode 3562 JobTracker
通过页面查看hadoop运行状态:
http://master:50030 (MapReduce的Web页面)
http://master:50070 (HDFS的Web页面)
缺少core包
有些网友通过如下命令可以编译WordCount类,但是我是0.21.0的hadoop解压后根目录中没有core包(这个我还没弄明白是什么原因),后来我装了个0.20.2
javac -classpath /home/admin/hadoop/hadoop-0.19.1-core.jar WordCount.java -d /home/admin/WordCount
编译:
hadoop@hadoop-VirtualBox:~/wordcount$ javac -classpath /usr/local/hadoop/hadoop-0.20.2-core.jar WordCount.java -d /home/hadoop/wordcount
Note: WordCount.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
打包:
hadoop@hadoop-VirtualBox:~/wordcount$ jar cvf WordCount.jar *.class
added manifest
adding: WordCount.class(in = 3286) (out= 1666)(deflated 49%)
adding: WordCount$MapClass.class(in = 1928) (out= 796)(deflated 58%)
adding: WordCount$Reduce.class(in = 1591) (out= 643)(deflated 59%)
准备数据文件
hadoop@hadoop-VirtualBox:~/wordcount$ hadoop fs -mkdir input
在/home/hadoop目录下新建两个文件input1.txt,input2.txt
文件中内容如下:
input1.txt:
hello, i love word
You are ok
Input2.txt
Hello, i love china
are you ok?
将文件加入到hadoop文件系统
hadoop@hadoop-VirtualBox:~$ hadoop fs -put input.* input
查看input目录文件
hadoop@hadoop-VirtualBox:~$ hadoop fs -ls input Found 2 items -rw-r--r-- 2 hadoop supergroup 32 2013-03-28 14:26 /user/hadoop/input/input1.txt -rw-r--r-- 2 hadoop supergroup 29 2013-03-28 14:27 /user/hadoop/input/input2.txt
运行wordcount
hadoop@hadoop-VirtualBox:~/wordcount$ hadoop jar WordCount.jar WordCount input output 13/03/28 14:32:55 INFO mapred.FileInputFormat: Total input paths to process : 2 13/03/28 14:32:55 INFO mapred.JobClient: Running job: job_201303281409_0001 13/03/28 14:32:56 INFO mapred.JobClient: map 0% reduce 0% 13/03/28 14:33:10 INFO mapred.JobClient: map 100% reduce 0% 13/03/28 14:33:25 INFO mapred.JobClient: map 100% reduce 100% 13/03/28 14:33:27 INFO mapred.JobClient: Job complete: job_201303281409_0001 13/03/28 14:33:27 INFO mapred.JobClient: Counters: 18 13/03/28 14:33:27 INFO mapred.JobClient: Job Counters 13/03/28 14:33:27 INFO mapred.JobClient: Launched reduce tasks=1 13/03/28 14:33:27 INFO mapred.JobClient: Launched map tasks=2 13/03/28 14:33:27 INFO mapred.JobClient: Data-local map tasks=2 13/03/28 14:33:27 INFO mapred.JobClient: FileSystemCounters 13/03/28 14:33:27 INFO mapred.JobClient: FILE_BYTES_READ=152 13/03/28 14:33:27 INFO mapred.JobClient: HDFS_BYTES_READ=61 13/03/28 14:33:27 INFO mapred.JobClient: FILE_BYTES_WRITTEN=374 13/03/28 14:33:27 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=73 13/03/28 14:33:27 INFO mapred.JobClient: Map-Reduce Framework 13/03/28 14:33:27 INFO mapred.JobClient: Reduce input groups=11 13/03/28 14:33:27 INFO mapred.JobClient: Combine output records=14 13/03/28 14:33:27 INFO mapred.JobClient: Map input records=4 13/03/28 14:33:27 INFO mapred.JobClient: Reduce shuffle bytes=158 13/03/28 14:33:27 INFO mapred.JobClient: Reduce output records=11 13/03/28 14:33:27 INFO mapred.JobClient: Spilled Records=28 13/03/28 14:33:27 INFO mapred.JobClient: Map output bytes=118 13/03/28 14:33:27 INFO mapred.JobClient: Map input bytes=61 13/03/28 14:33:27 INFO mapred.JobClient: Combine input records=14 13/03/28 14:33:27 INFO mapred.JobClient: Map output records=14 13/03/28 14:33:27 INFO mapred.JobClient: Reduce input records=14
查看output文件夹
hadoop@hadoop-VirtualBox:~/wordcount$ hadoop fs -ls output Found 2 items drwxr-xr-x - hadoop supergroup 0 2013-03-28 14:32 /user/hadoop/output/_logs -rw-r--r-- 2 hadoop supergroup 73 2013-03-28 14:33 /user/hadoop/output/part-00000
查看mapreduce结果
hadoop@hadoop-VirtualBox:~/wordcount$ hadoop fs -cat output/part-00000 Hello, 1 You 1 are 2 china 1 hello, 1 i 2 love 2 ok 1 ok? 1 word 1 you 1
遇到问题之二:output文件夹已经存在
如果你未进行格式化,就直接再次运行wordcount,将会抛出如下异常,因为输出文件件只能用一次,你要么将这个输出文件夹删除,要么换一个输出文件夹
删除:
hadoop@hadoop-VirtualBox:~/wordcount$ hadoop fs -rmr /user/hadoop/output Deleted hdfs://localhost:9000/user/hadoop/output hadoop@hadoop-VirtualBox:~/wordcount$ hadoop jar WordCount.jar WordCount input output Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists at org.apache.hadoop.mapred.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:111) at org.apache.hadoop.mapred.JobClient.submitJobInternal(JobClient.java:772) at org.apache.hadoop.mapred.JobClient.submitJob(JobClient.java:730) at org.apache.hadoop.mapred.JobClient.runJob(JobClient.java:1249) at WordCount.run(WordCount.java:119) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65) at WordCount.main(WordCount.java:124) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.apache.hadoop.util.RunJar.main(RunJar.java:156)
也可以直接运行hadoop自带的WordCount程序,其他步骤相同,只是不用自己打WordCount.jar,命令如下,这里有些奇怪,我反编译hadoop-0.20.2-examples.jar发现wordcount.class类的首字母为大写,但执行时非要用小写才行:
hadoop@hadoop-VirtualBox:~/wordcount$ hadoop jar /usr/local/hadoop/hadoop-0.20.2-examples.jar wordcount input output4 13/03/28 14:59:41 INFO input.FileInputFormat: Total input paths to process : 2 13/03/28 14:59:41 INFO mapred.JobClient: Running job: job_201303281409_0009 13/03/28 14:59:42 INFO mapred.JobClient: map 0% reduce 0% 13/03/28 14:59:52 INFO mapred.JobClient: map 100% reduce 0% 13/03/28 15:00:04 INFO mapred.JobClient: map 100% reduce 100% 13/03/28 15:00:06 INFO mapred.JobClient: Job complete: job_201303281409_0009 13/03/28 15:00:06 INFO mapred.JobClient: Counters: 17 13/03/28 15:00:06 INFO mapred.JobClient: Job Counters 13/03/28 15:00:06 INFO mapred.JobClient: Launched reduce tasks=1 13/03/28 15:00:06 INFO mapred.JobClient: Launched map tasks=2 13/03/28 15:00:06 INFO mapred.JobClient: Data-local map tasks=2 13/03/28 15:00:06 INFO mapred.JobClient: FileSystemCounters 13/03/28 15:00:06 INFO mapred.JobClient: FILE_BYTES_READ=152 13/03/28 15:00:06 INFO mapred.JobClient: HDFS_BYTES_READ=61 13/03/28 15:00:06 INFO mapred.JobClient: FILE_BYTES_WRITTEN=374 13/03/28 15:00:06 INFO mapred.JobClient: HDFS_BYTES_WRITTEN=73 13/03/28 15:00:06 INFO mapred.JobClient: Map-Reduce Framework 13/03/28 15:00:06 INFO mapred.JobClient: Reduce input groups=11 13/03/28 15:00:06 INFO mapred.JobClient: Combine output records=14 13/03/28 15:00:06 INFO mapred.JobClient: Map input records=4 13/03/28 15:00:06 INFO mapred.JobClient: Reduce shuffle bytes=80 13/03/28 15:00:06 INFO mapred.JobClient: Reduce output records=11 13/03/28 15:00:06 INFO mapred.JobClient: Spilled Records=28 13/03/28 15:00:06 INFO mapred.JobClient: Map output bytes=118 13/03/28 15:00:06 INFO mapred.JobClient: Combine input records=14 13/03/28 15:00:06 INFO mapred.JobClient: Map output records=14 13/03/28 15:00:06 INFO mapred.JobClient: Reduce input records=14 hadoop@hadoop-VirtualBox:~/wordcount$ hadoop fs -ls output4 Found 2 items drwxr-xr-x - hadoop supergroup 0 2013-03-28 14:59 /user/hadoop/output4/_logs -rw-r--r-- 2 hadoop supergroup 73 2013-03-28 14:59 /user/hadoop/output4/part-r-00000
相关推荐
hadoop学习笔记,分天学习,原创,亲测,放心使用,没问题。
单机Hadoop配置安装是Hadoop beginners的不二之选,本篇文章将详细指导您如何在Windows平台上安装和配置Hadoop-2.5.2。通过亲自实验和实践,本教程将带您掌握单机Hadoop配置安装的所有步骤。 Hadoop介绍 Hadoop是...
在单机版Hadoop的伪分布式配置中,这两部分都会在同一台机器上运行。 配置步骤通常包括以下几个关键点: 1. **安装Java环境**:Hadoop依赖Java运行,所以你需要先确保系统已经安装了JDK,并且`JAVA_HOME`环境变量...
### Linux下Hadoop单机配置知识点详解 #### 一、环境搭建 1. **操作系统**: - 使用的系统为Red Hat Linux 9。 2. **JDK版本**: - 采用JDK 1.6,这符合Hadoop 0.20.1的要求,因为早期版本的Hadoop对JDK版本有...
Linux基本常用命令,ssh无密钥登录,Linux安装hadoop,hadoop集群搭建
### Hadoop单机配置详解 在大数据处理领域,Apache Hadoop是一个开源软件框架,用于分布式存储和处理大型数据集。本文将详细介绍如何在单机环境下配置Hadoop,使其能够运行基本的大数据处理任务。 #### 一、配置...
单机安装配置涉及修改配置文件,如core-site.xml和hdfs-site.xml,以便Hadoop可以正确地在本地机器上运行。伪分布式安装则模拟多节点环境,但所有组件都在同一台机器上运行,这对于测试和学习非常有用。启动Hadoop后...
### Linux 下 Hadoop 安装及配置详解 #### 前言 随着大数据技术的不断发展,Hadoop 成为了处理大规模数据集的一种重要工具。本文旨在详细介绍如何在 Linux 环境下安装和配置 Hadoop,确保能够顺利地进行大数据处理...
在Linux环境下搭建Hadoop并配置Eclipse开发环境是大数据处理工作中的重要步骤。Hadoop是一个开源的分布式计算框架,主要用于处理和存储大规模数据。而Eclipse是一款强大的集成开发环境(IDE),通过特定的插件可以...
此外,还需要在每个节点上配置Hadoop的环境变量,例如`HADOOP_HOME`、`HADOOP_MAPRED_HOME`等。 集群启动包括格式化Namenode、启动DataNode、启动NameNode、启动YARN以及启动Hadoop的其他相关服务。这个过程需要...
Hadoop学习笔记,自己总结的一些Hadoop学习笔记,比较简单。
本笔记将从环境搭建、HDFS配置、YARN配置、分布式配置到MapReduce编程,全方位介绍Hadoop的学习过程,并结合JavaWeb项目实践,帮助读者深入理解Hadoop的工作原理和应用。 ### 一、环境搭建 在开始Hadoop的学习之前...
【大数据技术基础实验报告-Linux环境下hadoop集群的搭建与基本配置】 实验主要涉及了大数据技术中的基础概念,包括Linux操作系统、Java环境、SSH服务、Hadoop集群的搭建与配置。以下是具体步骤和知识点的详细解释:...
本实验旨在帮助学生熟练掌握Linux操作系统中的常用命令,并初步了解如何在Linux环境下安装和配置Hadoop集群,为后续进行云计算与大数据处理打下坚实的基础。 ##### 实验环境 本次实验使用的操作系统为CentOS 6.5。...
单机版 Hadoop 安装(Linux) 单机版 Hadoop 安装是指在单台机器上安装 Hadoop 环境,以便快速入门 Hadoop 和了解 Hadoop 的基本原理和使用方法。在这个安装过程中,我们将创建 Hadoop 用户组和用户,安装 JDK,...
Hadoop 学习笔记.md
hadoop单机配置是指在单个机器上安装和配置hadoop环境的过程。下面将逐步介绍hadoop单机配置的详细过程。 一、安装Linux操作系统 安装Linux操作系统是hadoop单机配置的第一步。在这里,我们选择了Ubuntu 11.10作为...
RedHat Linux 9.0 下 Hadoop 单机配置归类 Hadoop 是一个基于 Java 的分布式计算平台,由 Apache 开发,用于存储和处理大量数据。下面是 Red Hat Linux 9.0 下 Hadoop 单机配置的步骤和要求。 Hadoop 安装前提 1....
Linux下Hadoop伪分布式配置及操作命令详细知识点: 1. Hadoop伪分布式模式说明: Hadoop伪分布式模式是一种在单台计算机上模拟分布式环境的配置方式,它通过使用线程来模拟多个节点的分布式工作,但实际上所有的...
本篇将详细讲解如何在Linux和Windows操作系统下配置Eclipse进行Hadoop开发。 **一、Linux环境下配置Eclipse开发Hadoop** 1. **安装Java**: Hadoop依赖Java运行环境,首先确保系统已安装Java,并且版本至少为Java 8...