搭建hadoop伪分布式

  Hello,大家好 !下面就让我带大家一起来搭建hadoop伪分布式的环境吧!不足的地方请大家多交流。谢谢大家的支持

    准备环境:

    1, ubuntu系统,(我在ubuntu的12.04,14。04以及16.04测试通过。其他版本请自行测试,可参考官方文档!)

    2,最好有网

     
    下面就让我们开始吧:

    前期准备:

    1,如果你安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。

     首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户

      sudo useradd -m hadoop -s /bin/bash

    2,接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:

    sudo passwd hadoop

   可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:

    sudo adduser hadoop sudo

   3,  最后注销当前用户(点击屏幕右上角的齿轮,选择注销),在登陆界面使用刚创建的 hadoop 用户进行登陆。

   4,用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了。按 ctrl+alt+t 打开终端窗口,执行如下命令:

     sudo apt-get update

   5,后续需要更改一些配置文件,我比较喜欢用的是 vim(vi增强版,基本用法相同),建议安装一下(如果你实在还不会用 vi/vim 的,请将后面用到 vim 的地方改为 gedit,这样可以使用文本编辑器进行修改,并且每次文件更改完成后请关闭整个 gedit 程序,否则会占用终端)

     sudo apt-get install vim

    安装软件时若需要确认,在提示处输入 y 即可。

   6,  集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

     sudo apt-get install openssh-server

    安装后,可以使用如下命令登陆本机:

    ssh localhost


    此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

     

    但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

  7,  首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

   exit                           # 退出刚才的 ssh localhost

   cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost

   ssh-keygen -t rsa              # 会有提示,都按回车就可以

   cat ./id_rsa.pub >> ./authorized_keys  # 加入授权

    提示:

    在 Linux 系统中,~ 代表的是用户的主文件夹,即 “/home/用户名” 这个目录,如你的用户名为 hadoop,则 ~ 就代表 “/home/hadoop/”。 此外,命令中的 # 后面的文字是注释。

     此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示。

     开始安装

     1,安装jdk,jre

         sudo apt-get install openjdk-8-jre openjdk-8-jdk

      2, 接着配置 JAVA_HOME 环境变量,为方便,我们在 ~/.bashrc 中进行设置

         vim ~/.bashrc

        3,默认安装位置为/usr/lib/jvm/java-8-openjdk-amd64 通过:

            export JAVA_HOME=JDK安装路径

        


         4,接着还需要让该环境变量生效,执行如下代码:

         source ~/.bashrc    # 使变量设置生效

         5,设置好后我们来检验一下是否设置正确:

       echo $JAVA_HOME     # 检验变量值

       java -version 

       $JAVA_HOME/bin/java -version    # 与直接执行 java -version 的效果一样

       安装 Hadoop 2.6.0

      6,  Hadoop 2 可以通过 http://mirror.bit.edu.cn/apache/hadoop/common/ 或者 http://mirrors.cnnic.cn/apache/hadoop/common/ 下载,一般选择下载最新的稳定版本,即下载 “stable” 下的 hadoop-2.x.y.tar.gz 这个格式的文件,这是编译好的,另一个包含 src 的则是 Hadoop 源代码,需要进行编译才可使用。

      本文涉及的文件均通过浏览器下载,默认保存在 “下载” 目录中(若不是请自行更改 tar 命令的相应目录)。另外,本教程选择的是 2.6.0 版本,如果你用的不是 2.6.0 版本,则将所有命令中出现的 2.6.0 更改为你所使用的版本。

      我们选择将 Hadoop 安装至 /usr/local/ 中:

        sudo tar -zxf ~/下载/hadoop-2.6.0.tar.gz -C /usr/local #解压到/usr/local中

        cd /usr/local/

        sudo mv ./hadoop-2.6.0/ ./hadoop            # 将文件夹名改为hadoop

        sudo chown -R hadoop ./hadoop       # 修改文件权限

   7,   Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

       cd /usr/local/hadoop

      ./bin/hadoop version

   Hadoop伪分布式配置

      8,   Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点既作为 NameNode 也作为 DataNode,同时,读取的是 HDFS 中的文件。

        Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

     修改配置文件 core-site.xml (通过 vim编辑会比较方便: 

   vim ./etc/hadoop/core-site.xml

     将当中的

    <configuration>

    </configuration>

   修改为下面配置:

    <configuration>

       <property>

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

            <value>file:/usr/local/hadoop/tmp</value>

            <description>Abase for other temporary directories.</description>        </property>

       <property>

            <name>fs.defaultFS</name>

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

       </property>

</configuration>

 同样的,修改配置文件 hdfs-site.xml

      vim ./etc/hadoop vim ./etc/hadoop/hdfs-site.xml <configuration>

       <property>

            <name>dfs.replication</name>

            <value>1</value>

       </property>

       <property>

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

            <value>file:/usr/local/hadoop/tmp/dfs/name</value>

       </property>

       <property>

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

            <value>file:/usr/local/hadoop/tmp/dfs/data</value>

       </property>

</configuration>

9,配置完成后,执行 NameNode 的格式化:

   ./bin/hdfs namenode -format

成功的话,会看到 “successfully formatted” 和 “Exitting with status 0” 的提示,若为 “Exitting with status 1” 则是出错。如果出错,请大家仔细查看下错误原,以及前面的配置有没有错!

   ./sbin/start-dfs.sh

若出现如下SSH提示,输入yes即可。

10,启动完成后,可以通过命令 jps 来判断是否成功启动,若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。

    

启动YARN

(伪分布式不启动 YARN 也可以,一般不会影响程序执行)

   11,有的读者可能会疑惑,怎么启动 Hadoop 后,见不到书上所说的 JobTracker 和 TaskTracker,这是因为新版的 Hadoop 使用了新的 MapReduce 框架(MapReduce V2,也称为 YARN,Yet Another Resource Negotiator)。

YARN 是从 MapReduce 中分离出来的,负责资源管理与任务调度。YARN 运行于 MapReduce 之上,提供了高可用性、高扩展性,YARN 的更多介绍在此不展开,有兴趣的可查阅相关资料。

上述通过 ./sbin/start-dfs.sh 启动 Hadoop,仅仅是启动了 MapReduce 环境,我们可以启动 YARN ,让 YARN 来负责资源管理与任务调度。

  首先修改配置文件 mapred-site.xml,这边需要先进行重命名:

   mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml

12,然后再进行编辑,同样使用 vim编辑会比较方便些

   vim ./etc/hadoop/mapred-site.xml 

<configuration>

       <property>

            <name>mapreduce.framework.name</name>

            <value>yarn</value>

       </property>

</configuration>

13, 接着修改配置文件 yarn-site.xml

vim ./etc/hadoop/yarn.site.xml

<configuration>

       <property>

            <name>yarn.nodemanager.aux-services</name>

            <value>mapreduce_shuffle</value>

           </property>

</configuration>

14, 然后就可以启动 YARN 了(需要先执行过 ./sbin/start-dfs.sh):

./sbin/start-yarn.sh      # 启动YARN

./sbin/mr-jobhistory-daemon.sh start historyserver  # 开启历史服务器,才能在Web中查看任务运行情况

14, 开启后通过 jps 查看,可以看到多了 NodeManager 和 ResourceManager 两个后台进程,如下图所示。

 

同样的,关闭 YARN 的脚本如下:

  ./sbin/stop-yarn.sh

  ./sbin/mr-jobhistory-daemon.sh stop historyserver


(最后可以这样配置  ~/.bashrc文件以方便下次不用进入/usr/local/hadoop文件夹下就可以执行了,例如直接输入start-dfs.sh或stop-dfs.sh等

   首先sudo vim ~/.bashrc

   然后再在文件头添加如下文字:

   #Hadoop
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

 然后保存时~/.bashrc生效

source ~/.bashrc

最后可以直接输入start-dfs.sh等命令执行了)

    谢谢大家的阅读和支持,有什么不懂的问题可以给我留言!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值