CentOS搭建Hadoop分布式集群详细步骤和常见问题解决

本文详细介绍了如何从零开始搭建Hadoop集群的过程,包括虚拟机的配置、JDK的安装与配置、各节点间的免密码登录设置、核心配置文件的调整等关键步骤,并通过实例演示了集群的成功运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 花了好长时间终于把集群搭建起来了,写出来给大家分享下,让大家少走点弯路。
  2. 首先我们来看看成功后的效果,三个结点成功运行wordcount这个程序结果,运行出结果
    这里写图片描述
    计算出来的结果图
    这里写图片描述
    3.实验准备
    虚拟机里3台拥有CentOS6.4操作系统的计算机
    hadoop-2.5.2.tar.gz安装包
    jdk-8u111-linux-x64.tar.gz安装包
    三台电脑要有相同的安装目录,放置hadoop安装包,jdk包,最好有相同的用户名,和密码。
    4.配置jdk,最好不用使用虚拟机的克隆功能,可能会出些其它问题,所以装操作系统时最好单独装,CentOS本人感觉特别好装。jdk安装就是配置环境变量,配置文件在/etc/profile用root用户修改,三台电脑都要这样做。
    这里写图片描述
    如果如图就证明可以
    这里写图片描述
    5.配置三台电脑的静态IP,能让电脑能够上网。见这篇文章
    http://blog.youkuaiyun.com/qq_22222499/article/details/53222780
    配置IP台三台电脑IP最好连号,还要配置主机名与ip映射关系,/etc/hosts文件如图,红圈是计算机在虚拟机的名字。三台电脑能够想互ping通,就算成功了。
    这里写图片描述
    6规划组件位置
    这里写图片描述
    7.配置机器1分别到自己和另外两台机器的免密码登录
    配置机器2分别到自己和另外两台机器的免密码登录
    达成的目标是ssh登录时不要密码
    如图以机器1到机器2为例,具体方法见http://blog.youkuaiyun.com/qq_22222499/article/details/53239741,如果遇到问题了可以参考我的其它文章。
    这里写图片描述
    8.接下来就是配置文件
    8.1在机器1解压hadoop压缩包,得到文件,配置文件全部在/hadoop/etc/hadoop/下,第一步配置JAVA_HOME在hadoop-env.sh,mapred-env.sh,yarn-env.sh,这步很简单,就不贴图了。
    8.2在hadoop安装目录下创建data/tmp目录
    core-site.xml配置文件 内容,配置NameNode
    第一个值是机器1的主机名
<configuration>
<property>
 <name>fs.defaultFS</name>
 <value>hdfs://localhostlei1:8020</value>
</property>
<property>
 <name>hadoop.tmp.dir</name>
 <value>/opt/app/hadoop-2.5.2/data/tmp</value>
</property>
</configuration>

8.3配置SecondaryNameNode(hdfs-site.xml)在机器3上,故主机名为机器3


<configuration>
<property>
 <name>dfs.name.secondary.http-address</name>
 <value>localhostlei3:50090</value>
</property>
</configuration>

8.4datanode配置 slaves

localhostlei1
localhostlei2
localhostlei3

8.5配置yarn(yarn-site.xml)
ResourceManager在机器2

<configuration>
<property>
 <name>yarn.resourcemanager.hostname</name>
 <value>localhostlei2</value>
</property>
<property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
</property>
<property>
 <name>yarn.log.aggregation-enable</name>
 <value>true</value>
</property>
<property>
 <name>yarn.log.aggregation.retain-seconds</name>
 <value>106800</value>
</property>
</configuration>

8.6把mapred-site.xml.template改成mapred-site.xml,第二值是机器1


<configuration>
<property>
 <name>mapreduce.framework.name</name>
 <value>yarn</value>
</property>
<property>
 <name>mapreduce.jobhistory.address</name>
 <value>localhostlei1:10020</value>
</property>
<property>
 <name>mapreduce.jobhistory.webapp.address</name>
 <value>localhostlei1:19888</value>
</property>
</configuration>

9.将安装包分发到机器2和机器3的相同目录使用
scp -r hadoop-2.5.0/ 主机名:/目录 ,前面配置过了ssh所以不需要密码
10.启动各节点
先格式化 hadoop安装目录下 bin/hdfs namenode -format 输出的日志最后信息有个地方status是0代表没错,1到过有错,这里可能出现的错误是,之前建立的/data/tmp是用root用户建立的,当前用户没有权限操作文件,把/data/tmp的拥有者变成当前用户,这些操作都是在当前用户下进行,不能在root用户下进行。
机器1 hadoop安装目录下 sbin/start-dfs.sh启动NameNode,DataNode,和SecondaryNameNode
机器2 hadoop安装目录下 sbin/start-yarn.sh start启动ResourceManager和NodeManager
成功后图机器1
这里写图片描述
机器2
这里写图片描述
机器3
这里写图片描述
11.使用web界面来看看,浏览器主机名:50070,如果有3代表集群启动成功。我遇到的错误是只有一个,后面看日志是找不到路由,把三个机器的防火墙都关了,重新启动nodemanager节点。
这里写图片描述
浏览器主机名:8088
这里写图片描述
12.到这里集群没有问题了,接下来测试一下。
12.1 在hadoop目录下建立文件输入wordcount.txt

hadoop hive hdfs
hadoop  hive  
hadoop

12.2在hdfs文件中建立目录
hadoop安装目录下 bin/hdfs dfs -p /lei/count
12.3上传文件到目录下
bin/hdfs dfs -put /lei/count
12.4运行程序
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /lei/count /lei/count/output
这里写图片描述
12.5全部结束。
13.总结
每次运行时的输入目录不能重复如/lei/count/output
可能启动结点会出错,一定要学会看日志,我之前的错误总是发现不了,结果是把日志看错了,日志是这种txt文本这种。
这里写图片描述
文本可能有些错误,如查遇到问题,可以下面评论,一起解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wending-Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值