【上长影指标源码】【读懂源码】【sscoa源码】hadoop eclipse 源码

时间:2024-11-08 11:51:06 编辑:VS源码运行 来源:文华均线源码

1.Java跟Hadoop的关系密切吗?
2.如何在win7下的eclipse中调试Hadoop2.2.0的程序
3.java程序员用什么软件写代码?

hadoop eclipse 源码

Java跟Hadoop的关系密切吗?

       ã€€ã€€1、从掌握基础上来说,Java与Hadoop的关系还是挺密切的,因为java的水平好些,学习hadoop更方便些,毕竟hadoop是java开发的,所以具有java基础的人转型Hadoop有天然优势

       ã€€ã€€2、但单从两者的关系来说,不密切。因为不会java可以学,java的语法还是比较简单,对java语法熟悉些,看懂hadoop就问题不大。

如何在win7下的eclipse中调试Hadoop2.2.0的程序

       åœ¨ä¸Šä¸€ç¯‡åšæ–‡ä¸­ï¼Œæ•£ä»™å·²ç»è®²äº†Hadoop的单机伪分布的部署,本篇,散仙就说下,如何eclipse中调试hadoop2.2.0,上长影指标源码如果你使用的还是hadoop1.x的版本,那么,也没事,散仙在以前的博客里,也写过eclipse调试1.x的hadoop程序,两者最大的不同之处在于使用的eclipse插件不同,hadoop2.x与hadoop1.x的API,不太一致,所以插件也不一样,我们只需要使用分别对应的插件即可. 

       ä¸‹é¢å¼€å§‹è¿›å…¥æ­£é¢˜: 

       åºå·    åç§°    æè¿°    

       1    eclipse    Juno Service Release 4.2的本    

       2    æ“ä½œç³»ç»Ÿ    Windows7    

       3    hadoop的eclipse插件    hadoop-eclipse-plugin-2.2.0.jar    

       4    hadoop的集群环境    è™šæ‹ŸæœºLinux的Centos6.5单机伪分布式    

       5    è°ƒè¯•ç¨‹åº    Hellow World    

       é‡åˆ°çš„几个问题如下: 

       Java代码  

       java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.    

       è§£å†³åŠžæ³•: 

       åœ¨org.apache.hadoop.util.Shell类的checkHadoopHome()方法的返回值里写固定的 

       æœ¬æœºhadoop的路径,散仙在这里更改如下: 

       Java代码  

       private static String checkHadoopHome() {   

       // first check the Dflag hadoop.home.dir with JVM scope  

       //System.setProperty("hadoop.home.dir", "...");  

       String home = System.getProperty("hadoop.home.dir");  

       // fall back to the system/user-global env variable  

       if (home == null) {   

       home = System.getenv("HADOOP_HOME");  

       }  

       try {   

       // couldn't find either setting for hadoop's home directory  

       if (home == null) {   

       throw new IOException("HADOOP_HOME or hadoop.home.dir are not set.");  

       }  

       if (home.startsWith("\"") && home.endsWith("\"")) {   

       home = home.substring(1, home.length()-1);  

       }  

       // check that the home setting is actually a directory that exists  

       File homedir = new File(home);  

       if (!homedir.isAbsolute() || !homedir.exists() || !homedir.isDirectory()) {   

       throw new IOException("Hadoop home directory " + homedir  

       + " does not exist, is not a directory, or is not an absolute path.");  

       }  

       home = homedir.getCanonicalPath();  

       } catch (IOException ioe) {   

       if (LOG.isDebugEnabled()) {   

       LOG.debug("Failed to detect a valid hadoop home directory", ioe);  

       }  

       home = null;  

       }  

       //固定本机的hadoop地址  

       home="D:\\hadoop-2.2.0";  

       return home;  

       }  

       ç¬¬äºŒä¸ªå¼‚常,Could not locate executable D:\Hadoop\tar\hadoop-2.2.0\hadoop-2.2.0\bin\winutils.exe in the Hadoop binaries.  找不到win上的执行程序,可以去下载bin包,覆盖本机的hadoop跟目录下的bin包即可 

       ç¬¬ä¸‰ä¸ªå¼‚常: 

       Java代码  

       Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://...:/user/hmail/output/part-, expected: file:///   

       at org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:)   

       at org.apache.hadoop.fs.RawLocalFileSystem.pathToFile(RawLocalFileSystem.java:)   

       at org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:)   

       at org.apache.hadoop.fs.FilterFileSystem.getFileStatus(FilterFileSystem.java:)   

       at org.apache.hadoop.fs.ChecksumFileSystem$ChecksumFSInputChecker.<init>(ChecksumFileSystem.java:)   

       at org.apache.hadoop.fs.ChecksumFileSystem.open(ChecksumFileSystem.java:)   

       at org.apache.hadoop.fs.FileSystem.open(FileSystem.java:)   

       at com.netease.hadoop.HDFSCatWithAPI.main(HDFSCatWithAPI.java:)   

       å‡ºçŽ°è¿™ä¸ªå¼‚常,一般是HDFS的路径写的有问题,解决办法,拷贝集群上的core-site.xml和hdfs-site.xml文件,放在eclipse的src根目录下即可。 

       ç¬¬å››ä¸ªå¼‚常: 

       Java代码  

       Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z    

       å‡ºçŽ°è¿™ä¸ªå¼‚常,一般是由于HADOOP_HOME的环境变量配置的有问题,在这里散仙特别说明一下,如果想在Win上的eclipse中成功调试Hadoop2.2,就需要在本机的环境变量上,添加如下的环境变量: 

       ï¼ˆ1)在系统变量中,新建HADOOP_HOME变量,属性值为D:\hadoop-2.2.0.也就是本机对应的hadoop目录 

       (2)在系统变量的Path里,追加%HADOOP_HOME%/bin即可 

       ä»¥ä¸Šçš„问题,是散仙在测试遇到的,经过对症下药,我们的eclipse终于可以成功的调试MR程序了,散仙这里的Hellow World源码如下: 

       Java代码  

       package com.qin.wordcount;  

       import java.io.IOException;  

       import org.apache.hadoop.fs.FileSystem;  

       import org.apache.hadoop.fs.Path;  

       import org.apache.hadoop.io.IntWritable;  

       import org.apache.hadoop.io.LongWritable;  

       import org.apache.hadoop.io.Text;  

       import org.apache.hadoop.mapred.JobConf;  

       import org.apache.hadoop.mapreduce.Job;  

       import org.apache.hadoop.mapreduce.Mapper;  

       import org.apache.hadoop.mapreduce.Reducer;  

       import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;  

       import org.apache.hadoop.mapreduce.lib.input.TextInputFormat;  

       import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;  

       import org.apache.hadoop.mapreduce.lib.output.TextOutputFormat;  

       /*** 

       *  

       * Hadoop2.2.0测试 

       * æ”¾WordCount的例子 

       *  

       * @author qindongliang 

       *  

       * hadoop技术交流群:   

       *  

       *  

       * */  

       public class MyWordCount {   

       /** 

       * Mapper 

       *  

       * **/  

       private static class WMapper extends Mapper<LongWritable, Text, Text, IntWritable>{   

       private IntWritable count=new IntWritable(1);  

       private Text text=new Text();  

       @Override  

       protected void map(LongWritable key, Text value,Context context)  

       throws IOException, InterruptedException {   

       String values[]=value.toString().split("#");  

       //System.out.println(values[0]+"========"+values[1]);  

       count.set(Integer.parseInt(values[1]));  

       text.set(values[0]);  

       context.write(text,count);  

       }  

       }  

       /** 

       * Reducer 

       *  

       * **/  

       private static class WReducer extends Reducer<Text, IntWritable, Text, Text>{   

       private Text t=new Text();  

       @Override  

       protected void reduce(Text key, Iterable<IntWritable> value,Context context)  

       throws IOException, InterruptedException {   

       int count=0;  

       for(IntWritable i:value){   

       count+=i.get();  

       }  

       t.set(count+"");  

       context.write(key,t);  

       }  

       }  

       /** 

       * æ”¹åŠ¨ä¸€ 

       * (1)shell源码里添加checkHadoopHome的路径 

       * (2)行,FileUtils里面 

       * **/  

       public static void main(String[] args) throws Exception{   

       //      String path1=System.getenv("HADOOP_HOME");  

       //      System.out.println(path1);  

       //      System.exit(0);  

       JobConf conf=new JobConf(MyWordCount.class);  

       //Configuration conf=new Configuration();  

       //conf.set("mapred.job.tracker","...:");  

       //读取person中的数据字段  

       // conf.setJar("tt.jar");  

       //注意这行代码放在最前面,进行初始化,否则会报  

       /**Job任务**/  

       Job job=new Job(conf, "testwordcount");  

       job.setJarByClass(MyWordCount.class);  

       System.out.println("模式:  "+conf.get("mapred.job.tracker"));;  

       // job.setCombinerClass(PCombine.class);  

       // job.setNumReduceTasks(3);//设置为3  

       job.setMapperClass(WMapper.class);  

       job.setReducerClass(WReducer.class);  

       job.setInputFormatClass(TextInputFormat.class);  

       job.setOutputFormatClass(TextOutputFormat.class);  

       job.setMapOutputKeyClass(Text.class);  

       job.setMapOutputValueClass(IntWritable.class);  

       job.setOutputKeyClass(Text.class);  

       job.setOutputValueClass(Text.class);  

       String path="hdfs://...:/qin/output";  

       FileSystem fs=FileSystem.get(conf);  

       Path p=new Path(path);  

       if(fs.exists(p)){   

       fs.delete(p, true);  

       System.out.println("输出路径存在,已删除!");  

       }  

       FileInputFormat.setInputPaths(job, "hdfs://...:/qin/input");  

       FileOutputFormat.setOutputPath(job,p );  

       System.exit(job.waitForCompletion(true) ? 0 : 1);    

       }  

       }  

       æŽ§åˆ¶å°ï¼Œæ‰“印日志如下: 

       Java代码  

       INFO - Configuration.warnOnceIfDeprecated() | mapred.job.tracker is deprecated. Instead, use mapreduce.jobtracker.address  

       æ¨¡å¼ï¼š  local  

       è¾“出路径存在,已删除!  

       INFO - Configuration.warnOnceIfDeprecated() | session.id is deprecated. Instead, use dfs.metrics.session-id  

       INFO - JvmMetrics.init() | Initializing JVM Metrics with processName=JobTracker, sessionId=  

       WARN - JobSubmitter.copyAndConfigureFiles() | Hadoop command-line option parsing not performed. Implement the Tool interface and execute your application with ToolRunner to remedy this.  

       WARN - JobSubmitter.copyAndConfigureFiles() | No job jar file set.  User classes may not be found. See Job or Job#setJar(String).  

       INFO - FileInputFormat.listStatus() | Total input paths to process : 1  

       INFO - JobSubmitter.submitJobInternal() | number of splits:1  

       INFO - Configuration.warnOnceIfDeprecated() | user.name is deprecated. Instead, use mapreduce.job.user.name  

       INFO - Configuration.warnOnceIfDeprecated() | mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class  

       INFO - Configuration.warnOnceIfDeprecated() | mapred.mapoutput.value.class is deprecated. Instead, use mapreduce.map.output.value.class  

       INFO - Configuration.warnOnceIfDeprecated() | mapreduce.map.class is deprecated. Instead, use mapreduce.job.map.class  

       INFO - C

