Hadoop的搭建及启动

Hadoop 项目主要包含了以下四个模块:

Hadoop 通用模块(Hadoop Common): 为其他 Hadoop 模块提供支持的公共实用程序。
Hadoop 分布式文件系统(HDFS, Hadoop Distributed File System):提供对应用程序数据的高吞吐量访问的分布式文件系统。
Hadoop YARN: 任务调度和集群资源管理框架。
Hadoop MapReduce: 基于 YARN 的大规模数据集并行计算框架。
对于初次学习 Hadoop 的用户而言,应重点关注 HDFS 和 MapReduce。作为一个分布式计算框架,HDFS 承载了该框架对于数据的存储需求,而 MapReduce 满足了该框架对于数据的计算需求。在这里插入图片描述
如同 Facebook 在 Hadoop 的基础上衍生了 Hive 数据仓库一样,社区中还有大量与之相关的开源项目,下面列出了一些近期比较活跃的项目:

HBase:一个可伸缩的、支持大表的结构化数据存储的分布式数据库。
Hive:提供数据汇总和临时查询的数据仓库基础框架。
Pig:用于并行计算的高级数据流语言和执行框架。
ZooKeeper:适用于分布式应用的高性能协调服务。
Spark:一个快速通用的 Hadoop 数据计算引擎,具有简单和富有表达力的编程模型,支持数据 ETL(提取、转换和加载)、机器学习、流处理和图形计算等方面的应用。
Hadoop 主要有以下三种部署模式:

单机模式:在单台计算机上以单个进程的模式运行。
伪分布式模式:在单台计算机上以多个进程的模式运行。该模式可以在单节点下模拟“多节点”的场景。
完全分布式模式:在多台计算机上分别以单个进程的模式运行。
打开下载好的linux 打开终端(这里创建的是hadoop用户)
$ sudo adduser hadoop

在这里插入图片描述
随后,将创建好的hadoop用户添加进sudo用户组,以赋予该用户更高的权限。
*$ sudo usermod -G sudo hadoop *

安装JDK
安装后,直接输入
$ java -version查看Java版本

配置SSH免密登录
安装和配置SSH的目的是为了让Hadoop能够方便的运行远程管理守护进程的相关脚本。
在配置时,首先切换到Hadoop用户,输入以下命令:
$ su hadoop
在输入密码(虚拟机登录密码)
在这里插入图片描述
之后就是以hadoop的身份执行相关操作。
接下来就是免密登录。(是将SSH的认证方式由密码登录更改为密钥登录,这样hadoop的各个组件在相互访问时就不必通过用户交互输入密码,能够减少大量冗余操作)
输入如下命令:
$ cd /home/hadoop
$ ssh-keygen -t rsa (一路回车即可)

在这里插入图片描述
将生成的公钥添加到主机认证记录中。为authorized_keys文件赋予权限。
$ cat .ssh/id_rsa.pub >> .ssh/quthorized_keys
$ chomd 600 .ssh/authorized_keys
添加成功后,尝试登录到本机,输入如下命令:
$ ssh localhost
在这里插入图片描述
配置Hadoop
$ wget https://archive.apache.org/dist/hadoop/common/hadoop-2.6.1/hadoop-2.6.1.tar.gz下载Hadoop2.6.1
**
在这里插入图片描述
解压和目录设置
$ tar zxvf hadoop-2.6.1.tar.gz
$ sudo mv hadoop-2.6.1 /opt/hadoop-2.6.1

$ sudo chown -R hadoop:hadoop /opt/hadoop-2.6.1
vim /home/hadoop/.bashrc

在/home/hadoop/.bashrc文件的尾部添加以下内容:
export HADOOP_HOME=/opt/hadoop-2.6.1
export JAVA_HOME=/usr/lib/jvm/java-8-oracle
export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: H A D O O P H O M E / b i n : HADOOP_HOME/bin: HADOOPHOME/bin:HADOOP_HOME/sbin

保存并退出 Vim 编辑器,在终端中输入 source 命令来激活新添加的环境变量。
$ source /home/hadoop/.bashrc
伪分布式的模式配置

在大多数情况下,Hadoop 都是应用在集群环境中,即我们需要在多个节点上部署 Hadoop 。同时, Hadoop 还可以以伪分布式模式运行在单个节点上,通过多个独立的 Java 进程来模拟多节点的情况。在初始学习阶段,暂时没有必要耗费大量的资源来创建不同的节点,因此本小节及后续的章节将主要采用 伪分布式模式 来进行 Hadoop “集群”的部署。
打开core-site.xml文件:
$ vim /opt/hadoop/core-site.xml
添加如下的内容:


