Hadoop安装及开发

Hadoop安装

安装环境

本人开发用的电脑操作系统是ubuntu14.04 64位,因此本文讲述的是Hadoop在ubuntu14.0464bit系统下的安装,实际上Hadoop目前也只支持Linux系统。有人号称在Windows下成功安装了Hadoop,我是没有见过。

新建用户

首先要为Hadoop的安装创建一个新用户:

sudouseradd -d /home/hadoop -m hadoop

sudopasswd hadoop

输入hadoop用户的密码,两次

为hadoop用户增加管理员权限,方便部署:

sudoadduser hadoop sudo

配置SSH免密码登录

Hadoop的伪分布模式启动时需要SSH登录本机,因此我们先设置SSH登录本机免密码:

cd~/.ssh/

如果hadoop用户的家目录下没有.ssh/目录,则先执行一次sshlocalhost

ssh-keygen-t rsa

所有提示都按回车

cat./id_rsa.pub >> ./authorized_keys

安装Java环境

Hadoop需要Java环境,至少需要JDK1.7,Java环境的安装和配置请自行百度。

Hadoop下载和安装

Hadoop2
可以在http://mirror.bit.edu.cn/apache/hadoop/common/或者http://mirrors.cnnic.cn/apache/hadoop/common/下载,一般下载
“stable”下的
hadoop-2.x.y.tar.gz这个文件,这是Hadoop的稳定版本。

下载Hadoop后解压到/usr/local目录下:

sudotar -zvxf hadoop-2.6.0.tar.gz -C /usr/local

cd/usr/local/sudo mv ./hadoop-2.6.0/ ./hadoop #将文件夹名改为hadoop

sudochown -R hadoop ./hadoop #
修改文件权限

Hadoop伪分布模式配置

开发用的Hadoop需要配置成单机模式或伪分布模式,为了开发和调试方便,我们将Hadoop配置成伪分布模式:

修改配置文件 core-site.xml

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/hadoop/tmp</value>

<description>Abasefor other temporary directories.</description>

</property>

<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>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/usr/local/hadoop/tmp/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/usr/local/hadoop/tmp/dfs/data</value>

</property>

</configuration>

Hadoop启动和停止

配置完成后,执行 NameNode的格式化:

./bin/hdfsnamenode -format

开启 NameNode和
DataNode守护进程:

./sbin/start-dfs.sh

如果这一步出现localhost:Error: JAVA_HOME is not set错误,则打开/usr/local/hadoop/etc/hadoop目录下的hadoop-env.sh文件,将其中

exportJAVA_HOME=${JAVA_HOME}

改为

exportJAVA_HOME=/usr/local/java/jdk1.7.0_79

启动完成后,可以通过命令 jps来判断是否成功启动,若成功启动则会列出如下进程:“NameNode”、”DataNode”和
“SecondaryNameNode”

运行 sbin/stop-dfs.sh可以关闭Hadoop守护进程。

Hadoop开发

Hadoop开发所需的jar包

将以下jar包拷贝到Java项目的lib目录下:

hadoop-2.x.x\share\hadoop\common
所有jar,

hadoop-2.x.x\share\hadoop\common\lib
所有jar,

hadoop-2.x.x\share\hadoop\hdfs
所有jar

hadoop-2.x.x\share\hadoop\mapreduce
所有jar

hadoop-2.x.x\share\hadoop\yarn
所有jar

一段典型的Hadoop程序

importjava.io.IOException;

importjava.util.Iterator;

importorg.apache.hadoop.conf.Configuration;

importorg.apache.hadoop.conf.Configured;

importorg.apache.hadoop.fs.Path;

importorg.apache.hadoop.io.Text;

importorg.apache.hadoop.mapred.FileInputFormat;

importorg.apache.hadoop.mapred.FileOutputFormat;

importorg.apache.hadoop.mapred.JobClient;

importorg.apache.hadoop.mapred.JobConf;

importorg.apache.hadoop.mapred.KeyValueTextInputFormat;

importorg.apache.hadoop.mapred.MapReduceBase;

importorg.apache.hadoop.mapred.Mapper;

importorg.apache.hadoop.mapred.OutputCollector;

importorg.apache.hadoop.mapred.Reducer;

importorg.apache.hadoop.mapred.Reporter;

