文档章节

Ubuntu上安装Hadoop伪分布

KevinWen
 KevinWen
发布于 2014/04/29 19:25
字数 1995
阅读 2512
收藏 5

JDK版本:jdk-6u45-linux-x64.bin

(下载网址:http://www.oracle.com/technetwork/java/javase/downloads/index.html,请到Previous Releases里面找)

Hadoop版本:hadoop-0.20.203.0rc1.tar.gz

(网上大多数教程都是这个版本的,其实新版的已经出了很久了,但是新版的教程很少,学习阻力太大,所以暂时还是用这个版本吧)

       用到的所有文件都存放在/home/kevin 目录下(我的用户组的名字是kevin,也就是存放在Documents文件夹所在的目录),要不然后面会遇到很多权限的问题,而且,最好不要用root用户登录,虽然网上很多教程都说转到root用户下,这样做不好。

1、安装Hadoop的运行环境——JDK

     其实安装JDK很简单。下载好JDK,修改权限:

sudo chmod u+x jdk-6u45-linux-x64.bin

     然后执行如下解压语句:

sudo ./jdk-6u45-linux-x64.bin

     一长串解压过程飞速闪过之后,JDK就解压完了。

     但是也有像我一样没怎么学过linux的新手,执行这条命令时不成功。观察他们的命令,发现他们没有进到jdk所在的文件夹,而直接在“/”后面输入了jdk所在的绝对路径。只是不能成功的,应该进入到jdk所在的文件夹,或者将jdk拷贝到当前路径。

     现在,配置环境变量。打开profile文件:

sudo gedit /etc/profile

     将下面几行添加到文件末尾:

export JAVA_HOME=/home/kevin/jdk
export HADOOP_HOME=/home/kevin/hadoop
export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH

     最后,文件如下:

     其中,hadoop的地址也一次性加到了其中。最后,保存退出。

     执行如下命令,更新环境变量(这一步也可以放在Hadoop安装完成后执行):

 source /etc/profile

     现在输入如下命令可以验证Java是否安装成功:

java -version

     如果显示如下,则表示安装成功:

     现在,Java安装完成~~~~~

2、配置SSH无密码登录:

     首先,更新一下系统(其实不必要,主要是因为有可能安装openssh-server不成功,所以,还是先更新一下吧)

sudo apt-get update

     一长串更新进程结束后,开始安装SSH。

    执行如下命令安装openssh-server:

sudo apt-get install openssh-server

    跑完后就安装成功。

    接下来,配置无密码登录:

ssh-keygen -t rsa -P ""

    出现如下提示:

    这是让你输入公钥和私钥的存放路径,括号里的表示默认路径,这里直接回车,选用默认路径。

    然后显示如下:

    这将生成一个隐藏文件 .ssh,进入这个文件夹,然后将公钥追加到authorized_keys文件中,此文件最初并不存在,但执行追加命令后将自动生成:

cd .ssh
cat id_rsa.pub >> authorized_keys

    如图:

    最后,验证是否安装成功。用能否登录本机来验证,命令如下:

ssh localhost

    显示如下:

    输入yes(不用在意其中的“can't be established”提示),回车,显示如下:

    然后执行退出命令:

exit

    如图:

    现在,无密码登录配置成功~~~~

3、终于开始安装Hadoop了

    下载好Hadoop,然后修改权限:

sudo chmod 777 hadoop-0.20.203.0rc1.tar.gz

    然后解压:

sudo tar zxvf hadoop-0.20.203.0rc1.tar.gz

    修改解压出来的文件夹的权限(可以看到,解压出来的文件夹上有个灰颜色的锁,至少我这儿是这样)

sudo chmod 777 -R hadoop-0.20.203

    也可以将文件夹的名字改得短一点,后文中笔者就用改后的名字:

mv hadoop-0.20.203 hadoop

    解压工作完成,现在开始配置:

    进入hadoop/conf文件夹中

cd hadoop/conf

    打开hadoop-env.sh文件,找到exportJAVA_HOME这句话,去掉注释标记,等号后面改成你的JDK路径,保存退出

    如图:

    红框位置,图为去掉#号后的截图

    接下来将配置三个文件core-site.xmlhdfs-site.xmlmapred-site.xml,其中,加入的内容都在<configuration>与</configuration>之间添加,后面不在一一赘述

    配置hdfs-site.xml文件:

    加入如下内容:

<property>
    <name>dfs.replication</name>
    <value>1</value>
</property> 
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>
<property>
    //用于存放主节点的信息,比如fsimage文件(这个文件相当重要,没有他无法读取HDFS的内容),一般设置多个地址,
    //只需在<value>与</value>之间以逗号分隔每个地址
    <name>dfs.name.dir</name>
    <value>/home/kevin/hadoop/namedata</value>    
</property>
<property>
    //设置从节点数据的存放位置,也可以设置多个
    <name>dfs.data.dir</name>
    <value>/home/kevin/hadoop/data</value>    
</property>

    保存退出。

    配置core-site.xml文件:

    加入如下内容(此文件千万别复制哦~~~~~):

<property>
    <name>fs.default.name</name>
    <value>hdfs://kevin:9000</value> //将kevin改成各位@后面的名字
</property> 
<property>
    <name>hadoop.tmp.dir</name>
    <value>/home/kevin/hadoop/tmp</value>
</property>

    保存退出

    配置mapred-site.xml文件:

    如下(别复制哦~~~):

<property>
    <name>mapred.job.tracker</name>
    <value>kevin:9001</value>//将“kevin”改成各位的用户组(@后面那个)的名字
</property>
//一下的内容可以暂时不用设置,但从经验来看,还是设置一下为好
<property>
    //一个节点上最大能运行的Map数量(默认是两个,但从经验来看,数据量大而机器又旧,两个是带不起来的)
    <name>mapred.tasktracker.map.tasks.maximum</name>
    <value>1</value>
</property>
<property>
    //每个节点最大能运行的reduce数量,默认是1个,这里写出来是为了让大家知道在哪里改这个数据
    <name>mapred.tasktracker.reduce.tasks.maximum</name>
    <value>1</value>
</property>
<property>
    //我相信大家一定会遇到“java heap space”的问题,除非各位是算法高手,并且机器内存很大
    //这个用于设置程序运行时(jvm虚拟机)的内存容量
    <name>mapred.child.java.opts</name>
    <value>-Xmx4096m</value>
</property>

    所有配置都已完成,现在格式化:

    执行如下命令:

hadoop namenode -format

    出现如下画面:

    各位不用去一行一行对照看是不是一样,接下来的操作一样可以验证。

    有的人在执行这句命令时可能出现hadoop : command not found。这是因为环境变量中没有该命令,而这就极可能是没有刷新/etc/profile文件,再执行一次jdk安装时的source命令即可。或者,也可以执行如下命令,不过前提是进入到hadoop文件夹:

sudo bin/hadoop namenode -format

    但还是建议大家source一下profile文件,要不然以后都只有进入到bin文件夹中才能hadoop上的操作

    启动hadoop:

start-all.sh

    出现如下过程:

    表示启动成功~~

    输入jps看有几个java进程(成功的话应该有如下五个,不算Jps进程):

    安装成功~~~~~

    此处有可能无法启动DataNode,笔者遇到的主要原因是多次格式化,而以前的tmp和logs文件夹没有删除所致。删除这两个文件夹,然后新建即可(别忘了该权限哦)

    可以打开浏览器看看。在浏览器地址栏中输入kevin:50070和kevin:50030

    上面的是50070的,下面的是50030的。

    配置成功了~~~~~~~

    现在,来跑一个入门的程序wordcount吧:

    在Hadoop的HDFS文件系统上建立一个input文件夹,作为输入源,命令如下:

hadoop fs -mkdir input

    将一个测试文件上传到input文件夹中,测试文件的内容就是“hello world,hello hadoop"。执行如下命令:

hadoop fs -put /home/kevin/Desktop/hello.txt input

    然后执行Hadoop自带的测试程序wordcount,命令如下:

hadoop jar hadoop-examples-0.20.203.0.jar wordcount input output

    然后等待它跑完吧:

    看看结果是否正确。显示结果的内容,命令如下:

hadoop fs -cat output/part-r-00000

    OK~~~Hadoop安装成功,也能跑了~~~~~

 

    推荐两个网站供大家学习,找了这么多网站,发现这两个讲得最好:

    http://www.cnblogs.com/xia520pi/archive/2012/04/08/2437875.html

    http://blog.csdn.net/zhaoyl03/article/details/8657104

© 著作权归作者所有

KevinWen
粉丝 1
博文 9
码字总数 6153
作品 0
泸州
私信 提问
加载中

评论(1)

yaokangjun
yaokangjun
赞一个啊
ubuntu12.04下hadoop单机模式和伪分布模式环境搭建

1.添加hadoop组(专门用来进行hadoop测试)到系统用户: 2.在hadoop中添加hadoop用户: 3.赋予hadoop管理员权限 ( 如果不想新建用户,只在自己现有用户下搭建,上面三步可以省去直接进入第四步...

lcj1992
2014/01/07
1K
2
#hadoop#单机(伪分布)安装及测试

tips:这个部署完全在以root用户操作,系统为ubuntu14.04,使用了Oracle JDK7_u55替换原来的OpenJDK 安装过程: 安装Java: 从自己的宿主机ftp服务器下载包: cd /usr/lib/jvmwget ftp://19...

Hochikong
2014/09/08
138
0
Ubuntu 12.04搭建hadoop单机版环境

前言: 本文章是转载的,自己又加上了一些自己的笔记整理的 详细地址请查看Ubuntu 12.04搭建hadoop单机版环境 Hadoop的三种运行模式 独立模式:无需任何守护进程,所有程序都在单个JVM上执行...

zhao_xiao_long
2013/07/26
0
0
Ubuntu上搭建Hadoop环境(单机模式+伪分布模式)

Hadoop在处理海量数据分析方面具有独天优势。今天花时间在自己的Linux上搭建了伪分布模式,期间经历很多曲折,现在将经验总结如下。 首先,了解Hadoop的三种安装模式: 1. 单机模式. 单机模式...

Carl_
2015/06/24
94
0
HADOOP单机系统安装

一.安装和配置JDK 1.HADOOP是以JAVA语言写成的,需要预先在本地计算机上安装JDK,由于直接使用wget不能绕过ORACLE的网站验证,可以使用下面代码下载。 wget --no-cookies --no-check-certifi...

clgo
2016/01/10
26
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么?老程序员申请加薪至30K遭拒愤然辞职,公司转眼花35K招新

身在职场,经常会暗自打听同事工资,尤其是得知身边新入职同事的工资居然比自己高,还高出一大截时,心里自然很不平衡,一心想要离职。 那么,为什么公司宁愿花高价招聘新员工也不愿意给老员...

Java技术剑
17分钟前
6
0
云桌面到底是什么,企业该用云桌面吗

随着云计算和大数据时代的到来,当前企业里讨论最多的话题之一就是:企业到底要不要用云桌面这个话题的,有的人说企业应该使用云桌面的,因为可以降低使用成本和简化运维管理,同时也有的人说...

GZASD
22分钟前
3
0
技术分享 | gh-ost 原理剖析

作者简介: 杨奇龙,网名“北在南方”,7年DBA老兵,目前任职于杭州有赞科技DBA,主要负责数据库架构设计和运维平台开发工作,擅长数据库性能调优、故障诊断。 一、简介 上一篇文章(gh-ost ...

爱可生
25分钟前
5
0
手机短信删除了怎么恢复?几个方法就能恢复

  手机短信删除了怎么恢复?前几天有个小伙伴收到了一条来着面试的通知,这个面试对他很重要,但是可气的是刚好在清理手机里面的垃圾短信,然后收到了短信之后又被删除了,却又不知道该怎么...

科技第六人
40分钟前
5
0
浅谈Builder建造者模式

一、前言 Builder建造者模式和模板模式非常像,但是也有区别,模板模式中父类对子类中的实现进行操作,在父类之中进行一件事情的处理,但是在Builder模式之中,父类和子类都不用关心怎么处理...

青衣霓裳
44分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部