当前位置: > Linux集群 > Hadoop >

Hadoop0.20.2+Ubuntu13.04配置和WordCount测试

时间:2014-12-25 22:12来源:linux.it.net.cn 作者:IT
  • 其实这篇博客写的有些晚了,之前做过一些总结后来学校的事给忘了,这几天想重新拿来玩玩发现有的东西记不住了,翻博客发现竟然没有,好吧,所以赶紧写一份留着自己用吧,这东西网上有很多,不过也不是完全适用,所以还是自己留一份吧,废话完毕。

    因为之前留的资料室写在记事本上的,所以没有图片= =





    Full name: MyHadoop
    User name: uit
    Password: 000


    系统:ubuntu13.04
    Hadoop版本:0.20.2

    虚拟机:
    这个我感觉是最基本的了,应该不用多说什么,虚拟机,我用的是vmware,然后是ubuntu13.04的镜像,这个不会的话,就随便问问会的好了,很好搞的



    先装java环境(这个实在ubuntu13.04下装的,与下面的就路径不同而已)
    1.首先确认jdk的包在你u盘或者硬盘里
    2.把u盘里的压缩包拷到这个的文件夹下------cp -r /media/uit/MyDisk/Hadoop/jdk-7u45-linux-i586.tar.gz 


    /usr/lib/jvm(需要注意的是,这个版本的ubuntu是自带jdk的,不过,我还是自己装了一次,因为自带的路径不知道在哪


    ,还是自己装一遍吧)
    3.进入到文件夹下--cd /usr/lib/jvm;
    4.解压这个包----- sudo tar -zxvf jdk-7u45-linux-i586.tar.gz 不写别的路径,就是直接解压到当前目录


    ,如果要解压到别的目录在后面加上即可(如果解压的时候需要权限的话,输入sudo -s 然后输入你的登陆密码即可)
    5.解压完后--sudo gedit /etc/profile
    6.在最后面加上-------#Set Java Environment
    export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
    (这些路径要根据自己的实际情况来填写)


    7.改掉系统的默认设置---sudo update-alternatives --install /usr/bin/java java 
    /usr/lib/jvm/jdk1.7.0_45/bin/java 300

    sudo update-alternatives --install /usr/bin/javac javac 
    /usr/lib/jvm/jdk1.7.0_45/bin/javac 300


    sudo update-alternatives --config java(这里如果装ubuntu已经自带jdk的话会让你做出选择,这里选自己装的jdk那个选项)

    sudo update-alternatives --config javac


    8.输入java -version能看到版本信息即可:
    java version "1.7.0_45"
    Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
    Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode)







    /*
    装java环境(这个实在xbuntu 13.10下装的java环境):
    1.首先在ubuntu下建立一个文件夹-------cd usr ;  
    mkdir java;
    2.把u盘里的压缩包拷到这个的文件夹下------cp -r /media/uit/MyDisk/Hadoop/jdk-7u45-linux-i586.tar.gz /usr/java
    3.进入到文件夹下--cd java;
    4.解压这个包----- sudo tar -zxvf jdk-7u45-linux-i586.tar.gz 不写别的路径,就是直接解压到当前目录,如果要解压到别的目录在后面加上即可(如果解压的时候需要权限的话,输入sudo -s 然后输入你的登陆密码即可)
    5.解压完后--sudo gedit /etc/profile
    6.在最后面加上-------#Set Java Environment
    export JAVA_HOME=/usr/java/jdk1.7.0_45
    export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
    export PATH=$PATH:$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
    (这些路径要根据自己的实际情况来填写)


    7.改掉系统的默认设置---sudo update-alternatives --install /usr/bin/java java

    /usr/java/jdk1.7.0_45/bin/java 300

    sudo update-alternatives --install /usr/bin/javac javac 
    /usr/java/jdk1.7.0_45/bin/javac 300

    sudo update-alternatives --config java(这里如果装ubuntu已经自带jdk的话会让你做出选择,这里选自己装的jdk那个选项)

    sudo update-alternatives --config javac


    8.输入java -version能看到版本信息即可:
    java version "1.7.0_45"
    Java(TM) SE Runtime Environment (build 1.7.0_45-b18)
    Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode)
    */









    安装ssh:(安的时候注意不要在根权限root下安装,并且必须先于hadoop装,别装完hadoop再装ssh,有可能hadoop运行不起来)
    1. sudo apt-get install ssh 
    sudo apt-get install rsync
    2.运行ssh -version看看是否已经安装
    3.查看ssh的状态ps -ef | grep ssh------如果有个sshd运行着就说明好用,如果没有请往下看
    4.(如果执行完上面的后查看ssh并没有sshd这个进程,进行如下操作)--------
    ①到https://launchpad.net/ubuntu/lucid/i386/openssh-client/1:5.3p1-3ubuntu3下载文件,

    下载完后安装-----cd /home/uit/Downloads
    sudo dpkg -i openssh-client_5.3p1-3ubuntu3_i386.deb
    ②到https://launchpad.net/ubuntu/lucid/i386/openssh-server/1:5.3p1-3ubuntu3下载文件,

    完后安装------sudo dpkg -i openssh-server_5.3p1-3ubuntu3_i386.deb
    ③到https://launchpad.net/ubuntu/lucid/i386/ssh/1:5.3p1-3ubuntu3下载文件,

    完后安装----sudo dpkg -issh_5.3p1-3ubuntu3_all.deb
    需要注意的是有时候安装第二三步的时候会出错,提示一个错误,我刚开始装的也出错了,这时候可以用命令行


    下载一个东西----apt-get install libssl0.9.8,然后再重新执行上面的命令(不用在下载了)
    ④这些都下完装完后,运行ssh-------cd /etc/init.d
    ./ssh start
    ⑤OK,在运行ps -ef | grep ssh看看,此时应该就有sshd这个进程了


    ⑥配置文件修改------------------gedit /etc/ssh/sshd_config
    (要确保这些字符前无注释符号“#”)
    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    PasswordAuthentication yes
    PeimitEmptyPasswords yes


    5.配置无密码登录
    ①首先看看是否在根文件夹下有没有.ssh文件夹--------ll /home/uit,有,下一步;没有,创建------mkdir ~/.ssh
    ②创建密匙---------ssh-keygen -t rsa(这里会让你填一个保存密匙的文件,就把括号妮的那个就行)
    ③cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    ④chmod 600 ~/.ssh/authorized_keys
    6.命令行-----ssh localhost---------------第一次会出来让你输入yes或则on,这里输yes,我配的时候第一次进的时候


    要输密码,我一路回车,后来我关机,然后开机后再试好像就不用了- -,好神奇的说。。。。
    7.成功---------------- uit@ubuntu:~/.ssh$ ssh localhost
    Welcome to Ubuntu 13.04 (GNU/Linux 3.8.0-19-generic i686)


    * Documentation: https://help.ubuntu.com/


    288 packages can be updated.
    178 updates are security updates.


    New release '13.10' available.
    Run 'do-release-upgrade' to upgrade to it.


    Last login: Fri Dec 20 19:56:36 2013 from localhost












    装hadoop:(网上说hadoop必须和ssh都装在/home/用户名/下,不然配置无密码登陆hadoop时,仍然要输入密码,但是现


    在没有装在同目录下,再装的时候要注意)
    (首次装的是hadoop0.20.2版本)
    1.把u盘里的压缩包拷到这个的/home/uit文件夹下------cp -r /media/uit/MyDisk/Hadoop/hadoop.zip /home/uit
    2.解压那个zip文件----- unzip hadoop.zip 之后会出来一个文件夹,里面还包含一个 hadoop0.20.2.tar.gz和两个乱


    码文件
    3.把那个hadoop-0.20.2.tar.gz取出来------cp -r /home/uit/hadoop/hadoop-0.20.2.tar.gz /home/uit
    4.解压hadoop-0.20.2.tar.gz--------tar -zxvf hadoop-0.20.2.tar.gz(我在ubuntu13.04下试的,在根目 录下不能直


    接解压,不知道怎么回事,但可以变一下,可以现在刚才的文件夹里面解压,然后把解压完的拿出 来)(似乎是因为我所


    在的cd路径是在/home/uit/hadoop里,如果切换成根路径下,就试的没问题了)
    5.解压完后删除没用的文件-------rm -r /home/uit/hadoop.zip
    rm -r /home/uit/hadoop
    rm -r /home/uit/hadoop-0.20.2.tar.gz
    6.修改hadoop中的java路径---------cd /home/uit/hadoop-0.20.2/conf
    gedit hadoop-env.sh-----------------在最后面加上 export 


    JAVA_HOME=/usr/lib/jvm/jdk1.7.0_45
    (如果用gedit没用的话就关闭终端然后再开一个终端)
    gedit core-site.xml-------------------加入一个子元素
    <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
    </property>
    <property>()
    <name>hadoop.tmp.dir</name>
    <value>/home/uit/hadoop-0.20.2/tmp</value>
    <description>A base for other temporary 


    directories.</description>
    </property>
    那个hadoop.tmp.dir不配置的话会导致重启后hadoop无法使用,还得删掉原来的tmp文件,在格


    式化文件系统,在start-all.sh 才能用,这里纠结了我好久= =(这个文件下面会创建的,不急)


    gedit hdfs-site.xml-------------------加入一个子元素
    <property>
    <name>dfs.replication</name>
    <value>1</value>
    </property>
    gedit mapred-site.xml-------------加入一个子元素
    <property>
    <name>mapred.job.tracker</name>
    <value>localhost:9001</value>
    </property>


    7.给用户分配文件夹的读权限----------------sudo chown -R uit:uit /home/uit/hadoop-0.20.2 
    权限这着实让我蛋疼了好一段时间,总以为是自己没配好,原来是权限没弄好,后来才发现解压完后权


    限什么的都有,就是因为没加这一句,加上就好了,都属于当前用户


    8.修改环境变量-------------------gedit /etc/profile---------------在最后面加上# set hadoop path
    export HADOOP_HOME=/home/uit/hadoop-0.20.2
    export PATH=$PATH:$HADOOP_HOME/bin(需要注意的是,如


    果加上这个,就不用在打命令的时候前面加bin/了,有的书上命令都是以bin/开头,原因是环境变量里没有加)


    9.修改完环境变量后更新一下----------------source /etc/profile


    10.创建一个缓冲文件------------------mkdir /home/uit/hadoop-0.20.2/tmp

    11.格式化hadoop文件系统-----------------------hadoop namenode -format
    12.开启线程----------------------start-all.sh
    13.配置完成,验证,在浏览器里输入http://localhost:50030/ (mapreduce的页面) http://localhost:50070(hdfs的页面)
    (装ssh的时候出了点问题,所以最后启动线程的时候提示有错误,但是仍然能出来页面= =!)


    14,最后需要注意的是,关机前,一定要注意stop-all.sh,不然在打开虚拟机,不然,,,反正我当时是一万只神兽奔腾而过
    (有时候启动后在浏览器里打不开hdfs的界面,可以再次执行格式化文件系统,在重启,如果还不行就上网搜,一般是那个id不匹配需要改)




    15.运行WordCount例子
    ①首先你得确保有个程序的jar包,没有的话就自行上网搜
    ②然后在主机里创建两个文件------mkdir ~/input
    vi ~/input/file01.txt--------随便输写内容
    vi ~/input/file02.txt--------随便输入
    ③在hadoop里创建文件夹-------hadoop fs -mkdir /tmp/input
    ④把之前的两个文件传进去-----hadoop fs -put ~/input/file0*.txt /tmp/input
    ⑤查看一下-----------hadoop fs -ls /tmp/input 应该就有了两个文件
    ⑥运行程序(jar包)----hadoop jar ~/hadoop-0.20.2/hadoopFirstDemo.jar WordCount 


    /tmp/input /tmp/output01
    (7)查看结果 ----hadoop fs -ls /tmp/output01 
    hadoop fs -cat /tmp/output01/part-00000




    总算。。。总算把这个玩意配好了,╮(╯▽╰)╭,开源的东西的嘛,,习惯就好


    =。 =,,中间也是经历很多波折,让我学到了很多,不过当结果出来的时候还是心中长处一口气,这种感觉
    只有感受过的童鞋才明白啊,,希望如果以后有人看到过这个东西的话,我只能说,加油,学长只能帮你到这了。。
    2013年12月21日16:08:58 wsr

(责任编辑:IT)
------分隔线----------------------------