Hadoop之安装配置及测试案例

关于hadoop的一些介绍和原理,在此不做任何描述,只讲实际应用。对于Hadoop来说,在HDFS看来,节点分为Namenode 和Datanode,其中Namenode只有一个,Datanode可以是很多;在MapReduce看来,节点又分为Jobtracker和 Tasktracker,其中Jobtracker只有一个,Tasktracker可以是很多。在此,所有的节点我都部署在一台机器上的。1、 安装:解压缩文件包 tar xfzv file.tgz
2、 配置:进入conf目录,修改配置文件。
1)  hadoop-env.sh 中的 JAVA_HOME【export JAVA_HOME=/usr/lib/jvm/java】
2)  hadoop-site.xml 见附录。hadoop-default.xml中包含了Hadoop的所有配置项,但是不允许直接修改!可以在hadoop-conf/目录下的hadoop-site.xml里面定义我们需要的项,其值会覆盖hadoop-default.xml中的默认值,可以根据自己的实际需要来进行定制。
3、  bin/hadoop namenode -format  格式化namenode,提示信息如下:
[JRockit] Local management server started.
09/07/29 10:07:44 INFO dfs.NameNode: STARTUP_MSG:STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost.localdomain/127.0.0.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.18.3
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/core/branches/branch-0.18 -r 736250; compiled by 'ndaley' on Thu Jan 22 23:12:08 UTC 200909/07/29 10:07:44 INFO fs.FSNamesystem: fsOwner=root,root,bin,daemon,sys,adm,disk,wheel
09/07/29 10:07:44 INFO fs.FSNamesystem: supergroup=supergroup
09/07/29 10:07:44 INFO fs.FSNamesystem: isPermissionEnabled=true
09/07/29 10:07:44 INFO dfs.Storage: Image file of size 78 saved in 0 seconds.
09/07/29 10:07:45 INFO dfs.Storage: Storage directory /root/hadoop-0.18.3/filesystem/name has been successfully formatted.
09/07/29 10:07:45 INFO dfs.NameNode: SHUTDOWN_MSG:SHUTDOWN_MSG: Shutting down NameNode at localhost.localdomain/127.0.0.14、  bin/start-all.sh   启动所有守护进程
bin/stop-all.sh  停止所有守护进程
start-mapred.sh   启动Map/Reduce守护。包括Jobtracker和Tasktrack
stop-mapred.sh   停止Map/Reduce守护
start-dfs.sh   启动Hadoop DFS守护.Namenode和Datanode
stop-dfs.sh   停止DFS守护
5、  bin/hadoop dfs -mkdir testdir  建立目录,这个目录并不是实际目录
6、  bin/hadoop dfs -put conf/hadoop-default.xml testdir   复制文件
有时,当你申请到一个HOD集群后马上尝试上传文件到HDFS时,DFSClient会警告NotReplicatedYetException。通常会有一个如下报错信息。
org.apache.hadoop.ipc.RemoteException: java.io.IOException File /root/testdir/hadoop-default.xml could only be replicated to 0 nodes, instead of 1
at org.apache.hadoop.dfs.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1123)
at org.apache.hadoop.dfs.NameNode.addBlock(NameNode.java:330)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:481)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:890)
at org.apache.hadoop.ipc.Client.call(Client.java:716)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:216)
at org.apache.hadoop.dfs.$Proxy0.addBlock(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at org.apache.hadoop.dfs.$Proxy0.addBlock(Unknown Source)
at org.apache.hadoop.dfs.DFSClient$DFSOutputStream.locateFollowingBlock(DFSClient.java:2450)
at org.apache.hadoop.dfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:2333)
at org.apache.hadoop.dfs.DFSClient$DFSOutputStream.access$1800(DFSClient.java:1745)
at org.apache.hadoop.dfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:1922)
……不幸的是我也遇到了这个报错,google了很久才找到一个解决方案: 当你向一个DataNodes正在和NameNode联络的集群上传文件的时候,这种现象就会发生。在上传新文件到HDFS之前多等待一段时间就可以解决这个问题,因为这使得足够多的DataNode启动并且联络上了NameNode。 果然,很有效!
7、  bin/hadoop dfs -ls testdir   查看现有文件
8、  bin/hadoop dfs -cat testdir/hadoop-default.xml   查看文件内容
9、  bin/hadoop jar hadoop-0.18.3-examples.jar wordcount testdir test-out  执行分布式统计词
10、 bin/hadoop dfs -ls test-out bin/hadoop dfs -cat /user/root/test-out/part-00000   查看统计结果tracker. 2
tracking 1
transfers 1
trash 2
trigger 1
triggers 1
true 4
true, 4
try 2
turned 1
two 1
type="text/xsl" 1
typically 1
ui 1
unchanged. 2
under 2
under/over 1
unspecified 1至此,hadoop安装、配置、测试已走了一通。当然这其中还有些问题我并未过问的,比如 SSH设置 ,没进行该设置,会导致运营hadoop过程中会提示需要输入密码,比较麻烦,把ssh配置好了,各个节点之间打通了,就不会出现这种问题了。

更多信息请查看 java进阶网 http://www.javady.com

你可能感兴趣的:(hadoop,专题)