一步一步学习hadoop(一)

来源:互联网 发布:大智慧批量导出数据 编辑:程序博客网 时间:2024/04/24 23:13

想要学习hadoop,首先要将把“刀”磨好,安装好hadoop,hadoop集群有三种模式:本地模式,伪集群模式和集群模式,其中本地模式和伪集群模式主要用于在本地测试程序,集群模式用于实际运行中。本地模式和伪集群模式非常类似,只是在hadoop的配置上有一点差别,这里先介绍hadoop的伪集群模式的安装步骤

1.运行环境安装 

   1)ubuntu linux 12.04,安装非常简单,这里就不介绍了

   2)java 1.6以上版本安装
      1'下载,在http://www.oracle.com/technetwork/indexes/downloads里下载需要的linux的java版本
      2'安装(假设下载的文件为java1.6.0_37.bin,放在/home/administrator目录下)
  •  将下载的安装文件授权为可以执行,使用chmod u+x java1.6.0_37.bin
  •  改变工作目录到你要安装java的地方,我的是/usr/lib,所以是cd /usr/lib
  •  运行安装文件 直接在shell中输入/home/administrator/java1.6.0_37.bin即可
     3'环境设置,打开/etc/profile文件,在文件最后增加如下几行

        export JAVA_HOME=/usr/lib/jdk1.6.0_37

         export JRE_HOME=/usr/lib/jdk1.6.0_37/jre

         export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
         export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
     4'重启机器,在shell中键入java -version得到java version "1.6.0_37"的话表示安装好java环境了
  3)  安装ssh,如果可以连接因特网就比较方便了,直接使用sudo apt-get install openssh-server就搞定了。如果不能联网,拷贝下载好openssh-server安装包到需要安装的机器,然后使用sudo dpkg -i 你的ssh安装包的名字 。安装好了后,运行一下ssh localhost,可以运行表示安装成功。
  4)配置ssh,hadoop需要ssh去管理节点,对于伪集群模式(也就是单节点)只需ssh能够无密码访问localhost即可
         配置无密码访问,1'先切换到hduser用户,2'然后生成密钥对,3'然后将公钥给要访问的机器
      su - hduser
      ssh-keygen -t rsa -P ""
      cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
        配置好后ssh localhost测试一下
  5)新建一个运行hadoop的用户,这不是必须的
     sudo addgroup hadoop
     sudo adduser --ingroup hadoop hduser
  6)增加一个给hadoop使用的目录,运行下面命令
       sudo mkdir -p /usr/local/app/hadoop/tmp
       sudo chown hduser:hadoop /usr/local/app/hadoop/tmp
       sudo chmod 750 /usr/local/app/hadoop/tmp
2.安装hadoop
  1)下载hadoop安装文件,在hadoop官网下载hadoop,我下的版本是1.0.4
  2 )  解压到自己想要安装的目录,我这里假设为/usr/local/hadoop,并确保改变文件的所有权给hduser,下面这些命令完成这些工作
    cd /usr/local
    sudo tar xzf /你放hadoop安装文件的目录替换这里/hadoop-1.0.4.tar.gz
    sudo mv hadoop-1.0.4 hadoop
    sudo chown -R hduser:hadoop hadoop
  3)修改shell启动文件 ~/.bashrc 增加下面几行
     export HADOOP_HOME=/usr/local/hadoop
     export JAVA_HOME=/usr/lib/jdk1.6.0_37
     export PATH=$PATH:$HADOOP_HOME/bin
     #增加几个使用较多的命令的简写
     unalias fs &>/dev/null
     alias fs="hadoop fs"
     unalias hls &>/dev/null
     alias hls="fs -ls"
     unalias start-all &>/dev/null
     alias start-all="/usr/local/hadoop/bin/start-all.sh"
     unalias stop-all &>/dev/null
     alias stop-all="/usr/local/hadoop/bin/stop-all.sh"
     unalias start-dfs &>/dev/null
     alias start-dfs="/usr/local/hadoop/bin/start-dfs.sh"
     unalias stop-dfs &>/dev/null
     alias stop-dfs="/usr/local/hadoop/bin/stop-dfs.sh"
     unalias start-mapred &>/dev/null
     alias start-mapred="/usr/local/hadoop/bin/start-mapred.sh"
     unalias stop-mapred &>/dev/null
     alias stop-mapred="/usr/local/hadoop/bin/stop-mapred.sh"

  4)配置hadoop相关的配置文件,在目录/usr/local/hadoop/conf里面
    修改hadoop-en.sh,将export JAVA_HOME这一句前面的#去掉,改为export JAVA_HOME=/usr/lib/jdk1.6.0_37
    core-site.xml文件,内容如下
     <?xml version="1.0"?>
      <configuration>
        <property>
         <name>fs.default.name</name>
         <value>hdfs://localhost:54310</value>
        </property>
        <property>
         <name>fs.tmp.dir</name>
         <value>/usr/local/app/hadoop/tmp</value>
        </property>
      </configuration>

   hdfs-site.xml文件,内容如下
     <?xml version="1.0"?>
      <configuration>
       <property>
        <name>dfs.replication</name>
        <value>1</value>
       </property>
      </configuration>

   mapred-site.xml文件,内容如下
     <?xml version="1.0"?>
      <configuration>
       <property>
         <name>mapred.job.tracker</name>
         <value>localhost:54311</value>
       </property>
     </configuration>

5)格式化HDFS文件系统
  hadoop namenode -format

6)启动伪集群,启动后可以使用jps命令,看NameNode,DataNode,JobTracker和TaskTracker是不是都启动了
  start-all

7)可以使用hadoop了,运行一个hadoop自带的测试程序
  1'将数据拷贝到HDFS文件系统中,使用如下命令将hadoop的配置文件拷贝到HDFS下的input目录下
    hadoop fs -put /usr/local/hadoop/conf /input
  2'运行hadoop作业
    hadoop jar /usr/local/hadoop/hadoop-examples-1.0.4.jar WordCount /input /output
   运行成功表示安装OK了
8)可以使用http://localhost:50030查看map/reduce情况,使用http://localhost:50070查看HDFS文件系统情况

9)停止伪集群
  stop-all


 




   
   

    


    

原创粉丝点击