importorg.apache.hadoop.mapred.TextOutputFormat;

importorg.apache.hadoop.util.Tool;

importorg.apache.hadoop.util.ToolRunner;

/**

*典型的Hadoop的job继承org.apache.hadoop.conf.Configured类,实现

*org.apache.hadoop.util.Tool接口

*@author zyl

*@date 2016年4月30日上午10:45:53

*@version

*@since

*/

publicclass SampleJob extends Configured implements Tool {

publicstatic class MapClass extends MapReduceBase implements Mapper<Text,Text, Text, Text> {

@Override

publicvoid map(Text key, Text value, OutputCollector<Text, Text>output, Reporter reporter)

throwsIOException {

//Map过程很简单,将文件的key和value调换后输出

output.collect(value,key);

}

}

publicstatic class Reduce extends MapReduceBase implements Reducer<Text,Text, Text, Text> {

@Override

publicvoid reduce(Text key, Iterator<Text> values,OutputCollector<Text, Text> output, Reporter reproter)

throwsIOException {

//将同一key的所有value的列表转换成用逗号分隔的一行字符串

Stringcsv = "";

while(values.hasNext()) {

if(csv.length() > 0) {

csv+= ",";

}

csv+= values.next().toString();

}

output.collect(key,new Text(csv));

}

}

/*

* (non-Javadoc)

*

* @see org.apache.hadoop.util.Tool#run(java.lang.String[])

*/

@Override

publicint run(String[] arg0) throws Exception {

Configurationconf = getConf();

JobConfjob = new JobConf(conf, SampleJob.class);

//第一个参数是输入文件在Hadoop中存储的路径

Pathin = new Path(arg0[0]);

//第二个参数是输出参数将在Hadoop中存储的目录,注意:这里指定的是目录,不是文件名

Pathout = new Path(arg0[1]);

FileInputFormat.setInputPaths(job,in);

FileOutputFormat.setOutputPath(job,out);

//指定Hadoop要执行的任务名称,用于处理Map和Reduce的类

job.setJobName("SampleJob");

job.setMapperClass(MapClass.class);

job.setReducerClass(Reduce.class);

job.setInputFormat(KeyValueTextInputFormat.class);

job.setOutputFormat(TextOutputFormat.class);

job.setOutputKeyClass(Text.class);

job.setOutputValueClass(Text.class);

//指定输入文件的分隔符,如不指定,默认的分隔符是制表符(tab)

job.set("key.value.separator.in.input.line",",");

JobClient.runJob(job);

return0;

}

/**

* @param args

*/

publicstatic void main(String[] args) {

intres = -1;

try{

res= ToolRunner.run(new Configuration(), new SampleJob(), args);

}catch (Exception e) {

//TODO Auto-generated catch block

e.printStackTrace();

}

System.exit(res);

}

}

执行Hadoop程序

将本地文件系统中的文件拷贝到Hadoop的分布式文件系统(HDFS)下:

./bin/hadoopfs -put cite75_99.txt input/cite75_99.txt

其中input目录位于HDFS的默认路径/user/hadoop下,/user/hadoop目录开始是不存在的,要用Hadoop命令来创建:

./bin/hadoopfs -mkdir /user

./bin/hadoopfs -mkdir /user/hadoop

