之前一直在单节点psudo-distributed模式下跑,觉得有必要试试搭建一个真正的distributed环境。期间参考了不少文章,这里做个小笔记。

VM创建

这里利用VMware创建一台VM做master,再链接克隆出一台VM做slave。碰到主要的问题有:1. 如何设置VM网络连接 2. 链接克隆slave VM后,如何修复网络配置。这已经在另外一篇文章中做了笔记。
master 192.168.15.131
slave 192.168.15.132

配置ssh无密码登录

每次启动master(运行bin/start-all.sh)时,创建每个deamon进程都提示输入密码,挺烦人的,最好配置ssh以无密码登录:
a. 对于namenode和jobtracker,需要配置master本身的ssh
yum install openssh-server.x86_64
ssh-keygen
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

b. 对于datanode和tasktracker,需要配置slave的ssh

scp root@192.168.15.131:~/.ssh/autorized_keys .
cat ./autorized_keys >> ~/.ssh/authorized_keys

Hadoop节点配置

需保证master和slave上的配置保持一致.
conf/core-site.xml:
<configuration><property><name>fs.default.name</name><value>hdfs://192.168.15.131:9000</value></property><property><name>hadoop.tmp.dir</name><value>/home/hadoop-1.0.4/cache/hadoop</value></property>
</configuration>

conf/hdfs-site.xml

<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.permissions</name><value>false</value></property><property><name>dfs.name.dir</name><value>/home/hadoop-1.0.4/cache/hadoop/dfs/name</value></property><property><name>dfs.data.dir</name><value>/home/hadoop-1.0.4/cache/hadoop/dfs/data</value></property>
</configuration>

conf/mapred-site.xml:

<configuration><property><name>mapred.local.dir</name><value>/home/hadoop-1.0.4/cache/root</value></property><property><name>mapred.job.tracker</name><value>192.168.15.131:9001</value></property>
</configuration>

conf/master:

192.168.15.131

conf/slave:

192.168.15.132
conf/hadoop-env:
export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/

配置好后,格式化namenode:

hadoop namenode -format
接下来就可以启动bin/start.all.sh,接着用jps检查master和slave上的java process,确保5个deamon进程正常启动:
yum install java-1.6.0-openjdk-devel.x86_64
jps

常见问题

当然,在启动节点的过程中难免会碰到出错,这里记录下我所碰到的问题。

问题1: 在slave上用jps检查发现,datanode和tasktracker up之后,很快down掉了。检查log,发现如下exception:

