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

  1. 花了好长时间终于把集群搭建起来了,写出来给大家分享下,让大家少走点弯路。
  2. 首先我们来看看成功后的效果,三个结点成功运行wordcount这个程序结果,运行出结果
    CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第1张图片
    计算出来的结果图
    CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第2张图片
    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用户修改,三台电脑都要这样做。
    CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第3张图片
    如果如图就证明可以
    CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第4张图片
    5.配置三台电脑的静态IP,能让电脑能够上网。见这篇文章
    http://blog.csdn.net/qq_22222499/article/details/53222780
    配置IP台三台电脑IP最好连号,还要配置主机名与ip映射关系,/etc/hosts文件如图,红圈是计算机在虚拟机的名字。三台电脑能够想互ping通,就算成功了。
    CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第5张图片
    6规划组件位置
    CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第6张图片
    7.配置机器1分别到自己和另外两台机器的免密码登录
    配置机器2分别到自己和另外两台机器的免密码登录
    达成的目标是ssh登录时不要密码
    如图以机器1到机器2为例,具体方法见http://blog.csdn.net/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.defaultFSname>
 <value>hdfs://localhostlei1:8020value>
property>
<property>
 <name>hadoop.tmp.dirname>
 <value>/opt/app/hadoop-2.5.2/data/tmpvalue>
property>
configuration>

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


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

8.4datanode配置 slaves

localhostlei1
localhostlei2
localhostlei3

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

<configuration>
<property>
 <name>yarn.resourcemanager.hostnamename>
 <value>localhostlei2value>
property>
<property>
 <name>yarn.nodemanager.aux-servicesname>
 <value>mapreduce_shufflevalue>
property>
<property>
 <name>yarn.log.aggregation-enablename>
 <value>truevalue>
property>
<property>
 <name>yarn.log.aggregation.retain-secondsname>
 <value>106800value>
property>
configuration>

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


<configuration>
<property>
 <name>mapreduce.framework.namename>
 <value>yarnvalue>
property>
<property>
 <name>mapreduce.jobhistory.addressname>
 <value>localhostlei1:10020value>
property>
<property>
 <name>mapreduce.jobhistory.webapp.addressname>
 <value>localhostlei1:19888value>
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
CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第7张图片
机器2
CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第8张图片
机器3
CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第9张图片
11.使用web界面来看看,浏览器主机名:50070,如果有3代表集群启动成功。我遇到的错误是只有一个,后面看日志是找不到路由,把三个机器的防火墙都关了,重新启动nodemanager节点。
CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第10张图片
浏览器主机名:8088
CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第11张图片
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
CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第12张图片
12.5全部结束。
13.总结
每次运行时的输入目录不能重复如/lei/count/output
可能启动结点会出错,一定要学会看日志,我之前的错误总是发现不了,结果是把日志看错了,日志是这种txt文本这种。
CentOS搭建Hadoop分布式集群详细步骤和常见问题解决_第13张图片
文本可能有些错误,如查遇到问题,可以下面评论,一起解决。

你可能感兴趣的:(linux,hadoop)