Hadoop伪分布式搭建

Spring Wu 318 2021-02-03

下载及安装

下载

我先在CentOS 7.4的服务器的/usr/目录新建了一个hadoop目录,然后进入新建的hadoop目录,下载hadoop。

命令: wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.8.5/hadoop-2.8.5.tar.gz

hadoop下载页面选择合适的hadoop版本进行下载,我使用的是2.8.5,截止现在,因为hbase最高支持2.8.X的版本,使用Hadoop2.9.X会有问题。

安装

把下载好的压缩包解压出来

命令:tar xvzf hadoop-2.8.5.tar.gz

配置/etc/profile的JAVA_HOME

配置

配置${HADOOP_HOME}/etc/hadoop/core-site.xml

<configuration>
   <property>
       <name>fs.defaultFS</name>
       <value>hdfs://localhost:9000</value>
   </property>
</configuration>

配置${HADOOP_HOME}/etc/hadoop/hdfs-site.xml
这个配置是配置HDFS的备份数的,不配置的话默认是备份3分,因为这里是测试,所以1份就够了。一般用默认配置,土豪可以调3+。

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

设置passphraseless ssh

现在通过ssh localhost看看需不需要密码访问。如果发现需要密码访问,那么试用一下命令配置ssh-keygen:

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

运行

  1. format namenode
$ ${HADOOP_HOME}/bin/hdfs namenode -format
  1. 启动NameNode和DataNode:
$ ${HADOOP_HOME}/sbin/start-dfs.sh
  1. 使用jps命令查看是否启动成功:
  2. 访问localhost:50070

运行官方提供的测试examples

  1. 创建执行MapReduce作业所需的HDFS目录:
$ ${HADOOP_HOME}/bin/hdfs dfs -mkdir /user
$ ${HADOOP_HOME}/bin/hdfs dfs -mkdir /user/<username>
  1. 拷贝官方提供的input文件到分布式文件系统中:
$ ${HADOOP_HOME}/bin/hdfs dfs -put etc/hadoop input
  1. 运行examples
$ ${HADOOP_HOME}/bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar grep input output 'dfs[a-z.]+'

跑完会输出这个:

最后停止运行:

$ ${HADOOP_HOME}/sbin/stop-dfs.sh

配置YARN

先配置MapReduce的管理工具为yarn:

$ cp ${HADOOP_HOME}/etc/hadoop/mapred-site.xml.template ${HADOOP_HOME}/etc/hadoop/mapred-site.xml
$ vim ${HADOOP_HOME}/etc/hadoop/mapred-site.xml

mapred-site.xml配置如下:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置yarn-site.xml:

$ vim ${HADOOP_HOME}/etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

启动yarn:

$ ${HADOOP_HOME}/sbin/start-yarn.sh
$ jps
32934 NodeManager
32999 Jps
32857 ResourceManager