fs.defaultFS
hdfs://localhost:9000


hadoop.tmp.dir
/home/hadoop/tmp


fs.defaultFS 配置项用于指示集群默认使用的文件系统的位置。
编辑玩保存并退出,打开 hdfs-site.xml:
$ vim /opt/hadoop-2.6.1/etc/hadoop/hdfs-site.xml
添加如下内容:


dfs.replication
1


该配置项用于指示 HDFS 中文件副本的数量,默认情况下是 3 份,由于我们在单台节点上以伪分布式的方式部署,所以将其修改为 1 。
接下来编辑hadoop-env.sh文件:
$ vim /opt/hadoop-2.6.1/etc/hadoop/hadoop-env.sh
将其中export JAVA_HOME的值修改为JDK的实际位置,即/usr/lib/jvm/java-8-oracle.
在这里插入图片描述编辑 yarn-site.xml 文件:
$ vim /opt/hadoop-2.6.1/etc/hadoop/yarn-site.xml
在 configuration 标签内添加以下内容:


yarn.nodemanager.aux-services
mapreduce_shuffle


最后,需要编辑 mapred-site.xml 文件。首先需要从模板复制过来:
$ cp /opt/hadoop-2.6.1/etc/hadoop/mapred-site.xml.template /opt/hadoop-2.6.1/etc/hadoop/mapred-site.xml
用 Vim 编辑器打开该文件:
$ vim /opt/hadoop-2.6.1/etc/hadoop/mapred-site.xml
同样的,在 configuration 标签内添加以下内容:


mapreduce.framework.name
yarn


退出,保存。
初始化HDFS
对HDFS的初始化主要是格式化。
***注意:格式化的操作只需要进行一次即可,不需要多次格式化。每一次格式化 namenode 都会清除 HDFS 分布式文件系统中的所有数据文件。同时,多次格式化容易出现 namenode 和 datanode 不同步的问题。
hdfs namenode -format
在这里插入图片描述
HDFS 初始化完成之后,就可以启动 NameNode 和 DataNode 的守护进程。启动之后,Hadoop 的应用(如 MapReduce 任务)就可以从 HDFS 中读写文件。

在终端中输入以下命令来启动守护进程:
$ start-dfs.sh
在这里插入图片描述
在终端输入以下命令:
$ jps
如图所示,如果看到 NameNode 、DataNode 及 SecondaryNameNode 的进程,则表明 Hadoop 的服务处于正常运行状态。
在这里插入图片描述注意:如果执行 jps 发现没有 NameNode 服务进程,可以先检查一下是否执行了 namenode 的初始化操作。如果没有初始化 namenode ,先执行 stop-dfs.sh ,然后执行 hdfs namenode -format ,最后执行 start-dfs.sh 命令,通常来说这样就能够保证这三个服务进程成功启动。

在遇到Hadoop无法启动、任务期间报错等情况,除了提示信息以外,查看日志是定位问题的最佳方法。

hadoop的守护进程日志默认在输出安装目录的log文件夹中,在终端中输入以下命令进入到日志目录:
$ cd /opt/hadoop-2.6.1/logs
$ ls

在hadoop成功启动之后,输入以下这个网址打开hadoop web页面
http://localhost:50070
在这里插入图片描述
接下来就是HDFS文件上传测试
$ cd ~
$ hdfs dfs -mkdir /user
$ hdfs dfs -mkdir /user/hadoop

如果需要查看创建好的文件夹,可以使用如下命令:
hdfs dfs -ls /user
目录创建成功之后,使用 hdfs dfs -put 命令将本地磁盘上的文件(此处是随意选取的 Hadoop 配置文件)上传到 HDFS 之中.
$ hdfs dfs -put /opt/hadoop-2.6.1/etc/hadoop /user/hadoop/input
如果查看上传的文件,可以执行如下命令:
$ hdfs dfs -ls /user/hadoop/input
在这里插入图片描述

WordCount测试例

启动任务
在终端中首先启动YARN服务:
$ start-yarn.sh
在这里插入图片描述
然后输入以下命令以启动任务(执行如下命令需要等待较长时间,请耐心等待),在这个过程中我们可以看到 map 和 reduce 任务的执行过程:
$ hadoop jar /opt/hadoop-2.6.1/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.1.jar wordcount /user/hadoop/input/ output
查看结果
$ rm -rf /home/hadoop/output
$ hdfs dfs -get /user/hadoop/output output

导出后用cat命令查看文件内容:
$ cat output/*
在这里插入图片描述
关闭HDFS服务
计算完毕后要及时关闭HDFS守护进程。
输入HDFS和YARN的守护进程:
$ stop-yarn.sh
$ stop-dfs.sh

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值