hadoop 入门 -- 图片都没了,晕,后面再补上试试

原创 2015年11月17日 20:52:51

最近开始学习hadoop,因此在这里记录一下学习的过程。

我的环境: 虚拟机上 ubuntu12.04 32bits 系统, hadoop是1.2.1,JDK1.6


1.安装,参考网上的文章

 Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)


我的hadoop安装在/usr/local/hadoop下面。根据上面两篇文章的介绍,单机版和 伪分布模式都可以工作。 


2.运行例子

hadoop自带了些例子,可以运行一个wordcount例子。

列一下几个小步骤,以便今后记忆。

a. 初始化hadoop的环境变量。



b. 启动hadoop服务。


c. 查看hadoop是否启动


d. 运行wordcount


e.查看结果


注意:1. 单机版要把input和output目录放在/usr/local/hadoop下面。伪分布模式的input和output都在hdfs文件系统里。2. 如果第二次运行同一个例子,需要先删除output目录,或者在命令行里换一个输出目录,比如output2。


3.编译例子.

例子选用一个max temperature的例子。

code I modified which marked in red:

// cc MaxTemperature Application to find the maximum temperature in the weather dataset
// vv MaxTemperature
<span style="color:#FF0000;">import org.apache.hadoop.conf.Configuration;</span>
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;
<span style="color:#FF0000;">import org.apache.hadoop.util.GenericOptionsParser;</span>
public class MaxTemperature {

  public static void main(String[] args) throws Exception {
	<span style="color:#FF0000;">Configuration conf = new Configuration();
	String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
    if (otherArgs.length != 2) {
      System.err.println("Usage: maxtemperature <in> <out>");
      System.exit(2);
    }</span>

    
    <span style="color:#FF0000;">Job job = new Job(conf,"max temperature");</span>
    job.setJarByClass(MaxTemperature.class);
    <span style="color:#FF0000;">//job.setJobName("Max temperature");</span>

    FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
    FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
    
    job.setMapperClass(MaxTemperatureMapper.class);
    job.setReducerClass(MaxTemperatureReducer.class);

    job.setOutputKeyClass(Text.class);
    job.setOutputValueClass(IntWritable.class);
    
    System.exit(job.waitForCompletion(true) ? 0 : 1);
  }
}
// ^^ MaxTemperature


3.1 准备工作:

a. 下载“hadoop权威指南第三版和配套源码”,例子在ch02目录里。

b. 安装eclipse。可以在ubuntu的software center里直接安装。

3.2 新建java工程


注意:1. 选择jdk为java环境。2.要把hadoop的jar加入到工程中,jar在hadoop目录和hadoop/lib目录下。使用图上的“add external JARs”。

3.3 用JAR 打包编译好的类,因为hadoop要运行jar文件。


jar -cvf 是打包,jar -tvf是看包的内容。

3.4 运行例子


数据文件sample.txt 要先放到hdfs的input里去。还有这里的MaxTemperature类的代码是修改过的,参照hadoop wordcount的代码修改的创建job的code。


4.hadoop streaming

4.1 python

ubuntu12.04自带的python2.7.3。所以可以直接运行。


注意在伪分布模式下要用 -file mapper.py -file reducer.py 把mapper和reducer两个文件传到集群里去。

4.2 c++

1. 首先要安装build-essential包,g++在里面。

2. 例子的Makefile需要修改如图,在LD link的时候需要加入库 -lcrypto -lssl。因此需要安装 libssl-dev。同时设置一下hadoop的地址和platform类型。


3. 运行是会出权限的错误,参考网上,基本都是要重编pipes和utils两个库。

hadoop pipes \
-D hadoop.pipes.java.recordreader=true \
-D hadoop.pipes.java.recordwriter=true \
-input sample.txt \
-output output \
-program bin/max_temperature
注意 bin/max_temperature 是在hdfs里面的。

4. 重编utils库。要先编utils,因为pipes要用到utils的头文件。

./configure
make install

5. 重编pipes库。pipes的configure出现找不到libssl.so的错,需要把configure里的-lssl $LIBS 改为-lssl -lcrypto $LIBS,如下图。一共两处,都要改。


