一、hadoop - 创建单个节点集群

这篇文档描述了如何创建和配置一个单一节点的hadoop,于是你可以很快地利用Hadoop的MapReduce和Hadoop的分布式文件系统(HDFS,Hadoop Distributed File System)做一些简单的操作。

支持的平台
- GNU/Linux 作为开发和生产平台都是支持的。hadoop在GNU/Linux上已经发布了2000个节点。
- Windows也是一个支持的平台,但是接下来的步骤都只对于Linux平台。
需要的软件
Linux需要的软件包括:
- Java平台是必须安装的。
- ssh必须安装,并且sshd必须运行,因为要利用它来运行Hadoop的脚本从而管理远程hadoop守护进程
安装软件
如果你的集群没有这些软件,你就需要去安装它们。
比如,在Ubuntu Linux上:
$ sudo apt-get install ssh
$ sudo apt-get install rsync

可以从Apache官方维护镜像文件来下载最新的稳定的Hadoop发布版本。

将下载的hadoop进行解压。编辑文件/etc/hadoop/hadoop-env.sh来定义如下一些属性:
#设置你的Java安装根目录
export JAVA_HOME=/usr/java/latest
#假设你的Hadoop安装目录为/usr/local/hadoop
export HADOOP_PREFIX=/usr/local/hadoop
尝试如下命令:
$ bin/hadoop
现在,我们既可以以下面的一种模式来开始我们的Hadoop集群:

默认情况下,Hadoop是以非分布式模式进行配置的,即一个Java进程。这种情形对于debug是非常有用的。
下面的例子将解压目录下的conf目录作为输入,然后找到并展示符合正则表达式的匹配串。输出是写入到一个output的目录。
$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
$ cat output/*

Hadoop能够以伪分布模式运行在一个节点上。在这个节点上,每个Hadoop守护进程就是一个独立的Java进程。
配置
etc/hadoop/core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> </configuration>
etc/hadoop/hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
设置SSH互信通信
现在检查你的ssh能否无需密码连接localhost主机:
$ ssh localhost
如果你不能没有密码连通localhost主机,那么执行下面的命令:
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
执行
下面的指令是本地运行一个MapReduce作业。
1、格式化文件系统:
$ bin/hdfs namenode -format
2、开始NameNode守护进程和DataNode守护进程:
$ sbin/start-dfs.sh
Hadoop守护进程的日志信将会输入到$HADOOP_LOG_DIR目录下(默认为$HADOOP_HOME/logs)
3、根据web接口来浏览NameNode,默认是:
NameNode - http://localhost:50070/
4、创建HDFS目录来执行MapReduce作业:
$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/<username>
5、将input文件拷贝到分布式文件系统中:
$ bin/hdfds dfs -put etc/hadoop input
6、运行提供的一些例子:
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.0.jar grep input output 'dfs[a-z.]+'
7、检查输出文件
将输出文件从分布式文件系统中拷贝到本地文件系统,并且检查它们:
$ bin/hdfs dfs -get output output
$ cat output/*
或者
在分布式文件系统中浏览:
$ bin/hdfs dfs -cat output/*
8、当你做完你所做的后,就可以停止守护进程:
$ sbin/stop-dfs.sh
YARN在单个节点
你能够通过设置一些参数以伪分布式模式将MapReduce作业运行在YARN上,并且运行ResourceManager守护进程和NodeManager守护进程。
下面的指令是假设你已经完成了上面指令的1~4:
1、配置参数如下:
etc/hadoop/mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
etc/hadoo/yarn-site.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
2、运行ResourceManager守护进程和NodeManager守护进程:
$ sbin/start-yarn.sh
3、在web接口当中浏览ResourceManager,默认是在:
ResourceManager - http://localhost:8088/
4、运行MapReduce作业
5、当你完成你所做的,就可以停止守护进程:
$ sbin/stop-yarn.sh

关于完全分布式的相关信息,可以参考“集群创建”。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· PPT革命!DeepSeek+Kimi=N小时工作5分钟完成?
· What?废柴, 还在本地部署DeepSeek吗?Are you kidding?
· DeepSeek企业级部署实战指南:从服务器选型到Dify私有化落地
· 程序员转型AI:行业分析
· 重磅发布!DeepSeek 微调秘籍揭秘,一键解锁升级版全家桶,AI 玩家必备神器!