搭建简单的Hadoop集群

声明:这里要搭的集群很简单,仅供研究学习使用:

1. 绝大部分参数都用默认值

2. Name Node 和 Job Tracker共用一台机器

3. 没有Secondary Name Node

在master机上生成ssh所需的key-pair

$ssh-keygen -t rsa

为了方便,shell提示输入passphrase时可以直接按回车

让每台机(包括master机本身)都信任master机器

以worker1机器为例,

##在master机上
$scp ~/.ssh/id_rsa.pub worker1:~/hadoop/namenode_rsa.pub
##在worker1上
$cat ~/hadoop/namenode_rsa.pub >> ~/.ssh/authorized_keys
##试着从master直接登录到worker1上,看看是不是可以免输密码
$ssh worker

在master上指定相关的workers

引用

##修改conf/slaves

worker1

worker2

这个文件不必同步到worker机器上

修改master机器的配置文件并同步到其他机器

<!--修改conf/core-site.xml-->
<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://master/</value>
  </property>
</configuration>
<!--修改conf/hdfs-site.xml-->
<configuration>
<property>
    <name>dfs.name.dir</name>
    <value>/home/kent/hadoop/name</value>
</property>

<property>
    <name>dfs.data.dir</name>
    <value>/home/kent/hadoop/data</value>
</property>
</configuration>

<!--修改conf/mapred-site.xml-->
<configuration>
<property>
    <name>mapred.job.tracker</name>
    <value>master:8021</value>
  </property>

<property>
    <name>mapred.tasktracker.map.tasks.maximum</name>
    <value>2</value>
  </property>

<property>
    <name>mapred.tasktracker.reduce.tasks.maximum</name>
    <value>2</value>
  </property>


</configuration>

格式化一下master上的文件系统

$hadoop namenode -format

在master机上启动集群

$start-all.sh 

通过web控制台观察一下状况

引用

在任意一台机上提交job

$hadoop  jar coupon11log.jar coupon11log.Coupon11LogJobMain 

观察web控制台

常见问题

引用

问:在hdfs控制台浏览文件时浏览器会跳到http://0.0.0.0:50070/browseDirectory.jsp?namenodeInfoPort=50070&dir=/,是不是有什么地址绑定错误?

答:不是,这仅是因为worker结点没起起来。可以用jps去各个结点看看。

Leave a Comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.