6. 用新编的utils和pipes库替换安装时的库和头文件(hadoop/c++/Linux-i386-32/),重新编c++例子。

7. 再次运行。




hadoop入门教程-程序小实例

无论是在微信还是QQ,我们经常看到好友推荐这样的功能,其实这个功能是在大数据的基础上实现的,下面来看具体的代码实现: 在src下添加三个类:JobRun.java: package com.lft...
  • u010158267
  • u010158267
  • 2016年03月31日 22:09
  • 799

Hadoop入门进阶步步高(一)-环境准备

前言Hadoop从存储上来说,是类似于冗余磁盘阵列(RAID)的存储方式,将数据分散存储并提供以提供吞吐量,它的存储系统就是HDFS(Hadoop Distuibute Fils System);从计...
  • fenglibing
  • fenglibing
  • 2014年06月15日 21:53
  • 9004

Hadoop从入门到精通 (一):Hadoop环境搭建准备

大家好,我是Stefan,今天开始为大家带来详细的Hadoop学习教程,大家可以按照我的教程步骤一步一步步入云计算的开发行列,好了,废话不多说,我们开始第一篇:Hadoop环境搭建。 万事开头难,这话...
  • guoshenglong11
  • guoshenglong11
  • 2014年03月29日 15:02
  • 2529

Hadoop大数据平台入门——第一个小程序WordCount

首先我们需要安装Hadoop,并对Hadoop进行配置。这里我们就不赘述了,详情看这篇博客:Hadoop安装配置 值得注意的是,配置的时候,需要给Hadoop权限才能正确执行。最简单的办法就是讲ha...
  • a60782885
  • a60782885
  • 2017年05月07日 10:42
  • 3103

Hadoop、Spark开发入门视频书籍推荐

本人大数据学习菜鸟一枚,从零开始学习大数据,这里分享我的学习过程。自学是一个考验毅力的过程,当然对自身也是一个锻炼提高的过程,但是有时候,从零开始学习,举步维艰,个人深有体会。离开学生时代的填鸭式教学...
  • u010638969
  • u010638969
  • 2016年11月29日 13:39
  • 2837

管理学定律八:晕轮效应与霍桑效应

1、晕轮效应 1.1 来源     晕轮效应最早是由美国著名心理学家爱德华·桑戴克于20世纪20年代提出的。他认为,人们对人的认知和判断往往只从局部出发,扩散而得出整体印象,也即常常以偏概全。一个...
  • aoshilang2249
  • aoshilang2249
  • 2015年02月09日 20:45
  • 1408

hadoop入门级总结一:HDFS

虽然hadoop经历了多年的发展,作为技术人员都或多或少的使用过或者了解过。这里还是做一个简单的总结,主要原因是之前主要是做hadoop的开发,对hadoop的运维知之甚少,但真正的接触到hadoop...
  • zbc1090549839
  • zbc1090549839
  • 2016年07月07日 21:29
  • 2565

零基础学习hadoop到上手工作线路指导

问题导读: 1.hadoop编程需要哪些基础? 2.hadoop编程需要注意哪些问题? 3.如何创建mapreduce程序及其包含几部分? 4.如何远程连接eclipse,可能会遇到什么问题?...
  • whl632359961
  • whl632359961
  • 2016年06月15日 09:55
  • 7571

Hadoop五分钟入门指南

《Hadoop五分钟入门指南》原文见:http://blog.josedacruz.com/2013/12/09/hadoop-in-5-minutes-for-beginners/#.Uqhs3_Q...
  • chszs
  • chszs
  • 2013年12月11日 22:21
  • 2847

晕轮效应与霍桑效应

1、晕轮效应 1.1 来源     晕轮效应最早是由美国著名心理学家爱德华·桑戴克于20世纪20年代提出的。他认为,人们对人的认知和判断往往只从局部出发,扩散而得出整体印象,也即常常以偏概全。一个...
  • chihen
  • chihen
  • 2015年02月11日 13:25
  • 486
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hadoop 入门 -- 图片都没了,晕,后面再补上试试
举报原因:
原因补充:

(最多只允许输入30个字)