`
fengy20043
  • 浏览: 4372 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

hadoop在win7+idea+maven中配置

 
阅读更多

一、配置window环境

1、配置环境变量

HADOOP_HOME=

PATH=%HADOOP_HOME%\bin;%HADOOP_HOME%\sbin;

配置hadoop中的etc\hadoop相关文件

2、hadoop-env.cmd

      set JAVA_HOME=D:\Programming\Jdk\jdk1_8_91

3、core-site.xml

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/C:/hadoop-2.8.0/work/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
</configuration>

4、hdfs.site.xml

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>localhost:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/C:/hadoop-2.8.0/work/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/C:/hadoop-2.8.0/work/hdfs/data</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>

5、mapred-site.xml

<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>localhost:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>localhost:19888</value>
</property>
</configuration>

6、yarn.site.xml

<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>localhost:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>localhost:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>localhost:8035</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>localhost:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>localhost:8088</value>
</property>
</configuration>

7、slaves

localhost

8、namenode格式化

    hdfs namenode -format

9、启动hadoop

    start-all.cmd

10、测试hadoop启动成功

http://localhost:50070/

 

二、配置idea + maven +hadoop

1、在IDEA中创建maven工程,配置pom.xml

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <hadoop.version>2.7.1</hadoop.version>
</properties>

<dependencies>

  <!--test-->
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.10</version>
    <scope>test</scope>
  </dependency>
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.6.4</version>
  </dependency>

  <!--hadoop-->
  <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-hdfs</artifactId>
    <version>${hadoop.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-common</artifactId>
    <version>${hadoop.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.hadoop</groupId>
    <artifactId>hadoop-client</artifactId>
    <version>${hadoop.version}</version>
  </dependency>

</dependencies>

2、创建类

import org.apache.hadoop.conf.Configuration;
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.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.output.FileOutputFormat;

import java.io.IOException;

/**
 * Created by Quiet on 2017/6/8.
 */
public class OilTotal {
    public static class OilMapper extends Mapper<LongWritable, Text, Text, IntWritable> {
        @Override
        protected void map(LongWritable key, Text value, Context context) throws IOException, InterruptedException {
            //油卡信息
            String info = value.toString().split("\\|")[0];
            context.write(new Text(info), new IntWritable(1));
        }
    }

    public static class OilReducer extends Reducer<Text, IntWritable, Text, IntWritable> {
        @Override
        protected void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException {
            int sum = 0;
            for (IntWritable value : values) {
                sum += value.get();
            }
            context.write(key, new IntWritable(sum));
        }
    }

    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
        //设置hdfs的通讯地址

        Job job = Job.getInstance(conf);
        job.setJobName("oilJob");
        job.setJarByClass(OilTotal.class);
        job.setMapperClass(OilMapper.class);
        job.setReducerClass(OilReducer.class);
        job.setMapOutputKeyClass(Text.class);
        job.setMapOutputValueClass(IntWritable.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        //设置传入文件和输出文件在hadoop服务器
        String path = "hdfs://localhost:9000/bigdata/oil/";
        FileInputFormat.addInputPath(job,new Path(path));
        FileOutputFormat.setOutputPath(job,new Path(path+"result"));

      /*
        //设置传入文件和输出文件在本地
        FileInputFormat.addInputPath(job,new Path(args[0]));
        FileOutputFormat.setOutputPath(job,new Path(args[1]));*/

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



   }
}

 

三、两种方式配置项目启动

1、配置hadoop服务器中文件的输入输出路径 ,传入文件须上传到hadoop服务器,输出结果也在服务器

String path = "hdfs://localhost:9000/bigdata/oil/";
FileInputFormat.addInputPath(job,new Path(path));
FileOutputFormat.setOutputPath(job,new Path(path+"result"));


 

 

2、配置本地文件的输入输出路径 

文件上传和结果输出全自动放在本地

 

在项目中创建input文件夹,传入文件存入在此目录下,output目录程序启动时会自动创建,存放输出结果


 

程序中处理路径如下:

FileInputFormat.addInputPath(job,new Path(args[0]));
FileOutputFormat.setOutputPath(job,new Path(args[1]));

四、启动项目

     执行应用程序成功:

Map-Reduce Framework

Map input records=20

Map output records=20

Map output bytes=880

Map output materialized bytes=926

Input split bytes=116

Combine input records=0

Combine output records=0

Reduce input groups=10

Reduce shuffle bytes=926

Reduce input records=20

Reduce output records=10

Spilled Records=40

Shuffled Maps =1

Failed Shuffles=0

Merged Map outputs=1

GC time elapsed (ms)=0

五、常见问题

1、运行Hadoop2WordCount.java代码时出现了这样错误,

log4j:WARNPleaseinitializethelog4jsystemproperly. log4j:WARNSeehttp://logging.apache.org/log4j/1.2/faq.html#noconfigformoreinfo. Exceptioninthread"main"java.lang.NullPointerExceptionatjava.lang.ProcessBuilder.start(UnknownSource)atorg.apache.hadoop.util.Shell.runCommand(Shell.java:482)atorg.apache.hadoop.util.Shell.run(Shell.java:455)atorg.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:715)atorg.apache.hadoop.util.Shell.execCommand(Shell.java:808)atorg.apache.hadoop.util.Shell.execCommand(Shell.java:791)at

分析:

下载Hadoop2以上版本时,在Hadoop2bin目录下没有winutils.exe

hadoopbin_for_hadoop2.7.1中的内容放入bin目录下,并将hadoop.dll放在C:\WINDOWS\SYSTEM32,将电脑重新启动,再交执行即可

2、输出路径中的目录文件已经存在

Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory file:/E:/projectcty/IDEA/bigdata/output already exists

删除hadoop中的输出目录路径中的文件,程序执行时会自动创建

  • 大小: 36.8 KB
  • 大小: 42.5 KB
  • 大小: 36.1 KB
分享到:
评论

相关推荐

    hive-site.xml

    hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+hadoop配置文件hive+...

    linux+hadoop笔记(一)

    hadoop学习笔记,分天学习,原创,亲测,放心使用,没问题。

    win10下搭建Hadoop环境(jdk+mysql+hadoop+scala+hive+spark) 3.docx

    在Windows 10环境下搭建Hadoop生态系统,包括JDK、MySQL、Hadoop、Scala、Hive和Spark等组件,是一项繁琐但重要的任务,这将为你提供一个基础的大数据处理平台。下面将详细介绍每个组件的安装与配置过程。 **1. JDK...

    Hadoop+Spark+Hive+HBase+Oozie+Kafka+Flume+Flink+ES+Redash等详细安装部署

    在安装Hadoop时,通常需要配置集群环境,包括主节点和从节点,并确保所有节点之间的网络通信畅通。 Spark是大数据处理的另一个关键组件,它支持批处理、交互式查询(通过Spark SQL)、实时流处理(通过Spark ...

    基于SpringMVC+Spring+HBase+Maven搭建的Hadoop分布式云盘系统.zip

    在这个项目中,Spring可能用于配置和管理数据库连接、事务以及服务层组件。 3. **HBase**:HBase是一个非关系型数据库,基于Google的Bigtable设计,是Apache Hadoop生态系统的一部分。它提供高并发、低延迟的数据...

    大数据企业实训项目:基于SpringMVC+Spring+HBase+Maven搭建的Hadoop分布式云盘系统+源代码+文档说

    大数据企业实训项目:基于SpringMVC+Spring+HBase+Maven搭建的Hadoop分布式云盘系统。使用Hadoop HDFS作为文件存储系统、HBase作为数据存储仓库,采用SpringMVC+Spring框架实现,包括用户注册与登录、我的网盘、关注...

    hadoop2.8.1+hadoop+winutils编译包

    总结来说,这个“hadoop2.8.1+hadoop+winutils编译包”提供了在Windows环境下运行Hadoop 2.8.1所需的所有组件,包括Hadoop的核心功能和针对Windows的兼容性工具。通过合理安装和配置,用户可以在Windows系统上进行...

    spark环境安装(Hadoop HA+Hbase+phoneix+kafka+flume+zookeeper+spark+scala)

    - `hdfs-site.xml`中需配置NameNode和DataNode的位置及副本数量等。 - `core-site.xml`中需配置HDFS和YARN的地址。 - `mapred-site.xml`用于MapReduce配置。 - `yarn-site.xml`中需配置ResourceManager和NodeManager...

    springmvc+hadoop+maven实现文件上传至hdfs

    在本项目中,我们结合了SpringMVC、Hadoop和Maven这三个技术,构建了一个能够实现文件从Web端上传到HDFS(Hadoop Distributed File System)的系统。下面将详细阐述这三个技术及其在项目中的应用。 首先,SpringMVC...

    徐老师大数据培训Hadoop+HBase+ZooKeeper+Spark+Kafka+Scala+Ambari

    根据提供的标题、描述、标签及部分内容链接,我们可以推断出这是一个关于大数据技术栈的培训课程,涉及的技术包括Hadoop、HBase、Zookeeper、Spark、Kafka、Scala以及Ambari。下面将针对这些技术进行详细的介绍和...

    hadoop+hbase+zookeeper集群配置流程及文件

    1. 设置Hadoop依赖:在`hbase-site.xml`中指定Hadoop的配置目录。 2. 配置HBase:包括`hbase.rootdir`(HBase的HDFS路径)、`hbase.cluster.distributed`(分布式模式)等。 3. 初始化HBase:执行`hbase hbck -fix`...

    Hadoop+Hbase+Spark+Hive搭建

    在本文档中,我们详细地介绍了Hadoop+Hbase+Spark+Hive的搭建过程,包括环境准备、主机设置、防火墙设置、环境变量设置、Hadoop安装、Hbase安装、Spark安装和Hive安装。本文档旨在指导读者从零开始搭建Hadoop+Hbase+...

    基于Hadoop图书推荐系统源码+数据库.zip

    基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书推荐系统源码+数据库.zip基于Hadoop图书...

    快速配置Hadoop开发环境 Win7+Eclipse&amp;CentOS7+Hadoop2 5 1

    第二部分是基于Windows 7 64位Eclipse开发环境的配置 若严格按本文步骤执行的话应该可以配置环境完成(没把握的话连空格都不要改动 血的教训 ) 若有问题欢迎各位邮件或到blog中交流 本文最后修改时间:2014年11月14...

    Hadoop2.5.1的HA+Federation的详细配置

    - 在Zookeeper的配置文件`zoo.cfg`中,添加Hadoop相关的配置,如`initLimit`和`syncLimit`,以及NameNode的客户端连接信息。 6. **配置Failover Controller**: - 在每个NameNode节点上启动Failover Controller...

    基于CentOS7的Hadoop2.7.7集群部署+hive3.1.1+Tez0.9.1.doc

    在本文档中,我们将搭建一个基于CentOS7的Hadoop2.7.7集群,包括一个master主机和两个slave主机。master主机的IP地址为192.168.7.232,slave主机的IP地址分别为192.168.7.233和192.168.7.229。Hive的IP地址为192.168...

    hadoop2+eclipse+win7开发所需环境

    标题"hadop2+eclipse+win7开发所需环境"指的是在Windows 7操作系统上,使用Eclipse集成开发环境进行Hadoop 2.x应用程序的开发所需的一系列配置和工具。在这样的环境中,开发者可以编写、测试和调试Hadoop MapReduce...

    Hadoop2.2+Zookeeper3.4.5+HBase0.96集群环境搭建

    软件方面,需要安装jdk-7u55-linux-x64.rpm、apache-maven-3.1.1-bin.tar、hadoop-2.2.0-src.tar.gz、protobuf-2.5.0.tar.gz、zookeeper-3.4.5.tar.gz和hbase-0.96.2-hadoop2-bin.tar.gz等软件。 Hadoop2.2安装和...

Global site tag (gtag.js) - Google Analytics