声明:这里要搭的集群很简单,仅供研究学习使用:
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去各个结点看看。