当前位置: 首页 > news >正文

Hadoop单机版快速搭建及测试

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、快速配置Hadoop并启动(为了快速上手用单机搭建):

hadoop下载地载:http://mirror.bit.edu.cn/apache/hadoop/ 
1、修改配置文件:
core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>


hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

hadoop-env.sh

export JAVA_HOME=/usr/java/jdk1.8.0_121

2、格式化文件系统

./hdfs namenode -format

3、启动名称节点和数据节点后台进程

./sbin/start-dfs.sh


 启动ResourceManger和NodeManager后台进程

./sbin/start-yarn.sh

或者只用

./sbin/start-all.sh

二、测试

2.1 HDFS测试

使用浏览器查看hdfs目录,端口号是50070:

操作材料下载

https://pan.baidu.com/s/1hs62YTe

进入hadoop解压目录下的bin目录, HDFS创建目录:

./hdfs dfs -mkdir /wordcount
./hdfs dfs -mkdir /wordcount/result
./hadoop fs -rmr /wordcount/result

拷贝input文件夹到HDFS目录下

./hdfs dfs -put /opt/input /wordcount

查看文件列表:

./hadoop fs -ls /wordcount/input

2.2 MapReduce测试

是参考官方文档的wordcount实验,将wordcount的代码译并打包,放到服务器的目录(/opt/testsource)下(注意不是hdfs的目录下)

并将测试的要进行wordcount的文件放入hdfs的/wordcount/input目录下

执行hadoop job

./hadoop jar /opt/testsource/learning.jar  
          hadoop.WordCount /wordcount/input   /wordcount/result

确认执行结果

hdfs dfs -cat /wordcount/result/*

 

附wordcount代码:

package hadoop;

/**
 * Created by BD-PC11 on 2017/3/29.
 */

import java.io.IOException;
import java.util.*;

import org.apache.hadoop.fs.Path;
import org.apache.hadoop.conf.*;
import org.apache.hadoop.io.*;
import org.apache.hadoop.mapred.*;
import org.apache.hadoop.util.*;

public class WordCount {

    public static class Map extends MapReduceBase 
                        implements Mapper<LongWritable, Text, Text, IntWritable> {
        private final static IntWritable one = new IntWritable(1);
        private Text word = new Text();

        public void map(LongWritable key, Text value, OutputCollector<Text, IntWritable> output, 
                        Reporter reporter) throws IOException {
            String line = value.toString();
            StringTokenizer tokenizer = new StringTokenizer(line);
            while (tokenizer.hasMoreTokens()) {
                word.set(tokenizer.nextToken());
                output.collect(word, one);
            }
        }
    }

    public static class Reduce extends MapReduceBase 
                        implements Reducer<Text, IntWritable, Text, IntWritable> {
        public void reduce(Text key, Iterator<IntWritable> values, 
                           OutputCollector<Text, IntWritable> output, 
                           Reporter reporter) throws IOException {
            int sum = 0;
            while (values.hasNext()) {
                sum += values.next().get();
            }
            output.collect(key, new IntWritable(sum));
        }
    }

    public static void main(String[] args) throws Exception {
        JobConf conf = new JobConf(WordCount.class);
        conf.setJobName("wordcount");

        conf.setOutputKeyClass(Text.class);
        conf.setOutputValueClass(IntWritable.class);

        conf.setMapperClass(Map.class);
        conf.setCombinerClass(Reduce.class);
        conf.setReducerClass(Reduce.class);

        conf.setInputFormat(TextInputFormat.class);
        conf.setOutputFormat(TextOutputFormat.class);

        FileInputFormat.setInputPaths(conf, new Path(args[0]));
        FileOutputFormat.setOutputPath(conf, new Path(args[1]));

        JobClient.runJob(conf);
    }
}

 

转载于:https://my.oschina.net/u/2604795/blog/873061

相关文章:

  • Android开源项目规范总结
  • PHP 使用 Redis
  • MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)
  • Visual Studio 版本管理从TFS迁移到SVN
  • write-ahead-log与append-only-file的原理
  • sass中的三种循环
  • 【腾讯Bugly干货分享】经典随机Crash之一:线程安全
  • 基于Docker搭建Redis主从
  • Centos6.5安装lvs+keepalived集群
  • FTP服务系列一FTP的基础知识以及服务器端的配置
  • vsftpd.conf 详解与实例配置
  • swift中UISearchBar的使用
  • MSP项目群管理介绍
  • cmake 添加头文件目录,链接动态、静态库(转载)
  • Phantomjs v.2.1 addCookie()始终返回错误
  • .pyc 想到的一些问题
  • CAP理论的例子讲解
  • FineReport中如何实现自动滚屏效果
  • JavaScript DOM 10 - 滚动
  • JAVA并发编程--1.基础概念
  • jquery ajax学习笔记
  • k8s如何管理Pod
  • laravel5.5 视图共享数据
  • PaddlePaddle-GitHub的正确打开姿势
  • PHP 7 修改了什么呢 -- 2
  • React组件设计模式(一)
  • v-if和v-for连用出现的问题
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 将 Measurements 和 Units 应用到物理学
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 微信公众号开发小记——5.python微信红包
  • 用jQuery怎么做到前后端分离
  • 运行时添加log4j2的appender
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • ​水经微图Web1.5.0版即将上线
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • *2 echo、printf、mkdir命令的应用
  • .NET BackgroundWorker
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .NET/C# 的字符串暂存池
  • .so文件(linux系统)
  • .sys文件乱码_python vscode输出乱码
  • //解决validator验证插件多个name相同只验证第一的问题
  • /dev下添加设备节点的方法步骤(通过device_create)
  • ?
  • @Conditional注解详解
  • @SpringBootApplication 包含的三个注解及其含义
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器
  • [4.9福建四校联考]
  • [Android Pro] Notification的使用
  • [android]-如何在向服务器发送request时附加已保存的cookie数据