zoukankan      html  css  js  c++  java
  • hadoop单机

    Hadoop安装教程——单机模式

     

    Hadoop是MapReduce的开源实现,网上有很多相关的文章,但是很多不全,有的有点乱,本人Ubuntu小白,Hadoop初学者,根据别人的资料和我自己安装的经验介绍它的单机模式安装方法,欢迎拍砖。 

    部分资料翻译自http://www.michael-noll.com/tutorials/running-hadoop-on-ubuntu-linux-single-node-cluster/#configuring-ssh,感谢。 

     

    实验平台:Ubuntu 10.04,Hadoop-1.0.2,JDK1.7 

    (注:最新的Ubuntu12。04已经出了,作者费尽周折也没能安装成功,可能作者机器的原因只能安装10.04,12.04无论是安装或者从10.04升级完成后,都会进不去系统,哪位朋友遇到相同问题或者解决相关问题,可以站内我,谢谢)好了,扯远了。下面言归正传。 

     

    step 1. 为Hadoop增加用户,记住设定的密码 

    Java代码  

    1. $ sudo addgroup hadoop  
    2. $ sudo adduser --ingroup hadoop hduser  

     

     

    step 2. ssh的安装与设置 

    由于Hadoop用ssh 通信,因此首先要安装SSH Server 

    Java代码  

    1. $ sudo apt-get install ssh   

     

     

    下面进行免密码登录设定,su 命令执行后,输入刚才设定的密码 

    Java代码  

    1. $ su - hduser  
    2. $ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa  
    3. $ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys  
    4. $ ssh localhost  

     

    生成用于SSH的密钥 ,完成后请登入确认不用输入密码,(第一次登入需按enter键,第二次就可以直接登入到系统。 

    Java代码  

    1. ~$ ssh localhost  
    2. ~$ exit  
    3. ~$ ssh localhost  
    4. ~$ exit  

     

    step 3. 安装java 

     

    笔者采用的是离线的tar,解压到/opt/java1.7.0/ 

    Java代码  

    1. •$ tar zxvf jdk1.7.0.tar.gz  
    2. •$ sudo mv jdk1.7.0 /opt/java/  

     

    配置环境 

    Java代码  

    1. •$ sudo gedit /opt/profile  

     

     

    在 "umask 022"之前输入 as below 

     

    export JAVA_HOME=/opt/java/jdk1.7.0 

    export JRE_HOME=$JAVA_HOME/jre 

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

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

     

     

     

    step 4. 下载安装Hadoop 

     

    •下载 Hadoop-1.0.2,并解开压缩文件到 /opt 路径。 

    Java代码  

    1. •$ tar zxvf Hadoop-1.0.2.tar.gz  
    2. •$ sudo mv Hadoop-1.0.2 /opt/  
    3. •$ sudo chown -R hduser:hadoop /opt/Hadoop-1.0.2  

     

     

    step 5. 设定 hadoop-env.sh 

     

    •进入 hadoop 目录,做进一步的设定。我们需要修改两个档案,第一个是 hadoop-env.sh,需要设定 JAVA_HOME, HADOOP_HOME, PATH 三个环境变量。 

    /opt$ cd Hadoop-1.0.2/ 

    /opt/Hadoop-1.0.2$ cat >> conf/hadoop-env.sh << EOF 

    贴上以下信息 

    export JAVA_HOME=/opt/java/jdk1.7.0 

    export HADOOP_HOME=/opt/Hadoop-1.0.2 

    export PATH=$PATH:$HADOOP_HOME/bin 

    EOF 

     

    这里我有一点不明白,明明/etc/profile里已经指定了JAVA_HOME,这里为什么还需要指定? 

     

    step 6. 设定 hadoop配置文件 

     

    •編輯 $HADOOP_HOME/conf/core-site.xml 

    <configuration> 

      <property> 

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

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

      </property> 

      <property> 

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

        <value>/tmp/hadoop/hadoop-${user.name}</value> 

      </property> 

    </configuration> 

    • 編輯 HADOOP_HOME/conf/hdfs-site.xml 

    <configuration> 

      <property> 

        <name>dfs.replication</name> 

        <value>1</value> 

      </property> 

    </configuration> 

    • 編輯 HADOOP_HOME/conf/mapred-site.xml 

    <configuration> 

      <property> 

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

        <value>localhost:9001</value> 

      </property> 

    </configuration> 

     

    step 7. 格式化HDFS 

     

    •以上我们已经设定好 Hadoop 单机测试的环境,接着让我们来启动 Hadoop 相关服务,格式化 namenode, secondarynamenode, tasktracker 

    Java代码  

    1. •$ cd /opt/Hadoop-1.0.2  
    2. •$ source /opt/Hadoop-1.0.2/conf/hadoop-env.sh  
    3. •$ hadoop namenode -format  

     

    执行上面的语句会报空指针错误,因为默认 hadoop.tmp.dir= tmp/hadoop/hadoop-${user.name} 

    如果你要修改的话可以 

    Java代码  

    1. •/opt/hadoop-1.0.2/conf$ sudo gedit core-site.xml  

     

     

    <!-- In: conf/core-site.xml --> 

    <property> 

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

      <value>/tmp/hadoop/hadoop-${user.name}</value> 

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

    </property> 

     

    给此路径路径设定权限 

    Java代码  

    1. $ sudo mkdir -p /tmp/hadoop/hadoop-hduser  
    2. $ sudo chown hduser:hadoop /tmp/hadoop/hadoop-hduser  
    3. # ...and if you want to tighten up security, chmod from 755 to 750...  
    4. $ sudo chmod 750 /tmp/hadoop/hadoop-hduser  

     

     

    在执行的格式化就会看到 

    执行画面如: 

    [: 107: namenode: unexpected operator 

    12/05/07 20:47:40 INFO namenode.NameNode: STARTUP_MSG: 

    /************************************************************ 

    STARTUP_MSG: Starting NameNode 

    STARTUP_MSG:   host = seven7-laptop/127.0.1.1 

    STARTUP_MSG:   args = [-format] 

    STARTUP_MSG:   version = 1.0.2 

    STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0.2 -r 1304954; compiled by 'hortonfo' on Sat Mar 24 23:58:21 UTC 2012 

    ************************************************************/ 

    12/05/07 20:47:41 INFO util.GSet: VM type       = 32-bit 

    12/05/07 20:47:41 INFO util.GSet: 2% max memory = 17.77875 MB 

    12/05/07 20:47:41 INFO util.GSet: capacity      = 2^22 = 4194304 entries 

    12/05/07 20:47:41 INFO util.GSet: recommended=4194304, actual=4194304 

    12/05/07 20:47:41 INFO namenode.FSNamesystem: fsOwner=hduser 

    12/05/07 20:47:41 INFO namenode.FSNamesystem: supergroup=supergroup 

    12/05/07 20:47:41 INFO namenode.FSNamesystem: isPermissionEnabled=true 

    12/05/07 20:47:41 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100 

    12/05/07 20:47:41 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s) 

    12/05/07 20:47:41 INFO namenode.NameNode: Caching file names occuring more than 10 times 

    12/05/07 20:47:42 INFO common.Storage: Image file of size 112 saved in 0 seconds. 

    12/05/07 20:47:42 INFO common.Storage: Storage directory /tmp/hadoop/hadoop-hduser/dfs/name has been successfully formatted. 

    12/05/07 20:47:42 INFO namenode.NameNode: SHUTDOWN_MSG: 

    /************************************************************ 

    SHUTDOWN_MSG: Shutting down NameNode at seven7-laptop/127.0.1.1 

    ************************************************************/ 

     

     

    step 7. 启动Hadoop 

     

    •接着用 start-all.sh 来启动所有服务,包含 namenode, datanode, 

    $HADOOP_HOME/bin/start-all.sh 

    Java代码  

    1. •opt/hadoop-1.0.2/bin$ sh ./start-all.sh  

     

    执行画面如: 

    •starting namenode, logging to /opt/hadoop-1.0.2/logs/hadoop-hduser-namenode-seven7-laptop.out 

    localhost: 

    localhost: starting datanode, logging to /opt/hadoop-1.0.2/logs/hadoop-hduser-datanode-seven7-laptop.out 

    localhost: 

    localhost: starting secondarynamenode, logging to /opt/hadoop-1.0.2/logs/hadoop-hduser-secondarynamenode-seven7-laptop.out 

    starting jobtracker, logging to /opt/hadoop-1.0.2/logs/hadoop-hduser-jobtracker-seven7-laptop.out 

    localhost: 

    localhost: starting tasktracker, logging to /opt/hadoop-1.0.2/logs/hadoop-hduser-tasktracker-seven7-laptop.out 

     

    step 8. 安装完毕测试 

     

    •启动之后,可以检查以下网址,来观看服务是否正常。 Hadoop 管理接口 Hadoop Task Tracker 状态 Hadoop DFS 状态 

    •http://localhost:50030/ - Hadoop 管理接口 

    至此 

    Hadoop单节点安装完成,下面将在次单节点集群上进行作业 

    未完待续ing 

     

    分享到:  

    开源学习,互动进步
  • 相关阅读:
    PHP开发经常遇到的几个错误
    PHP的Trait
    PHP反射API
    php split 和 explode 的区别
    php判断检测一个数组里有没有重复的值
    PHP serialize 和 JSON 解析与区别
    php 单文件上传
    php 数组 类对象 值传递 引用传递 区别
    六. 网络编程(解决黏包TCP)
    五. 网络编程(UDP 不黏包)
  • 原文地址:https://www.cnblogs.com/L0VEGP/p/5883308.html
Copyright © 2011-2022 走看看