在linux环境下搭建hadoop平台(伪分布式)

来源:互联网 发布:slackware 网络配置 编辑:程序博客网 时间:2024/05/22 00:17
一、hadoop之平台搭建篇

1.实验配置:ubuntu-11.04hadoop-0.20.2jdk-1.7.0_04eclipse及插件hadoop-0.20.2-eclipse-plugin,如下图:
图片

准备工作完毕!

硬件环境

安装分布式可以准备多台电脑,组成计算机集群,这里是用单机模仿分布式集群,所以所需的硬件环境只要一台个人电脑就可以了(多台的配置和一台配置差不多,会一台配置,基本上集群也会配了)。

                                  

2.搭建步骤

1.安装linux系统已发行的linux系统有多种版本,作者用的是ubuntu-11.04采用双系统,没有用虚拟机环境,点击wubi,自行安装linux系统。

2)安装并配置jdk

jdk放在指定的目录下,作者这里放在/usr/java

解压:tar–zxvf jdk-7u4-linux-i586.tar.gz

(不熟悉指令的最好先去看书,mv,cp,rm等随便找一本书查一下就可以了)

安装好后开始配置环境变量:

  (可以再vi编辑器里也可以在gedit里编辑gedit  /etc/profile

    添加如下语句到/etc/profile:

    export JAVA_HOME=/usr/java/jdk1.7.0_04

    export JRE_HOME=/usr/java/jdk1.7.0_04/jre

   export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

   (注意:如果不能在普通用户下进行各项操作,就切换成root用户,指令为sudo -i

配置好后检查jdk是否配置成功,方法如下:
图片

  (和在windows里是一样的,由于作者在windows下编辑文档,懒得换了,显现如上提示,说明jdk安装成功)

3实现无密码通信

        1.下载并安装ssh

            $ sudo apt-get install ssh  (如果是root直接敲apt-get install ssh)

              (你可以在指定目录,我安装在默认目录/root/.ssh)

        2. 先实现本机无密码通信

            首先生成密钥:$ ssh-keygen -t dsa -P''
                (注:两个单引号,另按照提示输入密钥保存文件)

          $ cd  . ssh

            再将id_dsa.pub追加到authorized_keys中去:catid_dsa.pub >> ~/.ssh/authorized_keys

       3.检查是否成功

           $ ssh localhost如果不需要密码输入,说明OK了,否则重新再弄。。

           退出sshexit

4关闭防火墙

sudo ufw disable(在配置集群是这一步是必须的,伪分布式不关也没事,可以略过)

5)安装.hadoop

    1. 解压到指定的目录下(作者把他安装在了/usr/local/hadoop:

$ tar –zvxfhadoop-0.20.2.tar.gz

        Hadoop的安装路径添加到环/etc/profile(方法和配置JDK相同):

       export HADOOP_HOME=/usr/local/hadoop

       export PATH=$HADOOP_HOME/bin:$PATH
       
export HADOOP_HOME_WARN_SUPPRESS=1

    2. 配置 hadoop(很重要)

        hadoop 的主要配置都在hadoop-0.20.2/conf 下。

      (1) conf/hadoop-env.sh中配置 Java环境(namenode datanode的配置相同):

       $ vi hadoop-env.sh

       在弹出的gedit中找到export JAVA_HOME=将你的java_home路径输入:

   export JAVA_HOME=/usr/java/jdk1.7.0_04

      (2)配置 conf/core-site.xml, conf/hdfs-site.xmlconf/mapred-site.xml   core-site.xml

 
/hadoop/conf下 
$vi conf/core-site.xml

 <configuration>

 <!--- global properties -->

 <property>

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

 <value>/usr/hadoop-0.20.2/tmp</value>

 <description>A base for other temporary directories.</description>

 </property>

 <!-- file system properties -->

 <property>

 <name>fs.default.name</name>

 <value>hdfs://localhost:9000</value>  #注意:9000namenode的监听端口

 </property>

 </configuration>

 hdfs-site.xml:( replication 默认为 3,如果不修改,datanode少于三台就会报错)

 <configuration>

 <property>

 <name>dfs.replication</name>

 <value>1</value>

 </property>

 </configuration>

mapred-site.xml:

 <configuration>

 <property>

 <name>mapred.job.tracker</name>

 <value>localhost:9001</value>    #注意:9001jobtracker的监听端口

 </property>

 </configuration>

(6).运行hadoop

   首先格式化文件系统,进入hadoop文件夹,输入下面的命令:

   bin/hadoop namenode -format

   启动 Hadoop:$ bin/start-all.sh

    jps命令查看进程,NameNode上的结果如下

   3540 TaskTracker

   3002 DataNode

   3224 SecondaryNameNode

   4987 Jps

   2829 NameNode

3383 JobTracker

TaskTracker\ DataNode\SecondaryNameNode\ NameNode\JobTracker5个都出现说明hadoop安装成功,否则如上步骤看哪里有问题

web方式查看:namenodeweb访问端口是50070,用web方式访问namenode,在浏览器键入地址:http://localhost:50070,出现如下结果。
图片


 9001也是可以用web方式来访问的,由于namenodejobtracker是设置在同一台机器上的,网址是http//localhost50030,出现
图片



二、eclipse之安装配置篇

  1.eclipse安装

    下载eclipse-SDK-3.6.2-linux-gtk.tar.gz解压安装在usr下,和hadoop-0.21.0都在ysr目录下。从csdn上下载hadoop-0.21.0-eclipse-plugin-3.6.jar,然后拷贝到/eclipse/plugin下。运行eclipse

  2.eclipse配置

   打开/usr/eclipse,选择window->Openspective->Other,选择带大象图标的map/reduce,选择OK。选择window->Preferences->Hadoop Map/Reduce,选择OK。选择window->Show View->Other,选中MapReduce Locations,移动到下方的Mapreduce框,编辑localhost,右键“New Hadoop Location”,出现如下:


    在前面的hadoop配置中,可知9000namenode的监听端口,而9001jobtracker的监听端口,在界面上新建DFS location时候,可以看到Map/Reduce Master,这是jobtracker所在机器及监听端口,设置成:host=10.2.137.238,port=9001,而DFS Master中勾选Use M/R Master Host(是否使用与JobTracker相同的主机?)当然是勾上。端口也就是9000了,host=10.2.137.238port=9000

    重新打开eclipse,出现
图片








三、
wordcount之运行调试篇

Hadoop自带一些例子,这里以最简单的wordcount测试,在hadoop目录下建立input文件夹,

$ mkdir input

$cd input

在文件夹下建2个文件,

$echohello world>text1.txt

$echo  hello hadoop>text2.txt

(建了2txt文件,里面写了2句话,一个4个单词)

然后,

$ cd ..

$ hadoop fs–put input in     #input目录及文件上传到hdfs里并改名为in作为输入

$ hadoop fs jar hadoop-0.20.2-examples.jar wordcount in out   #调用hadoop提供的java程序完成wordcount并讲结果和日志生成在out目录里

$ hadoop fs –catout/*           #*代表生成的reduce结果文件

最后就可以看到:

hello2

world 1

hadoop 1

0 0
原创粉丝点击