2013-09-21 12:19:05,240 ERROR org.apache.hadoop.mapred.TaskTracker: Can not start task tracker because java.io.IOException: Call to 192.168.15.131/192.168.15.131:8021 failed on local exception: java.net.NoRouteToHostException: No route to host
2013-09-21 12:18:56,940 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: java.io.IOException: Call to 192.168.15.131/192.168.15.131:8020 failed on local exception: java.net.NoRouteToHostException: No route to host
怀疑是master的firewall block了namenode和jobtracker的port。后证明如下:
yum install nmap.x86_64
nmap -p 9000 -sT 192.168.15.131
Starting Nmap 5.51 ( http://nmap.org ) at 2013-09-21 12:50 EDT
Nmap scan report for 192.168.15.131
Host is up (0.00047s latency).
PORT     STATE    SERVICE
9000/tcp filtered cslistener

看到master的9000端口被firewall给filter掉了。解决办法是在master上打开端口:

iptables -I INPUT -p tcp --dport 9000 --syn -j ACCEPT
iptables -I INPUT -p tcp --dport 9001 --syn -j ACCEPT
service iptables save

之后,datanode和tasktracker可正常启动了。

问题2:虽然datanode正常启动了,但当用hadoop fs -put时,又报错,查看namenode log发现如下exception:
13/09/21 13:08:34 INFO hdfs.DFSClient: Exception in createBlockOutputStream 192.168.15.132:50010 java.net.NoRouteToHostException: No route to host
13/09/21 13:08:34 INFO hdfs.DFSClient: Abandoning block blk_-4068253165924827530_1001
13/09/21 13:08:34 INFO hdfs.DFSClient: Excluding datanode 192.168.15.132:50010
13/09/21 13:08:34 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /junz/in/movie1 could only be replicated to 0 nodes, instead of 1

显然,这次是slave的firewall block了50010端口,需要以上相同的方式allow该端口,但考虑到hadoop还会用到其他多个端口,如50030,50070,50060等,干脆将master和slave上的firewall给禁止掉:

service iptables stop

搭建Hadoop VM集群相关推荐

  1. 搭建hadoop分布式集群

    搭建hadoop分布式集群 ~ jdk安装 ip修改 vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none H ...

  2. Linux搭建hadoop高性能集群(一)

    文章目录 关于此篇(题外话) Linux系统搭建hadoop高性能集群(一) 第一步 虚拟机的安装 第二步 创建一个虚拟机 第三步 虚拟机启动初始化 第四步 虚拟机克隆 第五步 Linux系统网络配置 ...

  3. 搭建Hadoop分布式集群的详细教程

    目录 写在前面 一.创建虚拟机,安装Centos 二.VMware VMnet8模式共享主机网络配置 三.克隆集群节点HadoopSlave1与HadoopSlave2 四.Linux系统配置 五.H ...

  4. Mac M1搭建hadoop+spark集群教程

    最近一直在搞Mac虚拟机,尝试了parallel.vmware.utm,感觉效果都不是很好,踩了了很多很多坑,parallel破解直接劝退我,并且也不是很稳定:wmware for m1刚开始装了一次 ...

  5. 【转】Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    https://www.cnblogs.com/caiyisen/p/7373512.html 前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很 ...

  6. Hadoop分布式集群搭建hadoop2.6+Ubuntu16.04

    前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...

  7. Hadoop分布式集群安装在三台Ubuntu系统电脑

    前段时间搭建Hadoop分布式集群,踩了不少坑,网上很多资料都写得不够详细,对于新手来说搭建起来会遇到很多问题.以下是自己根据搭建Hadoop分布式集群的经验希望给新手一些帮助.当然,建议先把HDFS ...

  8. hadoop搭建伪分布式集群(centos7+hadoop-3.1.1)

    原文地址:https://www.cnblogs.com/zhengna/p/9316424.html Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本 2 ...

  9. hadoop分布式集群搭建

    hadoop集群搭建前的准备(一定要读):https://blog.51cto.com/14048416/2341450 hadoop分布式集群搭建: 1. 集群规划: 2.具体步骤: (1)上传安装 ...

  10. 一、史上最强hadoop分布式集群的搭建

    史上最强hadoop分布式集群的搭建 @Author:by Runsen @data:2020-02-23 原创文章,禁止转载 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自 ...

最新文章

  1. 面部表情视频中进行远程心率测量:ICCV2019论文解析
  2. 曝光丨探访哈工大机器人的秘密基地(图)
  3. android 36 线程通信
  4. 【思维导图-索引篇】搞定数据库索引就是这么简单
  5. ArtRage中文版
  6. 用CSS实现首字下沉效果,仿word的首字下沉
  7. 转-《高性能mysql》并不是一本好书——SQL笔记
  8. 图论——图的遍历(洛谷 P3916)
  9. iQOO手机正式发布,全新性能旗舰打造爆燃体验
  10. 拒绝低效办公,9个超实用职场必备国产软件推荐
  11. wpf listBox 多列大图片效果
  12. LeetCode-50:关于浮点型数字求高次幂的高效运算
  13. jclasslib插件
  14. GOM登录器技术研究,闪退、掉线的原因分析和解决
  15. 菜狗收到了图后很开心,玩起了pdf 提交格式为flag{xxx},解密字符需小写
  16. SAP CO_PA(获利能力分析)专题:业务数据流及BW建模
  17. 【学习摘记】马士兵HTML CSS_课时4-5_表格和表单
  18. java正则匹配ip_正则表达式匹配ip地址
  19. python办公自动化(4)拆分表格
  20. 安装archlinux+cinnamon笔记

热门文章

  1. 计算机驱动有必要更新,电脑各硬件驱动程序是否越新越好?需要经常更新驱动程序吗?...
  2. Mysql 地区经纬度 查询
  3. Grafana panel 图形高级定制
  4. 入侵mssql2000
  5. Android O (8.0) 新特性介绍
  6. 投影幕布尺寸计算器_投影幕布:投影幕布的尺寸计算
  7. stm32 常见错误之can线通信
  8. RS232_RS422_RS485简介
  9. 【笔记记录】如何写论文?论文的基本结构是什么。
  10. 简单的爬图片代码(python)