`
memorymyann
  • 浏览: 266327 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

hdfs集群搭建

阅读更多

网上很多hadoop集群搭建的文章,我这里只写下hdfs,不写mapreduce那块了。主要用来自己记得。

 

hadoop版本,我用的是比较新的2.3.0。

 

集群环境

mater 10.19.70.114

slave1 10.19.71.144

slave2 10.19.70.145

系统 ubuntu。windows用户不好意思,已经很久不怎么用windows了。

 

解压hadoop后,添加配置项$HADOOP_HOME到你解压的目录的hadoop下面。比如我的~/hadoop-2.3.0。至于这个配置项有没有用,我确实不知道。

 

添加JAVA_HOME,好吧,我试了用配置项,死活不行。好吧,我不知道网上那些是怎么信誓旦旦的成功的,可能是版本问题,我后来改了 $HADOOP_HOME/etc/hadoop-env.sh脚本,在里面加了JAVA_HOME配置。

注意$HADOOP_HOME/etc/hadoop这个目录,后面基本上所有的配置文件都在这里改,可能和老版本位置不太一样。

 

添加ssh免登权限。这个很多人都只是说配置,没说为什么要配置。其实说白了,集群么,你如果在master启动整个集群时候,master会根据配置,去找所有slave机器,然后通过ssh去启动slave上面的启动脚本。问题来了,他是用什么账号去ssh的,说实话我没搞清楚,我估计就是用你现在master上的那个账号,比如我登陆master机器的账号是hadoop,估计他就直接ssh hadoop@master了。所以你最好在整个集群所有机器上配置相同名字的账号,至于密码,随便吧,这个大家应该知道的。

另外一个,没有必要配置那么多免登,如果你是在master机器上启动集群,那就让master免登所有的slave。如果你在slave1上启动所有集群,那就让slave1免登整个集群其它机器。这个不难理解吧,至于免登,随便找找吧,到处都有,记得别弄反了,我经常弄反。

 

好关键的hadoop配置,记得我的版本是2.3.0,配置文件和老版本可能不太一样。另外这里只说hdfs,所以我没改map reduce配置,我也不会去启动map reduce的相关东西,东西一点一点来。

 

到$HADOOP/etc/hadoop下面找到一个core-site.xml。

其中将master机器改成

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://0.0.0.0:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/hadoop/tmp</value>

</property>

</configuration>

所有的slave改成

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master-hadoop:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/hadoop/tmp</value>

</property>

</configuration>

在所有的slave机器上,添加host绑定 masterIP master-hadoop

大家可能看到master配置fs.defaultFS和slave不太一样,我用的是0.0.0.0,知道网络的朋友,你们懂得,我就不多做解释了。我一开始没注意,到后来发现slave死活链接不到master上去,启动时候是不会报错啦,但一旦你想操作datanode时候,你懂得,直接报错是没有datanode.原因就是没连上。

 

最后改下hdfs-site.xml,不管master还是slave都一样。

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/hadoop/dfs/name</value>

</property>

<property>

<name>dfs.namenode.data.dir</name>

<value>file:/home/hadoop/dfs/data</value>

</property>

<property>

<name>dfs.replication</name>    #数据副本数量,默认3,我们是两台设置2

<value>2</value>

</property>

 

 

</configuration>

注意,我有2台slave所以我的dfs.replication配置是2。

 

最后启动,好吧,我只配置了hdfs,所以我启动的如下:

$HADOOP_HOME/sbin/start-dfs.sh。然后我只配置master免登slave,所以我只能在master上启动,你们要是不嫌麻烦,所以机器俩俩之间都配置了免登,那就随便哪台都可以启动。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics