一、安装&启动
安装
下载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.
参考文档