2.hadoop伪分布式安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wenzhou1219/article/details/87539446

预备环境准备

  • JAVA环境配置

建议使用JDK,最低使用Java 7,都2018了建议使用Java 8。官网下载最新版本JAVA,也可以源安装OpenJDK。/etc/profile添加环境变量如下:

JAVA_HOME=/home/xxx/jdk1.8.0_181
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar 
PATH=$JAVA_HOME/bin:$PATH

source /etc/profile更新最新配置
java -version测试

  • SSH配置

伪分布式配置的意思就是,虽然程序都运行在本地,但是实际模拟的是整个分布式运行过程。因此需要配置远程登录到本机的SSH登录。

SSH配置过程A需要登录到B,则需要B向A授权,即把A的授权文件拷贝给B,即相当于A把自己钥匙给B了,如下整个过程:

  1. 首先在A生成密钥对 ssh-keygen -t rsa 紧接着一直回车
  2. 然后在A拷贝公钥到B,可执行命令
    ssh-copy-id desthost
    也可以拷贝A~/.ssh/rsa.pub内容到B 的authorizekeys

下载和安装

安装hadoop过程其实也是理解hadoop系统的过程,这里先从最简单的伪分布式安装开始。
可以直接从官网下载,现在生产环境用的最广泛的2.X版本,3.X版本相对来说改动没那么大,因此本教程使用hadoop版本为2.9.2

下载后解压Hadoop到指定目录

tar -zxvf xxx.tar.gz -C /home/wenzhou/app

/etc/profile添加环境变量如下:

export HADOOP_HOME=/home/wenzhou/app/hadoop-2.9.2
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin

source /etc/profile更新最新配置

查看解压目录如下

bin  etc  include  lib  libexec  LICENSE.txt  logs  NOTICE.txt  README.txt  sbin  share  tmp

几个重要目录:

  • bin 具体可执行文件
  • sbin 环境启动脚本
  • etc 配置文件
  • logs 日志输出

配置核心

默认hadoop通过环境变量指定java环境,单通常这会失败,最简单方法是直接找到export JAVA_HOME={$JAVA_HOME}替换为具体位置

export JAVA_HOME=/usr/local/bin/jdk1.8.0_181
  • core-site.xml

主要是指定NameNode位置和hadoop数据存储位置。这里wenzhou001是我本机配置的host,也可以直接配置ip地址,默认都指定9000端口。

<configuration>
    <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
    <property>
            <name>fs.defaultFS</name>
            <value>hdfs://wenzhou001:9000</value>
    </property>

    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/wenzhou/app/hadoop-2.9.2/tmp</value>
    </property>
</configuration>

配置存储

  • hdfs-site.xml

指定hdfs副本数,这里伪分布式直接配成1。

<configuration>
    <!-- 指定HDFS副本的数量 -->
    <property>
            <name>dfs.replication</name>
            <value>1</value>
    </property>
</configuration>

配置计算

  • yarn-site.xml

和HDFS一样,需要指定计算的调度老大,然后是和yarn调度和查看相关的两个配置。

<configuration>
<!-- Site specific YARN configuration properties -->
    <!-- 指定YARN的老大(ResourceManager)的地址 -->
    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>localhost</value>
    </property>
    <!-- reducer获取数据的方式 -->
    <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
    </property>
    <!-- 网页查看集群状态和任务进度等信息 -->
    <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>0.0.0.0:8088</value>
    </property>
</configuration>

  • mapred-site.xml

先mv mapred-site.xml.template mapred-site.xml,主要指定mr运行在yarn上,后面可以看到hadoop三大组件都是相互独立,mr可以运行在其他调度系统上。

<configuration>
    <!-- 指定mr运行在yarn上 -->
    <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
    </property>
</configuration>

启动和测试

  • 格式化

至此,hadoop伪分布式配置完毕。
在正式测试之前,和安装单机操作系统一样,运行如下命令先格式化这个分布式系统。

hdfs namenode -format
  • 启动HDFS

然后cd sbin中执行如下命令:

./start-dfs.sh

jps查看此时的java进程如下,可以看到此时HDFS的NameNode和DataNode进程都已经有了,至于SecondaryNameNode后续再讲。

3552 Jps
3234 DataNode
3127 NameNode
3407 SecondaryNameNode

可以看到HDFS其实和YARN是独立的,这时候HDFS系统已经完全启动了,实际上只要正确配置核心和存储即可完成HDFS启动。HDFS存储结构类似Linux目录结构,如下,使用hdfs shell命令,创建和上传文件:

hadoop fs -touchz test.txt
hadoop fs -mkdir testdir
hadoop fs -put local.log /testdir

如下查看当前文件:

hadoop fs -ls -R /
------------------输出------------------------
drwxr-xr-x   - wenzhou supergroup          0 2018-12-22 19:55 /testdir
-rw-r--r--   1 wenzhou supergroup          0 2018-12-22 19:55 /testdir/local.log

可以看到整个操作非常类似linux本地命令操作,可输入hadoop fs查看所有命令,对应完整hdfs shell使用可以查看文档

另外,hadoop提供一个网页端访问HDFS的端口,默认是50070端口,比如我本机输入

http://192.168.139.140:50070/

如下,Overview可以查看集群状态,Datanode可以查看集群各个节点情况,Utilties下可以选着查看和操作当前HDFS系统目录数据。

HDFS网页

  • 启动Yarn

然后cd sbin中执行如下命令:

./start-yarn.sh

jps查看此时的java进程如下,

3984 ResourceManager
3234 DataNode
4118 NodeManager
3127 NameNode
4397 Jps
3407 SecondaryNameNode

可以看到此时ResourceManager和NodeManager都已经启动。

在yarn-site.xml中我们配置了8088端口,通过此端口可以查看yarn集群状态,如下访问

http://192.168.139.140:8088/

可以看到WebUI中包含了各种Yarn集群相关信息,包括节点信息和任务运行状态信息。

Yarn集群WebUI

关于Yarn的状态,下一节WordCount测试会有更多讲解。

原创,转载请注明来自

猜你喜欢

转载自blog.csdn.net/wenzhou1219/article/details/87539446