大数据学习之路(三)——hadoop分布式

睡不着觉,拉着狗陪我写博客

开始搭建分布式hdfs环境


参考文章 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/ClusterSetup.html

建议:为了快速学习,建议同一个网址打开两个窗口,一种一个使用谷歌翻译整个页面,另一个作为对照使用,提高自己的学习效率

电脑性能有限,本打算用mac自身做namenode,启动3台虚拟机做datanode,无奈mac下需要重新编译hadoop,于是又copy了一份虚拟机,mac做伪分布式和代码编写的时候用。

在使用mac做完全分布式的时候,会发现如下情况

在执行format的时候会发现节点的HADOOP_HOME路径不对,默认在节点上使用了mac的环境变量地址

感谢王小雷-多面手同学对我指导https://my.csdn.net/dream_an


ok,于是乎,节点分布如下

虚拟机名称 NN(NameNode) DN(DataNode) SN(Secondary NameNode)
hadoop004 Y N N
hadoop001 N Y Y
hadoop002 N Y N
hadoop003 N Y N
解释一下为什么hadoop004放在第一个,因为最初是用mac做namenode的,结果跑步起来,所以用hadoop004充当mac,所以放在第一个

注意:

SN并不能完全替代NN,SN仅仅是帮助NN整合edits 和 images
请保证,各个服务器互相加入免密登录,以下配置文件路径均在HAOOP_HOME中的相对路径,以上环境搭建均为未涉及yarn,所以不要问为什么MapReduce写不了。

ok,开始造配置文件(真的是一直在弄配置文件)

1. core-site.xml

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop004:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop</value>
</property>
注意:
fs.defaultFS配置的是你的namenode
hadoop.tmp.dir默认文件是在tmp目录下,这意味着文件可能会丢失,确保/opt/hadoop文件不存在,或为空,并且你的执行用户对opt有写权限。

2. hdfs-site.xml

<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>hadoop001:50090</value>
</property>

此为SN配置项,需要做SSL,请加入以下配置

<property>
    <name>dfs.namenode.secondary.https-address</name>
    <value>hadoop001:50091</value>
</property>

3. 编辑etc/hadoop/slaves

hadoop001
hadoop002
hadoop003
这里是配置datanode的节点

4. 编辑etc/hadoop/masters没有则创建

hadoop001
这里是指定SN的服务器

5. scp以上配置文件到各个服务器中

6. format

hdfs.sh namenode -format

7. 到各个节点jps查看对应的服务是否已经启动

ok,基础的分布式已经搭建,注意SN在2.X以后的版本不为必须,为通过zookeeper进行高可用方案配置

猜你喜欢

转载自blog.csdn.net/qq_31343581/article/details/80851248