一、安装&启动

安装

下载hadoop2.7.2

2.7.2-官方文档

安装ssh

## 检查是否有ssh
## 若返回结果有openssh-clients、openssh-server说明安装
rpm -qa | grep ssh
## 检查ssh是否可用

ssh localhost

启动

查看hadoop版本

./bin/hadoop version

运行一个例子

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
$ cat output/*

输出结果


运行WordCount样例

创建文件夹wordinput以及在文件夹下创建word.txt文本,文本内容如下:

hello

world

hello

kafka kafka

hello world

big data

bigdata

执行脚本

./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wordinput wordoutput

得到运行结果


Hadoop 配置文件

hadoop core-default配置文件介绍

配置etc/hadoop/core-site.xml

fs.defaultFS

hdfs://localhost:9000

配置etc/hadoop/hdfs-site.xml

dfs.replication

1

启动HDFS

执行脚本

./bin/hdfs namenode -format

下面两种方式是等价的

./sbin/start-dfs.sh

## 启动namenode进程
./sbin/hadoop-daemon.sh start namenode
## 启动datanode进程
./sbin/hadoop-daemon.sh start datanode
namenode是什么?datanode是什么?为什么必须要格式化namenode才能启动成功?

看到DFS的面板。



启动Yarn

配置etc/hadoop/mapred-site.xml:

mapreduce.framework.name

yarn

配置etc/hadoop/yarn-site.xml:

yarn.nodemanager.aux-services

mapreduce_shuffle

启动 ResourceManager daemon and NodeManager daemon:

sbin/start-yarn.sh


问题解决

每次启动HDFS,都必须格式化,才能启动NameNode

原因是,配置HDFS时,只配置了DataNode目录,没有配置NameNode相关信息。默认的tmp文件每次重新开机都会被清空,导致集群找不到NameNode信息,所以需要每次都重新格式化。

解决方法:

hadoop.tmp.dir

/usr/local/hadoop/Hadoop_tmp

A base for other temporary directories.

参考文档