/user/hadoop一经创建就成为HDFS的默认路径,凡未指明全路径(hdfs://localhost:9000/user/chuck这种形式的URI)的路径默认都是相对于/user/hadoop目录。

执行Hadoop程序:

./bin/hadoopjar ./ubin/hadoop-sample.jar SampleClass input/cite75_99.txtoutput/cite_out

其中 hadoop-sample.jar是把Hadoop程序打包成jar文件。

时间: 2024-08-03 22:48:15

Hadoop安装及开发的相关文章

转载:Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

原文 http://www.powerxing.com/install-hadoop/ 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到,官方网站也有 Hadoop 安装配置教程,但由于对 Linux 环境不熟悉,书上跟官网上简略的安装步骤新手往往 Hold 不住.加上网上不少教程也甚是坑,导致新手折腾老几天愣是没装好,很是打击学习热情. 本教程适合于原生 Hadoop 2,包括 Hadoop 2.6.0, Hadoop 2.7.1

Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

参见:http://www.powerxing.com/install-hadoop/ 完全拷贝至上面网址 环境 本教程使用 Ubuntu 14.04 64位 作为系统环境(Ubuntu 12.04 也行,32位.64位均可),请自行安装系统. 如果用的是 RedHat/CentOS 系统,请查看相应的CentOS安装Hadoop教程_单机伪分布式配置. 本教程基于原生 Hadoop 2,在 Hadoop 2.6.0 (stable) 版本下验证通过,可适合任何 Hadoop 2.x.y 版本,

大数据时代之hadoop(一):hadoop安装

1.hadoop版本介绍 0.20.2版本以前(不含该版本)的配置文件都在default.xml中. 0.20.x以后的版本不含有eclipse插件的jar包,由于eclipse的版本不一,所以就需要自己编译源码生成对应的插件. 0.20.2——0.22.x版本的配置文件集中在conf/core-site.xml. conf/hdfs-site.xml  和 conf/mapred-site.xml. 中. 0.23.x 版本有添加了yarn技术,配置文件集中在  conf/core-site.

[Hadoop入门] - 2 ubuntu安装与配置 hadoop安装与配置

ubuntu安装(这里我就不一一捉图了,只引用一个网址, 相信大家能力) ubuntu安装参考教程:  http://jingyan.baidu.com/article/14bd256e0ca52ebb6d26129c.html 注意下面几点: 1.设置虚拟机的IP, 点击虚拟机的右下角网络连接图标, 选择”桥接模式“, 这样才能分配到你的局域网IP, 这个很重要因为后面hadoop要用到局域网. 2.在ubuntu里面查看ip的命令:ifconfig可以显示出你的IP地址, 看一下IP是否为你

Hadoop学习笔记0001——Hadoop安装配置

Hadoop配置主要事项 1. 保证Master和Slave能够ping通: 2. 配置/etc/hosts文件: 3. 能够ssh无密码切换各台主机: 4. 安装sun公司的jdk,在/etc/profile中设置好环境变量: 5. 下载Hadoop,安装.配置.搭建Hadoop集群: 1.Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(

hadoop学习笔记(一)——hadoop安装及测试

这几天乘着工作之余,学习了一下hadoop技术,跌跌撞撞的几天,终于完成了一个初步的hadoop的安装及测试,具体如下: 动力:工作中遇到的数据量太大,服务器已经很吃力,sql语句运行老半天,故想用大数据技术来改善一下 环境:centos5.11+jdk1.7+hadoop2.5.2 1.  伪分布安装步骤 关闭防火墙 修改ip 修改hostname 设置ssh自动登录 安装jdk 安装hadoop 注:此部分涉及到的Linux操作部分可以再下面的链接中找到,Linux初级操作 2.  安装jd

Hadoop安装详解及安装错误的解决方案

特此声明:本内容所有详细内容一下面提供的附件形式出现,了解详细内容可查看附件 从4月28号搭建hadoop平台,到今天已经足足5天了,不断地改配置,敲命令,可以说真是人生一大快事吗?好了废话不多说,正式进入我的安装过程: 目录: 第一篇:Ubuntu13.1安装 第二篇:Sublime Text2安装 第三篇:hadoop+jdk1.8.0安装+ssh无密码登录 第四篇:出现的问题及解决办法(见另一篇博客) 正文: 第一篇: 我用的是Ubuntu13.1,大家可以到我的云盘下载,下面是链接: h

hadoop安装、配置

环境: 三台机器 ubuntu14.04 hadoop2.7.5 架构: machine101 :名称节点.数据节点.SecondaryNaemnode.ResourceManager.NodeManger     machine102.machine103 :数据节点.NodeManger 1.安装jdk\hadoop (1)解压hadoop.tar.gz到/soft/ (2)配置环境变量 JAVA_HOME=/soft/jdk1.7.0_45 (必须要写,hadoop会去找名叫JAVA_HO

Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0

Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0 环境 本教程使用 CentOS 6.4 32位 作为系统环境,请自行安装系统.如果用的是 Ubuntu 系统,请查看相应的 Ubuntu安装Hadoop教程. 本教程基于原生 Hadoop 2,在 Hadoop 2.6.0 (stable) 版本下验证通过,可适合任何 Hadoop 2.x.y 版本,例如 Hadoop 2.7.1, Hadoop 2.4.1等. Hadoop版本 Hadoop 有两个主要版本,