Hadoop2.7.2版本分布式集群搭建详细记录(2)

来源:互联网 发布:爱思助手mac下载 编辑:程序博客网 时间:2024/06/06 15:53

接上上一篇《Hadoop2.7.2版本分布式集群搭建详细记录》。


Hadoop Cluster Setup


4.hadoop平台安装

hadoop下载地址附上: http://archive.apache.org/dist/hadoop/core/  我下载的是当前最新版本 2.7.2版本。

hadoop的安装是挺简单的了。。直接把下载的压缩包解压到/usr/bin/下即可了。。。很简单的把。。

centos7中解压命令为: tar -xzvf hadoop-zip-file-name -C /usr/bin


5.修改hadoop环境配置

这玩意实在坑=(其实是我太菜 哈哈哈=。=)。配置文件目录为: /usr/bin/hadoop-2.7.2/etc/hadoop ( 网上很多教程都是1.x版本的,配置文件目录不一样) 

主要修改以下几个文件 hadoop-env.sh  yarn-env.sh (这两个文件是解决JAVA_HOME问题)。这个比较简单。。找到后直接把jd绝对路径值赋值给JAVA_HOME

重点解决 core-site.xml    hdfs-site.xml  mapred-site.xml    yarn-site.xml  

配置参考文档: http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/ClusterSetup.html (Hadoop Cluster Setup)

这里我直接列出几个文件的内容吧。测试通过了。。

    core-site.xml

<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://master:9000</value>    </property>    <property>        <name>hadoop.tmp.dir</name>        <value>file:/usr/bin/hadoop-2.7.2</value>    </property>    <property>        <name>io.file.buffer.size</name>        <value>131702</value>    </property></configuration>

hdfs-site.xml

<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><!-- Put site-specific property overrides in this file. --><configuration>    <property>        <name>dfs.namenode.name.dir</name>        <value>file:/usr/bin/hadoop-2.7.2/dfs/name</value>    </property>    <property>        <name>dfs.datanode.data.dir</name>        <value>file:/usr/bin/hadoop-2.7.2/dfs/data</value>    </property>    <property>        <name>dfs.replication</name>        <value>1</value>    </property>    <property>        <name>dfs.namenode.secondary.http-address</name>        <value>master:9001</value>    </property>    <property>       <name>dfs.webhdfs.enabled</name>       <value>true</value></property></configuration>

mapred-site.xml

<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>      <property>     <name>mapreduce.framework.name</name>      <value>yarn</value>   </property>    <property>     <name>mapreduce.jobhistory.address</name>      <value>master:10020</value>   </property>    <property>     <name>mapreduce.jobhistory.webapp.address</name>      <value>master:19888</value>     </property> </configuration>


yarn-site.xml

<?xml version="1.0"?><configuration>    <!-- Site specific YARN configuration properties -->    <property>        <name>yarn.nodemanager.aux-services</name>        <value>mapreduce_shuffle</value>    </property>    <property>        <name>yarn.resourcemanager.address</name>        <value>master:8032</value>    </property>    <property>        <name>yarn.resourcemanager.scheduler.address</name>        <value>master:8030</value>    </property>    <property>        <name>yarn.resourcemanager.resource-tracker.address</name>        <value>master:8031</value>    </property>    <property>        <name>yarn.resourcemanager.admin.address</name>        <value>master:8033</value>    </property>    <property>        <name>yarn.resourcemanager.webapp.address</name>        <value>master:8088</value>    </property></configuration>

最后还要配置下slavers文件。这个保险起见,用vi来编辑。应该是换行的原因吧。

这些配置好后,把hadoop-2.7.2文件发送给各个slaver机器上。

linux命令如下: scp -r /usr/bin/hadoop-2.7.2 root@slaver-name:/usr/bin/

这些弄好后就在master机器上,进入到hadoop-2.7.2文件夹下面。

cd /usr/bin/hadoop-2.7.2/

这时候先初始化hadoop :  bin/hadoop namenode -format (注意下图划红线部分 表示成功执行 否则查错 在logs文件夹下)

然后启动hadoop :sbin/start-all.sh


这时候检查下master 和slaver机器中 hadoop运行状态,方法两个,一个是通过jps命令 一个是web查看。


下图为slaver中的jps结果:


注意下: 如果NodeManager没有启动 那么基本是yarn-site.xml文件配置有错误。。。


接下来看看成功启动后web上的结果  我们看两个端口的结果:




好了,hadoop的搭建和环境配置到此结束。接下来,我们测试下hadoop中样例。


6. 测试hadoop样例

样例jar地址:/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar

为了方便演示,我把此文件直接上传到hadoop-2.7.2根目录下。命名为examples.jar

输入指令: bin/hadoop jar examples.jar  查看examples.jar有哪些类。如果想更加了解某个类 可以输入  bin/hadoop jar examples.jar  pi 即可了解关于计算pi的参数

ok,这里我们就先测试计算pi的值 参数选择10  20。。下一节,用Python写WordCount代码。



此时,打开master:8088也可以查看到此任务。


7. 编写基本的MapReduce程序并运行

说明下,这里我使用python来写。至于java环境开发的话,网上教程挺多的。难度不大。这里用python的原因是,不用搭配环境,直接vim即可上手。多方便啊。

先说说相关的基本知识点,hadoop允许用户使用各种支持标准输入输出(stdin stdout)的语言进行MapReduce编码。hadoop之所以能实现如此的灵活性,是通过hadoop-streaming来实现的。关于Streaming的知识点,可以查看官方文档(我认为,应该多看官方文档,而不是有问题就直接百度,多去思考思考,不行再来百度谷歌也不迟。)





0 0
原创粉丝点击