java程序员用什么软件写代码?

       JAVA编程初学,用什么软件?

       1、数控编程现在用的多的还是Mastercam、UG、Cimtron、PowerMILL等软件。国内也有Caxa(北航研制)、NPU(西北工业大学研制)等功能也很强大,适合大型专用工件的加工编程。

       2、JDK(JavaDevelopmentKit)JDK是整个Java的核心,包括了Java运行环境(JavaRuntimeEnvirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。

       3、但是现在都使用MyEclipse,它包括了eclipse,还包括了其它框架,比如:Struts,Spring,Hibernate等,所以建议你用MyEclipse6,在网上就可以免费下载。操作方便,非常好用,强烈推荐。

       4、java用IntelliJIDEA、NetBeans软件编程最好。IntelliJIDEAIntelliJIDEA,是java编程语言开发的集成环境。

       Java程序员必备的开发工具有哪些

       MongoDBMongoDB是使用非常广泛的工具,具有跨平台和面向文档数据库等优势,是现在使用最多的一种数据库。在使用过程中,有灵活的文档模型、高可用复制集、可扩展分片集群,还能进行实时监控等相关操作。

       ServiceLoader-加载服务Java开发人员通常希望区分使用什么和创建什么,回龙观java课程培训机构发现通常是通过创建一个描述组件操作的接口和使用某种中介创建组件实例。

       ApacheCommonsLangApacheCommonsLang是Apache最著名的JAVA库,它是对java.lang的很好扩展,包含了大量非常实用的工具类,其中用的最多的有StringUtils,DateUtils,NumberUtils等。

       Groovy我们使用Groovy来写Java测试。为什么?因为它提供了下面这些能力:宽松的Java语法:这是Java语法,但有些其他规则,比如分号,变量类型,访问修饰符都是可选的。

       ä½ å¥½ï¼Œç›®å‰java主流常用的开发工具有:Notepad,MyEclipse,IntllijIDEA。使用难度依次逐渐递增,当然能够实现的功能也越来越复杂和多样。

       å¸¸ç”¨çš„工具有:Eclipse据数据显示很多Java开发人员的Java开发工具便是Eclipse,这主要得益于Eclipse是一个开源的、可以基于Java的可扩展开发平台。

Java程序员常用的开发工具有哪些?

       1、SublimeText是由程序员JonSkinner于年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的Vim。它是一款收费软件,但是可以无限期试用,它是一个跨平台的编辑器,同时支持Windows、Linux、MacOSX等操作系统。

       2、java开发工具JavaWorkshopSunMicroSystems公司于推出了JavaWorkShop0,这是业界出现的第一个供Internet网使用的多平台开发工具,它可以满足各公司开发Internet和Intranet网应用软件的需要。

       3、NetBases是java开发桌面应用程序用的。JBuilder是开发Web应用程序的,几年前比较流行,但是JBuilder在java编程工具中统治了大约年左右后,它的地位被Eclipse抢走了。现在最流行的java开发工具就是Eclipse了。

       4、Groovy我们使用Groovy来写Java测试。为什么?因为它提供了下面这些能力:宽松的Java语法:这是Java语法,但有些其他规则,比如分号,变量类型,访问修饰符都是可选的。

       5、常用的工具有:Eclipse据数据显示很多Java开发人员的Java开发工具便是Eclipse,这主要得益于Eclipse是一个开源的、可以基于Java的可扩展开发平台。

       6、用Java开发的软件如下:Notepad++Notepad++是Windows操作系统下的一套文本编辑器,有完整的中文化接口及支持多国语言编写的功能(UTF8技术)。

java用什么软件编写

       JAVA编程常用的软件:IntellijIDEAIntellijIDEA是当前Java开发人员呼声很高的一款IDE,具有美观,高效等众多特点,小编还是非常喜欢的,所以以往我都是在自己电脑安装这款软件的。

       IntelliJIDEA:IntelliJIDEA是一款综合的Java编程环境,被许多开发人员和行业专家誉为市场上最好用的IDE之一,与MyEclipse齐名。

       åˆšå­¦Java之前,很多人都不清楚需要用到哪些软件,学习java首先需要学习JDK,JDK是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境,一些Java工具和Java的核心类库。

       ç”¨myeclipse或者eclipse,记事本都可以。初学者的话不建议上来就用IDE开发工具比如说Eclipse、MyEclipse、IntelliJIDEA、netbean。但是也可以使用这些,不建议的原因不便于你了解JavaAPI,及相关的编译原理,编译过程之类的。

       java用IntelliJIDEA、NetBeans软件编程最好。IntelliJIDEAIntelliJIDEA,是java编程语言开发的集成环境。

       Hadoop是进行Java编写的软件框架,主要使用在分布式存储。对于非常大的数据,用户可以在不知道分布式基础的情况下进行开发分布式程序,并且能够使用集群实现高速计算和存储。

有什么java软件可以编写java?

       1、IDEA也不错,有两个版本,免费版的可以做Java开发,就是写那种跑起来是黑框框的Java程序,也可以做Android开发(做Android更好的选择去google下载AndroidStudio);付费版的还可以做J2EE开发。

       2、JavaDevelopmentKit(JDK):JDK是Java编写所必需的软件包。它包括Java编译器、Java运行时环境和其他工具,如JavaDoc和JConsole。JDK提供了JavaAPI和其他开发工具,使Java编写更加容易。

       3、IntellijIDEAIntellijIDEA是当前Java开发人员呼声很高的一款IDE,具有美观,高效等众多特点,小编还是非常喜欢的,所以以往我都是在自己电脑安装这款软件的。

       4、JAVA编程常用的软件:Eclipse:Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

       5、java用IntelliJIDEA、NetBeans软件编程最好。IntelliJIDEAIntelliJIDEA,是java编程语言开发的集成环境。

       6、\x0d\NetBeans-SUN公司自己开发的Java开发环境,功能挺多的。\x0d\还有一些超喜欢手工编写Java代码的牛人喜欢使用带语法着色功能的纯文本编辑器编写Java程序,代码写完后在命令提示符下编译运行。