evonchang的个人博客分享 http://blog.sciencenet.cn/u/evonchang

博文

Hadoop安装与调试的详细过程

已有 7770 次阅读 2012-7-11 19:31 |系统分类:科研笔记| 安装, office, xml

                  

1. windows下安装VMWare workstation 7.1.2 并装centos  VMWare Tools ,详见Linux下的安装及设置

    root:XXXXX grid:grid----hadoop将在grid用户下安装使用

 

2.ssh

    系统已有,免安装。netstat -tunlp可查看已开的端口中有ssh的,可ssh localhost测试,需要输入密码登陆。

    设置:目的是grid@A机器中ssh grid@B机器 免密码,方式是A机器中生成密钥对,自己留下私钥,把公钥放到B中的~/.ssh

    A中以grid登陆,生成dsa密钥对:$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

    或生成rsa密钥对:ssh-keygen -t rsa

    复制公钥:cp id_dsa.pub authorized_keys,若有多个公钥需要保存则往后添加:cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

注意:.ssh的权限为700 authorized_keys的权限为600,则第一次登录时需要密码,之后不用。

 

3.安装jdk

    参考:安装jdk(jdk-7u4-linux-i586.rpm)/usr/java,以root身份。

 

4.hadoop/home/grid/app/下,以grid身份

    cd ~/app/

    tar -zxvf hadoop-1.0.3.tar.gz 解压到app

    改环境变量:

        cd hadoop

        gedit conf/hadoop.env.shexport JAVA_HOME=/usr/java/jdk1.7.0_04

    此时,单机模式OK,可测试grep正则搜索:

    The following example copies the unpacked conf directory to use as input and then finds and displays every match of the given regular expression. Output is written to the given output directory.

    $ mkdir input

    $ cp conf/*.xml input

    $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+'

    $ cat output/*

 

5.配置伪分布式,仍然以grid身份:

    gedit conf/core-site.xml

    <configuration>

         <property>

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

             <value>hdfs://localhost:9000</value>

         </property>

        <property><name>hadoop.tmp.dir</name><value>/home/grid/tmp/hadoop</value></property></configuration>

    </configuration>

注意1hadoop.tmp.dir是分布式文件系统的位置,默认是/tmp下,但不安全,因为可能被删导致文件系统部完整,导致namenode起不来。

注意2/home/grid/tmp文件夹可以存在,但在格式化前,hadoop文件不要手动建立,否则文件系统格式化不成功

 

    gedit conf/hdfs-site.xml

    <configuration>

         <property>

             <name>dfs.replication</name>

             <value>1</value>

         </property>

    </configuration>

 

    gedit conf/mapred-site.xml

    <configuration>

         <property>

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

             <value>localhost:9001</value>

         </property>

    </configuration>

 

    格式化dfs/bin/hadoop namenode -format

    若不成功,要把/home/grid/tmp/hadoop删掉再格;若无权限也可能格不成功,此处均在grid用户下操作。

 

    启动守护进程:bin/start-all.sh

    可查看ps -ef 看有无5java进程,分别是namenode secondnamenode datanode jobs task

    http://localhost:50070/ 查看namenode

    http://localhost:50030/ 查看jobtrackeer

    datanode起不来,可尝试关掉防火墙:/etc/init.d/iptables stop

 

    测试一:grep

    bin/hadoop fs -put conf input hadoop文件夹下的conf文件夹复制到dfs/user/grid/input,做为输入文件夹

    bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[a-z.]+' 运行hadoop文件夹下的jar例子程序中的grep小程序(class),输入文件夹是input,输出文件夹是outputgrep查找的是dfs开头的内容。此output文件夹貌似也不要手动建立。

    bin/hadoop fs -get output output 将运行结果output文件夹复制到hadoop(当前目录)

    cat output/* 再查看输出

    或直接在DFS中查看结果:bin/hadoop fs -cat output/*

 

    测试二:wordcount

    hadoop/input中建test1.txt(hello world)test2.txt(hello hadoop)

    bin/hadoop fs -put input in

    bin/hadoop jar hadoop-examples-*.jar wordcount in out

    bin/hadoop fs -cat out/*

    则结果是:hadoop 1    hello 2    world 1

 

6.配置分布式(仍都在grid用户下,没试过,请查看hadoop分布式配置

 

7.hadoop的使用

    关进程,在hadoop文件夹下:bin/stop-all.sh

    查看命令:bin/hadoop

    分布式文件系统:

        HDFS:/home/grid/tmp/hadoop/mapred/system ----格式化后的DFS系统

                    /usr/grid/in ----直接复制(bin/hadoop fs -put input in)in目录的情况

    在文件系统中新建目录:bin/hadoop fs -mkdir /tmp/wordcount

    复制本地文件到文件系统:bin/hadoop fs -copyFromLocal /home/grid/word.txt  /tmp/wordcount/word.txt

 

8.eclipse安装到/home/grid/app/并汉化

Eclipse版本:eclipse-java-helios-SR2-linux-gtk.tar.gz(3.7的版本)

Eclipse官方下载 http://www.eclipse.org/downloads/

各版本的区别:

    Eclipse IDE for Java DevelopersEclipseplatform加上JDT插件,用来java开发的

    Eclipse IDE for Java EE Developers应该是Eclipseplatform加上WTP插件,用来java企业级开发的

    Eclipse IDE for C/C++ DevelopersEclipseplatform加上CDT插件,用来做CC++开发的

    Eclipse for RCP/Plug-in DevelopersEclipseSDK,主要用来插件开发

    Eclipse Classic就是原来的Eclipse,还是主要用来开发java

eclipse解压:tar xvf eclipse-java-indigo-SR2-linux-gtk.tar.gz则运行是英文版

 

汉化方法:http://www.oschina.net/question/111098_14079

汉化包下载:http://www.eclipse.org/babel/downloads.php

BabelLanguagePack-eclipse-zh_3.7.0.v20111128043401.zip下的featuresplugins下的文件分别放到eclipse目录下,再启动eclipse即中文。

 

9.eclipse安装hadoop插件及配置

hadoop-eclipse-plugin-1.0.3.jar复制到eclipse/plugins下,

重启eclipse,窗口-首选项-Hadoop Map/Reduce,设置hadoop的安装目录/home/grid/hadoop-1.0.3

窗口-显示视图-Map/Reduce Location,则会出现Map/Reduce Location的视图窗口,在窗口右上角点新建,新建一个Location

    Location Name: hadoop(任意)

    Map/Reduce Master: localhost 9000 (同hadoopcore-site.xml mapred-site.xml中的配置)

    DFS Master: localhost 9001

    配置后,在Project Exploror窗口中DFS Location出现hadoop-(2)-... 说明成功,能连上DFS服务

 

10.eclipsewordcount例子:

新建项目:File-->New-->Other-->Map/Reduce Project ,项目名可以随便取,如WordCount

复制 hadoop安装目录下/src/example/org/apache/hadoop/example/WordCount.java到刚才新建的项目下面。

 

输入文件准备:在hadoop/input中建test1.txt(hello world)test2.txt(hello hadoop)

                            bin/hadoop fs -put input in

 

运行的配置:

    在新建的项目Hadoop,点击WordCount.java,右键-->Run As-->Run Configurations 
    
在弹出的Run Configurations对话框中,点Java Application,右键-->New,这时会新建一个application名为WordCount 
    
配置运行参数,点Arguments,在Program arguments中输入你要传给程序的输入文件夹和你要求程序将计算结果保存的文件夹,如:

hdfs://localhost:9000/user/grid/in   hdfs://localhost:9000/user/grid/out

如果运行时报java.lang.OutOfMemoryError: Java heap space 配置VM arguments(Program arguments)

-Xms512m -Xmx1024m -XX:MaxPermSize=256m

运行,控制台会输入一大堆信息,但查看结果:bin/hadoop fs -cat out/*

 

参考资料:

官方文档:http://hadoop.apache.org/common/docs/r1.0.3/single_node_setup.html

网络文档:基于EclipseHadoop应用开发环境配置http://www.cnblogs.com/flyoung2008/archive/2011/12/09/2281400.html

 

 

 



https://blog.sciencenet.cn/blog-540233-591217.html


下一篇:配置Hadoop环境之安装jdk
收藏 IP: 182.91.150.*| 热度|

1 刘洋

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-26 00:44

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部