zoukankan      html  css  js  c++  java
  • Linux下安装Hadoop完全分布式(Ubuntu12.10)

    Hadoop的安装非常简单,可以在官网上下载到最近的几个版本,最好使用稳定版。本例在3台机器集群安装。hadoop版本如下:

    工具/原料

    • hadoop-0.20.2.tar.gz
    • Ubuntu12.10

    安装步骤:

    1. 1

      安装ubuntu 

      Ubuntu12.10交换空间4G(内存2G)。具体安装过程不赘述。

      用户名统一为:hadoop;

      组群:hadoop;

      机器名:namenode(主节点),datanode1(从节点1),datanode2(从节点2)。

    2. 2

      在Ubuntu下创建hadoop用户组和用户(也可在安装系统时通过界面配置)

      1. 创建hadoop用户组;

           $ sudo addgroup hadoop  

           记下这里为 hadoop 用户设置的密码,后面使用 hadoop 用户登录时需要用到。

      2. 创建hadoop用户;

           $ sudo adduser -ingroup hadoop hadoop  

      3. 给hadoop用户添加权限,打开/etc/sudoers文件;

           $ sudo gedit /etc/sudoers 

      4. 给hadoop用户赋予root用户同样的权限。

      在root  ALL=(ALL:ALL)   ALL下添加如下内容:

       hadoop ALL=(ALL:ALL)   ALL    

      Linux下安装Hadoop完全分布式(Ubuntu12.10)
    3. 3

      在Ubuntu下安装JDK

      配置环境变量:

      $ sudo gedit /etc/profile

      在文件的末尾加上如下内容,保存并关闭文件

      # for java

      export JAVA_HOME=/usr/lib/jvm/jdk1.8.0

      export JRE_HOME=${JAVA_HOME}/jre

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

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

      使设置生效:到此部JDK的配置就都完成了

      $ source /etc/profile

      为保证正确性,进行简单的测试

      $ java -version

      输出:

      java version "1.8.0"

      Java(TM) SE Runtime Environment (build 1.8.0)

      Java HotSpot(TM) Server VM 

      修改默认JDK:

          sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0/bin/java 300

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

          sudo update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.8.0/bin/jar 300 

      以下两句可选(最好执行):

      sudo update-alternatives --config java 

      sudo update-alternatives --config javac  

      Linux下安装Hadoop完全分布式(Ubuntu12.10)
      Linux下安装Hadoop完全分布式(Ubuntu12.10)
    4. 4

      修改机器名(这步骤可以省略)

      每当ubuntu安装成功时机器名都默认为:ubuntu ,但为了以后集群中能够容易分辨各台服务器,需要给每台机器取个不同的名字。机器名由 /etc/hostname文件决定。

      1. 打开/etc/hostname文件;

            $  sudo gedit /etc/hostname  

      2. 将/etc/hostname文件中的ubuntu改为对应机器,如主节点中,修改为"namenode"。 重启生效

      3.修改/etc/hosts文件

           $  sudo gedit /etc/hosts

      改为如下所示,并且将每台机器的IP设置为固定IP

      Linux下安装Hadoop完全分布式(Ubuntu12.10)
    5. 5

      安装ssh服务  

      这里的ssh不是指三大框架:spring,struts,hibernate,而是一种远程登录协议。

      ubuntu一般只是默认安装了 ssh-agent, 可以用如下命令查看:

      $ sudo ps -ef | grep ssh  

      如果只有 ssh-agent 就需要安装openssh-server了。

      $ sudo apt-get install ssh openssh-server  

    6. 6

      建立ssh无密码登录本机

      首先要转换成hadoop用户,执行以下命令:

          $ sudo su - hadoop  

      ssh生成密钥有rsa和dsa两种生成方式,默认情况下采用rsa方式。

      1. 创建ssh-key,,这里我们采用rsa方式;

          $ ssh-keygen -t rsa -P ""  

      请注意, ssh-kengen 是用连字符连着的,千万不要分开。问题如下:

      按照您的步驟執行的過程中我在ssh -keygen -t rsa -P ""這邊發生的點小狀況輸入之後終端機顯示Bad escape character "ygen"(红字部分就是问题所在,他将 ssh-keygen 分开了。)

      (注:回车后会在~/.ssh/下生成两个文件:id_rsa和id_rsa.pub这两个文件是成对出现的)

      2.  创建授权文件authorized_keys

           进入~/.ssh/目录下,发现开始是没有authorized_keys文件的,可以使用以下两种方法:

        (1) 将id_rsa.pub追加到authorized_keys授权文件中;

            $ cd ~/.ssh  

           $ cat id_rsa.pub >> authorized_keys 

        (2) 复制 id_rsa.pub 为 authorized_keys

            $ cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys  

      3. 登录localhost;

            $ ssh localhost  

      4. 执行退出命令(exit或CTRL+D);  

      Linux下安装Hadoop完全分布式(Ubuntu12.10)
    7. 7

      安装hadoop

      1. 假设hadoop-0.20.2.tar.gz在桌面,将它复制到安装目录/usr/local/下;

          $ sudo cp hadoop-0.20.2.tar.gz /usr/local/  

      2. 解压hadoop-0.20.2.tar.gz;

          $ cd /usr/local  

          $ sudo tar -zxvf hadoop-0.20.2.tar.gz  

      3. 将解压出的文件夹改名为hadoop;

          $ sudo mv hadoop-0.20.2 hadoop  

      4. 将该hadoop文件夹的属主用户设为hadoop,

          $ sudo chown -R hadoop:hadoop hadoop  

      5. 打开hadoop/conf/hadoop-env.sh文件;

          $ sudo gedit hadoop/conf/hadoop-env.sh  

      6. 配置conf/hadoop-env.sh(找到#exportJAVA_HOME=...,去掉#,然后加上本机jdk的路径);

          export JAVA_HOME=/usr/lib/jvm/jdk1.8.0  

      7. 打开conf/core-site.xml文件;

         $ sudo gedit hadoop/conf/core-site.xml  

      <configuration>

           <property>

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

              <value>hdfs://namenode:9000</value>

           </property>

      </configuration>

      8. 打开conf/mapred-site.xml文件;

          $ sudo gedit hadoop/conf/mapred-site.xml  

      <configuration>

           <property>

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

              <value>namenode:9001</value>

           </property>

      </configuration>

      9. 打开conf/hdfs-site.xml文件;

          $ sudo gedit hadoop/conf/hdfs-site.xml  

      <configuration>

           <property>

               <name>dfs.name.dir</name>

               <value>/usr/local/hadoop/datalog1,/usr/local/hadoop/datalog2</value>

           </property>

           <property>

               <name>dfs.data.dir</name>

               <value>/usr/local/hadoop/data1,/usr/local/hadoop/data2</value>

           </property>

           <property>

               <name>dfs.replication</name>

               <value>3</value>

           </property>

      </configuration>

      注意:datalog1,datalog2,data1,data2文件夹最好事先建好。

      10. 打开conf/masters文件,添加作为secondarynamenode的主机名.

      11. 打开conf/slaves文件,添加作为slave的主机名,一行一个。

      作者设置如下:

      Linux下安装Hadoop完全分布式(Ubuntu12.10)
      Linux下安装Hadoop完全分布式(Ubuntu12.10)
      Linux下安装Hadoop完全分布式(Ubuntu12.10)
    8. 8

      运行hadoop

      1. 进入hadoop目录下,格式化hdfs文件系统,初次运行hadoop时一定要有该操作, 

          $ cd /usr/local/hadoop/  

          $ bin/hadoop namenode -format  

      2. 启动bin/start-all.sh

      进入bin目录下, $ ./start-all.sh         关闭:同目录下./stop-all.sh

      3. 检测hadoop是否启动成功

          $ jps  

      4. Web查看

      http://localhost:50030/ - 一个jobtracker的web访问接口,为的是方便用户查看相关信息。 

      类似的还有: 

      http://localhost:50070/ – web UI of theNameNode daemon 

      http://localhost:50030/ – web UI of theJobTracker daemon 

      http://localhost:50060/ – web UI of theTaskTracker daemon  

      Linux下安装Hadoop完全分布式(Ubuntu12.10)
      Linux下安装Hadoop完全分布式(Ubuntu12.10)
      END

    注意事项

     
    • 集群中所有机器的登录用户名和所属组都要相同,本文用户名为hadoop,组群也为Hadoop。
    • 每台机器的IP设置为固定IP,主机名-ip需要在每一台机器里修改对应的hosts文件。
    • 注意代码中的粗斜体为具体安装目录,要和实际目录相同。
  • 相关阅读:
    SQL Server 2019 新版本
    SQL Server 中的窗口函数(2012 新函数)
    MySQL 学习(二)总体框架 & redo-log 和 bin-log 的介绍
    redis(四)集群(Sentinel)
    HahMap相关问题
    JVM工具使用和Linux-top命令解析
    缓存知识点
    消息队列(六)--- RocketMQ-消息消费
    redis(三)数据类型--位图相关
    分布式哈希一致性
  • 原文地址:https://www.cnblogs.com/hgc-bky/p/6094301.html
Copyright © 2011-2022 走看看