当前位置:首页 > 问答 > 正文

专家带你一步步摸索Hadoop集群配置那些事儿,别急慢慢来学着整合吧

整理自CSDN博客《专家带你一步步摸索Hadoop集群配置那些事儿,别急慢慢来学着整合吧》的作者“大数据技术专家”分享,以及博客园用户“老李的分布式笔记”的相关实践总结。)

好的,咱们这就开始,配置Hadoop集群听起来挺吓人的,感觉是高手才能玩转的东西,但其实只要你有点耐心,跟着步骤一步步来,真没想象中那么难,今天咱们就抛开那些让人头晕的专业术语,像朋友聊天一样,把这事儿捋清楚,记住核心思想:别急,慢慢来。

第一步:先把“地基”打好——准备机器和环境

你得有几台电脑(物理机或者虚拟机都行)来充当集群的节点,通常至少需要三台:一台当“老大”(主节点),另外两台当“干活的”(从节点),这个“老大”在Hadoop里有个正式名字叫NameNode,它负责管理整个文件系统的目录和文件信息,就像是公司的总档案室,而那些“干活的”叫DataNode,它们才是真正存储数据块的地方。

(根据“老李的分布式笔记”的提醒)在开始安装Hadoop软件之前,有幾件琐碎但至关重要的事情必须先做好:

  1. 给机器起名字并确保它们能互相认识:给你的每台机器起个独一无二的主机名,比如叫masterslave1slave2,要在每台机器的/etc/hosts文件里,把所有人的IP地址和对应的主机名都写进去,这就好比在一个小团体里,你得知道每个人的名字和住址,才能串门聊天,不然的话,节点之间会“找不到对方”,集群就建不起来。
  2. 配置免密登录:这是为了省事和安全,你需要让master节点能够不需要密码就直接登录到其他的slave节点上,怎么弄呢?就是在master上生成一对钥匙(公钥和私钥),然后把公钥拷贝到每一台slave节点的授权文件里,这样以后master指挥slave干活的时候,就不用每次输密码了,这一步很多新手会卡住,一定要耐心操作。
  3. 检查Java环境:Hadoop是用Java写的,所以每台机器上都必须安装相同版本的JDK(Java开发工具包),用java -version命令检查一下,确保都有,而且版本一致。

第二步:开始“盖房子”——安装和配置Hadoop

专家带你一步步摸索Hadoop集群配置那些事儿,别急慢慢来学着整合吧

等基础环境准备好了,就可以去Hadoop官网下载稳定版本的安装包,然后解压到你指定的目录,比如/usr/local/hadoop

接下来是最核心的部分:修改配置文件,Hadoop的配置都在它解压后目录下的etc/hadoop/文件夹里,我们需要重点修改几个文件:

(“大数据技术专家”在博客中强调,配置文件是灵魂,要细心)

  • core-site.xml:这是核心配置,你要在这里告诉Hadoop,咱们的“老大”(NameNode)在哪台机器上,就是在<configuration>标签里加上一段,指定fs.defaultFS的地址,比如hdfs://master:9000,意思是,所有想访问HDFS文件系统的人,都去联系master机器的9000端口。
  • hdfs-site.xml:这个是关于HDFS文件系统的具体配置,你要设定数据块副本存几份(默认是3份,意思是同一份数据会在不同的slave节点上存3个拷贝,防止某台机器坏了数据丢失),你还可以设定NameNode和DataNode的数据存储在本地的哪个目录下。
  • mapred-site.xml:这个是配置MapReduce计算框架的,你要指定资源调度器用哪个版本,通常我们会配成yarn,这样管理任务更高效。
  • yarn-site.xml:Yarn是负责资源管理和调度的,在这里你要指定资源管理器(ResourceManager)运行在哪个节点(通常是master),以及节点管理器(NodeManager)的一些附加服务。
  • workers(老版本可能叫slaves):这个文件最简单,但也最容易忘,你只需要在这个文件里,一行一个地写上所有“干活”的slave节点的主机名,
    slave1
    slave2

    这样Hadoop启动时就知道要去哪些机器上启动DataNode和NodeManager服务。

    专家带你一步步摸索Hadoop集群配置那些事儿,别急慢慢来学着整合吧

第三步:“通电测试”——启动集群并验证

所有配置都改好后,就是激动人心的启动时刻了,你需要格式化HDFS文件系统。注意:这个操作只在第一次搭建时做一次,重复格式化会清空所有数据!master节点上,进入Hadoop的bin目录,执行hdfs namenode -format

格式化成功后,就可以启动整个集群了,现在Hadoop提供了方便的脚本,在sbin目录下,直接运行start-dfs.sh来启动HDFS相关的服务,再运行start-yarn.sh启动Yarn相关的服务。

怎么知道启动成功了呢?

  1. jps命令分别在masterslave节点上查看Java进程,在master上,你应该能看到NameNode、ResourceManager等进程;在slave上,应该能看到DataNode和NodeManager进程。
  2. 用浏览器访问master机器的9870端口(比如http://master:9870),你应该能看到HDFS的Web管理界面,上面会显示集群的存储空间和使用情况,还能看到活着的DataNode数量对不对。
  3. 尝试在HDFS上创建个目录,上传个本地文件试试,比如执行hdfs dfs -mkdir /testhdfs dfs -put ~/test.txt /test,如果没报错,就说明集群基本工作正常了。

(“老李的分布式笔记”最后补充道)第一次配置失败非常正常,可能会因为一个标点符号、一个主机名拼写错误就导致启动失败,关键是要学会看日志,Hadoop每个服务的日志文件都在logs目录下,出错了就耐心去查对应的日志,根据错误信息网上搜索解决方案,多折腾几次,你就会越来越有感觉了,好了,今天就先摸索到这儿,下次我们再聊聊怎么在上面跑第一个真正的计算任务。