win32下开发hadoop应用程序(二)
(2)在Eclipse中配置开发hadoop程序,下载hadoop-0.20.2-cdh3u1.tar.gz。
· Step1. 在eclipse中,新建一个Java 项目,填入Project name,在Contents中,选择 “Create project from existing source”,在 Browse… 中选择hadoop的目录,点击“Next > ”。 · Step2. 在Java Build Path面板,建议把Source folders全部移除,在Default output folder中,重新输入output目录,因为hadoop的 bin 目录是存放linux脚本的,这里可以指定一个hadoop-0.xx.xx/output目录。点击“OK”。 · Step3. 在Package Explorer中,右击项目名,选择“build path”,选择“configuration build path”,在source folder中,选择以下目录作为source folder: Hadoop-0.xx.xx/conf Hadoop-0.xx.xx/src/core Hadoop-0.xx.xx/src/hdfs Hadoop-0.xx.xx/src/mapred · Step4. 此时eclipse会编译source folder 的源码,目前一般高版本的hadoop,只差了一个ant.jar,这个包就是ant 的主要jar包。可以到 http://ant.apache.org/bindownload.cgi 下载到。并加到classpath 的 Libraries中。 · Step5. 如果一切顺利,接下来配置 conf/ 下的 core-site.xml hdfs-site.xml mapred-site.xml 三个配置文件,在core-site.xml中加入(端口可以自己定义): <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> 另外,在本地配置一个目录存放namenode 的 metadata ,另一个目录存放 datanode的 block。 用于配置hdfs-site.xml: <property> <name>dfs.name.dir</name> <value>E:/namespace/dfs/metadata</value> </property> <property> <name>dfs.data.dir</name> <value>E:/sde/hadoop/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> 接下来,在mapred-site.xml中,加入: <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> 注:有关Tasktracker,和Datanode 的端口无需配置,这两个节点相对于Jobtracker和 namennode是客户端,RPC的端口是自动分配的。也就是我们说的控制端口,另外传输通信端口,请阅读 hdfs-default.xml 和 mapred-default.xml配置文件。 · Step6. 启动hadoop的步骤是先启动HDFS,然后再启动mapred,原则是先启动主节点,再启动子节点。 启动namenode,namenode的主main入口在org.apache.hadoop.hdfs.server.namenode包下,类名为NameNode.java ,找到main函数,在第一行添加: argv = new String[]{"-format"}; 代码,然后运行该类,正常情况下,会输出metadata目录的格式化信息。接着,注释掉刚才添加的代码,重新运行该类。 · Step7. 启动datanode,datanode的主main入口在 org.apache.hadoop.hdfs.server.datanode包下,类名为 DataNode.java,找到main函数,该类,直接运行。 · Step8. 启动 JobTracker,该类位于org.apache.hadoop.mapred.JobTracker,在启动之前,找到main方法,在main方法的第一行加入: System.setProperty(“hadoop.log.dir”, “$HADOOP_DIR/logs”); $HADOOP_DIR为您本机的hadoop目录。由于hadoop默认是shell脚本启动的,因 此Hadoop.log.dir 是在shell 中配置的。 · Step9. 启动 TaskTracker,该类位于org.apache.hadoop.mapred.TaskTracker,直接运行。 注:我们已经成功启动了四个进程,如果您需要,可以启动SecondaryNameNode,该类位于org.apache.hadoop.hdfs.server.namenode包,但考虑到内存占用情况,一般该节点无需启动。 · Step10. Hadoop的 命令行调用的类,在core包中的 org.apache.hadoop.fs中可以找到,类名为FsShell.java,举个简单的例子,如果需要查看Hdfs的根目录文件,那么在FsShell的main函数中,添加 args = new String[]{“-ls”, “/”};代码,然后运行该类即可。 在mapreduce方面,可以使用org.apache.hadoop.mapred.JobClient提交任务。
推荐阅读
-
python使用ctypes模块下的windll.LoadLibrary报OSError: [WinError 193] % 不是有效的 Win32 应用程序
-
mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志
-
在windows下开发、调试hadoop、hbase程序的准备工作
-
ASP.NET Core 中文文档 第二章 指南(8) 使用 dotnet watch 开发 ASP.NET Core 应用程序
-
Scratch3.0二次开发之windows环境下打包成exe的流程
-
Zedboard(二)使用Vivado+SDK开发嵌入式应用程序——实例一:Hello World
-
Netty4详解二:开发第一个Netty应用程序
-
win32下开发hadoop应用程序(一)
-
win32下开发hadoop应用程序(二)
-
win32下开发hadoop应用程序(二)