1. 集群简介
HADOOP集群具体来说包含两个集群:HDFS集群和YARN集群,两者逻辑上分离,但物理上常在一起。
HDFS集群负责海量数据的存储,集群中的角色主要有:
NameNode、DataNode、SecondaryNameNode
YARN集群负责海量数据运算时的资源调度,集群中的角色主要有:
ResourceManager、NodeManager
我们以3节点为例进行搭建,角色分配如下:
node1 |
NameNode | DataNode | ResourceManager |
node2 | DataNode | NodeManager | SecondaryNameNode |
node3 | DataNode | NodeManager |
2. 集群启动
1. 启动方式
要启动Hadoop集群,需要启动HDFS和YARN两个集群。
注意:首次启动HDFS时,必须对其进行格式化操作。本质上是一些清理和准备工作,因为此时的HDFS在物理上还是不存在的。
hadoop namenode -format
2. 单节点逐个启动
在主节点上使用以下命令启动HDFS NameNode:
$HADOOP_HOME/bin/hdfs --daemon start namenode
在每个从节点上使用以下命令启动HDFS DataNode:
$HADOOP_HOME/bin/hdfs --daemon start datanode
在node2上使用以下命令启动HDFS SecondaryNameNode:
$HADOOP_HOME/bin/hdfs --daemon start secondarynamenode
在主节点上使用以下命令启动YARNResourceManager:
$HADOOP_HOME/bin/yarn --daemon start resourcemanager
在每个从节点上使用以下命令启动YARN nodemanager:
$HADOOP_HOME/bin/yarn --daemon start nodemanager
如果想要停止某个节点上某个角色,只需要把命令中的start改为stop即可。
当启动完成后,查看三台节点上的进程
第一台
编辑
第二台
编辑
第三台
编辑
3. 脚本一键启动
如果配置了etc/hadoop/workers和ssh免密登录,则可以使用程序脚本启动所有Hadoop两个集群的相关进程,在主节点所设定的机器上执行。
hdfs:$HADOOP_PREFIX/sbin/start-dfs.sh
yarn:$HADOOP_PREFIX/sbin/start-yarn.sh
停止集群:stop-dfs.sh、stop-yarn.sh
3. 集群web-ui
一旦Hadoop集群启动并运行,可以通过web-ui进行集群查看,如下所述:
NameNode http://nn_host:port/ 默认9870.
编辑
ResourceManager http://rm_host:port/ 默认 8088.
编辑
4. HDFS使用
从Linux本地上传一个文本文件到hdfs的/test/input目录下
hadoop fs -mkdir -p /wordcount/input
hadoop fs -put /root/somewords.txt /wordcount/input
5. 运行mapreduce程序
在Hadoop安装包的share/hadoop/mapreduce下有官方自带的mapreduce程序。我们可以使用如下的命令进行运行测试。
示例程序jar:
hadoop-mapreduce-examples-3.3.0.jar
计算圆周率:
hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 20 50
关于圆周率的估算,感兴趣的可以查询资料Monte Carlo方法来计算Pi值。