轻松学大数据挖掘:算法、场景与数据产品
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1.3 部署Hadoop伪分布式环境

1.概念

单机模式:在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。

伪分布式模式:也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点。

分布式模式:真正的分布式是由3个及以上的物理机或虚拟机组成的集群。

2.Hadoop的下载配置

Hadoop的下载地址为(可选择合适的版本)http://archive.cloudera.com/cdh5/cdh/5/。这里下载并使用hadoop-2.6.0-cdh5.7.0.tar.gz。

在测试机上创建一个目录,下载并解压Hadoop的压缩包。

      mkdir opt/hadoop

      # 下载包
      wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.7.0.
  tar.gz

      # 解压包
      tar -xzvf hadoop-2.6.0-cdh5.7.0.tar.gz

配置环境变量,代码如下。

      [root@system1 Java]# vi  /etc/profile
      export HADOOP_HOME=/.../hadoop-2.6.0-cdh5.7.0
      export PATH=...:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

      [root@system1 Java]# source /etc/profile #配置生效

3.修改伪分布式文件

主要集中在core-site.xml、hdfs-site.xml、mapred-site.xml和yarn-site.xml,代码如下。

      [root@hadoop1 etc]# ll
      total 16
      drwxr-xr-x 2110640014096 ... hadoop
      drwxr-xr-x 2110640014096 ... hadoop-mapreduce1
      drwxr-xr-x 2110640014096 ... hadoop-mapreduce1-pseudo
      drwxr-xr-x 2110640014096 ... hadoop-mapreduce1-secure

针对core-site.xml文件的修改(注意hadoop1),代码如下。

      <configuration>
        <property>
          <name>fs.default.name</name>
          <value>hdfs://hadoop1:9000/</value>
        </property>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>file:/usr/local/hadoop/tmp</value>
        </property>
      </configuration>

针对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>

其中dfs.replication代表文件副本数量,默认为3,这里设置为1。针对mapred-site.xml文件的修改,代码如下。

      <configuration>
        <property>
          <name>mapred.job.tracker</name>
          <value>hadoop1:8021</value>
        </property>
      </configuration>

针对yarn-site.xml文件的修改,代码如下。

      <configuration>
        <property>
          <name>yarn.resourcemanager.address</name>
          <value>hadoop1:8032</value>
        </property>
        <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce.shuffle</value>
        </property>
      </configuration>

以上配置完成后,执行NameNode的格式化,代码如下。

      [root@system1 hadoop]# hadoop namenode -format

出现“successfully formatted”和“Exitting with status 0”的提示代表配置成功,否则代表配置失败。记住在修改hadoop-env.xml文件时,配置JAVA_HOME变量的路径值。

4.启动Hadop环境

      [root@system1 hadoop]# start-all.sh

启动完成后,可以通过命令jps来判断是否成功启动。应该成功启动NameNode、DataNode和SecondaryNameNode、JobTracker、TaskTracker这5个新的Java进程。如果最后一个进程没有启动,请重启服务试试;如果没有NameNode或DataNode,那就是配置不成功,需要根据具体情况来排查原因。

上述内容就是Hadoop伪分布式的整体部署过程,介绍它的主要目的是培养大家的动手实践能力,让大家对大数据生态圈有初步的了解,以及为学习Hive与HBase打下基础。如果条件允许,可以申请阿里云服务器,构建一套分布式集群。这样就可以做很多数据产品实践项目,弥补项目经验匮乏的缺点。