hadoop集群搭建

本文详细介绍如何在三台Centos5.564-bit节点上部署Hadoop1.0.3集群,包括环境配置、SSH无密码登录设置、Hadoop安装与配置步骤等,并提供验证安装成功的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:操作系统Centos 5.5 64-bit

三台节点,计划部署分配如下:

 ip                       主机名             用途

172.16.48.201 sg201 namenode 

172.16.48.202 sg202 datanode
172.16.48.203    sg203            datanode
三台节点的etc/hosts文件设置如下:

[plain]  view plain copy
  1. 172.16.48.203  sg203  
  2. 172.16.48.202  sg202  
  3. 172.16.48.201  sg201  

关闭三台节点的防火墙 service iptables stop

一、安装基础工具

1.三台节点上安装jdk并设置好环境变量:http://blog.youkuaiyun.com/chenxingzhen001/article/details/7732692

2.安装ssh服务

二、配置三台节点的ssh无密码登录

参考:http://blog.youkuaiyun.com/chenxingzhen001/article/details/7740357

#cd ~/.ssh

# ssh-keygen -t rsa  #在本地机器上生成密码对

# ls
id_rsa  id_rsa.pub  known_hosts

# chmod 600 authorized_keys   //权限的设置非常重要,因为不安全的设置安全设置,会让你不能使用RSA功能

说明:如果A、B、C三台机器要配置ssh无密码登陆。对于A:只需先生存自己的公钥(id_rsa.pub)、密钥(id_rsa),然后将A的公钥复制到B、C机器的authorized_keys中即可。对于B、C同理。

三、安装并配置hadoop 1.0.3

1.在hadoop官网上下载hadoop-1.0.3.tar.gz,并解压在/opt目录下

cd /opt

tar zxf hadoop-1.0.3.tar.gz

2.修改hadoop-env.sh 配置

 export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_05   #设置JAVA_HOME

 export HADOOP_HOME_WARN_SUPPRESS=1          #取消环境变量$HADOOP_HOME过时的警告

3.配置环境变量

vi /etc/profile

[plain]  view plain copy
  1. JAVA_HOME=/usr/java/jdk1.7.0_05  
  2. ANT_HOME=/usr/local/apache-ant-1.8.3  
  3. HADOOP_HOME=/opt/hadoop-1.0.3  
  4. CLASSPATH=.:$JAVA_HOME/lib/tools.jar  
  5. PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$HADOOP_HOME/bin:$PATH  
  6. export JAVA_HOME ANT_HOME HADOOP_HOME  CLASSPATH PATH  
让环境变量生效

source /etc/profile

4.设置conf/masters文件内容

[plain]  view plain copy
  1. vi conf/masters  
  2.   
  3. 172.16.48.201 # secondaryNameNode  
5.设置conf/slaves文件内容,指定slavesNodes

[plain]  view plain copy
  1. vi  /conf/slaves  
  2. 172.16.48.202  #datanode  
  3. 172.16.48.203  #datanode  
6.配置文件:conf/hdfs-site.xml

vim conf/hdfs-site.xml

[plain]  view plain copy
  1. <?xml version="1.0"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3.   
  4. <!-- Put site-specific property overrides in this file. -->  
  5.   
  6. <configuration>  
  7.     <property>  
  8.         <name>dfs.name.dir</name>  
  9.         <value>/opt/hadoop-1.0.3/name</value>  
  10.     </property>  
  11.   
  12.     <property>  
  13.         <name>dfs.data.dir</name>  
  14.         <value>/opt/hadoop-1.0.3/data</value>  
  15.     </property>  
  16.   
  17.     <property>  
  18.         <name>dfs.replication</name>  
  19.         <value>2</value>  
  20.     </property>  
  21.   
  22. </configuration>  
配置文件参数说明:
dfs.name.dir:NameNode上的本地文件路径,用于持久存储命名空间和日志信息文件等内容。该参数可以有多个值,值之间用逗号分割,表示文件映射关系信息将会被复制到每个目录中做冗余备份。
dfs.data.dir:DataNode上的本地文件路径,用于存放文件数据块。该参数可以有多个值,值之间用逗号分割,表示文件数据块将会被复制到每个目录中做冗余备份,通常配置为不同的设备
注意:这里的name、data目录不能预先创建,hadoop格式化时会自动创建,如果预先创建反而会有问题
dfs.replication:表示文件数据块要冗余备份的数量,默认值为3


7.配置文件:conf/mapred-site.xml

vim  conf/mapred-site.xm

[plain]  view plain copy
  1. <?xml version="1.0"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3.   
  4. <!-- Put site-specific property overrides in this file. -->  
  5.   
  6. <configuration>  
  7.     <property>  
  8.         <name>mapred.job.tracker</name>  
  9.         <value>172.16.48.201:9001</value>  
  10.     </property>  
  11. </configuration>  

配置文件参数说明:
mapred.job.tracker:JobTracker(任务分配管理)的主机(或者IP)和端口

mapred.local.dir:本地文件路径,用逗号分割的路径列表,是Map/Reduce临时数据存放的地方

8.配置文件:conf/core-site.xml

[plain]  view plain copy
  1. <?xml version="1.0"?>  
  2. <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>  
  3.   
  4. <!-- Put site-specific property overrides in this file. -->  
  5.   
  6. <configuration>  
  7.   <property>  
  8.       <name>fs.default.name</name>  
  9.       <value>hdfs://172.16.48.201:9000</value>  
  10.   </property>  
  11.   
  12.   <property>  
  13.      <name>fs.checkpoint.period</name>  
  14.      <value>3600</value>  
  15.   </property>  
  16.   
  17.   <property>  
  18.       <name>fs.checkpoint.size</name>  
  19.       <value>67108864</value>  
  20.   </property>   
  21.               
  22.   <property>  
  23.       <name>hadoop.tmp.dir</name>   
  24.       <value>/opt/hadoop-1.0.3/tmp</value>  
  25.   </property>  
  26. </configuration>  

9.将布署进行分发
使用scp命令,将弄好的hadoop-1.0.3文件夹复制一份,分发到各dataNode节点相同目录下:
scp -r /opt/hadoop-1.0.3 root@sg202:/opt/hadoop-1.0.3
scp -r /opt/hadoop-1.0.3 root@sg203:/opt/hadoop-1.0.3

四、启动hadoop
1.格式化一个新的分布式文件系统

[plain]  view plain copy
  1. [root@sg201 hadoop-1.0.3]# bin/hadoop namenode -format  
  2. 12/07/13 11:08:58 INFO namenode.NameNode: STARTUP_MSG:   
  3. /************************************************************  
  4. STARTUP_MSG: Starting NameNode  
  5. STARTUP_MSG:   host = sg201/127.0.0.1  
  6. STARTUP_MSG:   args = [-format]  
  7. STARTUP_MSG:   version = 1.0.3  
  8. STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1335192; compiled by   
  9.   
  10. 'hortonfo' on Tue May  8 20:31:25 UTC 2012  
  11. ************************************************************/  
  12. 12/07/13 11:08:59 INFO util.GSet: VM type       = 64-bit  
  13. 12/07/13 11:08:59 INFO util.GSet: 2% max memory = 17.77875 MB  
  14. 12/07/13 11:08:59 INFO util.GSet: capacity      = 2^21 = 2097152 entries  
  15. 12/07/13 11:08:59 INFO util.GSet: recommended=2097152, actual=2097152  
  16. 12/07/13 11:08:59 INFO namenode.FSNamesystem: fsOwner=root  
  17. 12/07/13 11:08:59 INFO namenode.FSNamesystem: supergroup=supergroup  
  18. 12/07/13 11:08:59 INFO namenode.FSNamesystem: isPermissionEnabled=true  
  19. 12/07/13 11:08:59 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100  
  20. 12/07/13 11:08:59 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s),   
  21.   
  22. accessTokenLifetime=0 min(s)  
  23. 12/07/13 11:08:59 INFO namenode.NameNode: Caching file names occuring more than 10 times   
  24. 12/07/13 11:09:00 INFO common.Storage: Image file of size 110 saved in 0 seconds.  
  25. 12/07/13 11:09:00 INFO common.Storage: Storage directory /opt/hadoop-1.0.3/name has been successfully formatted.  
  26. 12/07/13 11:09:00 INFO namenode.NameNode: SHUTDOWN_MSG:   
  27. /************************************************************  
  28. SHUTDOWN_MSG: Shutting down NameNode at sg201/127.0.0.1  
  29. ************************************************************/  

2. 启动hdfs守护进程

[plain]  view plain copy
  1. [root@sg201 hadoop-1.0.3]# bin/start-dfs.sh  
  2. starting namenode, logging to /opt/hadoop-1.0.3/libexec/../logs/hadoop-root-namenode-sg201.out  
  3. 172.16.48.202: starting datanode, logging to /opt/hadoop-1.0.3/libexec/../logs/hadoop-root-datanode-sg202.out  
  4. 172.16.48.203: starting datanode, logging to /opt/hadoop-1.0.3/libexec/../logs/hadoop-root-datanode-sg203.out  
  5. root@172.16.48.201's password:   
  6. 172.16.48.201: starting secondarynamenode, logging to /opt/hadoop-1.0.3/libexec/../logs/hadoop-root-secondarynamenode-sg201.out  

3.启动mapreduce守护进程

[plain]  view plain copy
  1. [root@sg201 hadoop-1.0.3]# bin/start-mapred.sh  
  2. starting jobtracker, logging to /opt/hadoop-1.0.3/libexec/../logs/hadoop-root-jobtracker-sg201.out  
  3. 172.16.48.203: starting tasktracker, logging to /opt/hadoop-1.0.3/libexec/../logs/hadoop-root-tasktracker-sg203.out  
  4. 172.16.48.202: starting tasktracker, logging to /opt/hadoop-1.0.3/libexec/../logs/hadoop-root-tasktracker-sg202.out  

五、验证安装是否成功

使用jps命令查看启动的守护进程有哪些:

[plain]  view plain copy
  1. [root@sg201 conf]# jps  
  2. 12560 NameNode  
  3. 17688 Jps  
  4. 12861 JobTracker  
  5. 12755 SecondaryNameNode  
  6. 5855 MyEclipse  
  7.   
  8. [root@sg203 conf]# jps  
  9. 11732 DataNode  
  10. 14336 Jps  
  11. 11856 TaskTracker  

另外可通过浏览器访问:

NameNode            http://172.16.48.201:50070/

JobTracker            http://172.16.48.201:50030/


在namenode上查看集群状态

[plain]  view plain copy
  1. [root@sg201 conf]# hadoop dfsadmin -report  
  2. Configured Capacity: 1380625408000 (1.26 TB)  
  3. Present Capacity: 1174286331904 (1.07 TB)  
  4. DFS Remaining: 1174286249984 (1.07 TB)  
  5. DFS Used: 81920 (80 KB)  
  6. DFS Used%: 0%  
  7. Under replicated blocks: 0  
  8. Blocks with corrupt replicas: 0  
  9. Missing blocks: 0  
  10.   
  11. -------------------------------------------------  
  12. Datanodes available: 2 (2 total, 0 dead)  
  13.   
  14. Name: 172.16.48.203:50010  
  15. Decommission Status : Normal  
  16. Configured Capacity: 545281376256 (507.83 GB)  
  17. DFS Used: 40960 (40 KB)  
  18. Non DFS Used: 157135388672 (146.34 GB)  
  19. DFS Remaining: 388145946624(361.49 GB)  
  20. DFS Used%: 0%  
  21. DFS Remaining%: 71.18%  
  22. Last contact: Tue Jul 17 10:25:12 CST 2012  
  23.   
  24.   
  25. Name: 172.16.48.202:50010  
  26. Decommission Status : Normal  
  27. Configured Capacity: 835344031744 (777.97 GB)  
  28. DFS Used: 40960 (40 KB)  
  29. Non DFS Used: 49203687424 (45.82 GB)  
  30. DFS Remaining: 786140303360(732.15 GB)  
  31. DFS Used%: 0%  
  32. DFS Remaining%: 94.11%  
  33. Last contact: Tue Jul 17 10:25:14 CST 2012  

五、关闭hadoop

关闭hdfs守护进程

[plain]  view plain copy
  1. [root@sg201 hadoop-1.0.3]# bin/stop-dfs.sh  
  2. no namenode to stop  
  3. 172.16.48.203: no datanode to stop  
  4. 172.16.48.202: no datanode to stop  
  5. root@172.16.48.201's password:   
  6. 172.16.48.201: stopping secondarynamenode  
关闭mapreduce守护进程

[plain]  view plain copy
  1. [root@sg201 hadoop-1.0.3]# bin/stop-mapred.sh  
  2. stopping jobtracker  
  3. 172.16.48.203: no tasktracker to stop  
  4. 172.16.48.202: no tasktracker to stop  

更多更详细信息:http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html

参考:

http://blog.youkuaiyun.com/chenxingzhen001/article/details/7753992

http://blog.youkuaiyun.com/chenxingzhen001/article/details/7740357

http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html




<think>好的,用户想了解如何搭建Hadoop集群的详细步骤和配置。首先,我需要回忆之前学过的Hadoop集群搭建知识,确保步骤正确。记得Hadoop集群通常分为完全分布式模式,需要多台机器,比如hadoop102、hadoop103、hadoop104这样的命名。用户提供的引用里提到了设置这些节点,并测试SSH连接,还有上传安装包。可能这些是关键的步骤。 接下来,我应该按照逻辑分步骤讲解。首先准备环境,包括服务器、Java安装、主机名和hosts文件的配置,以及SSH免密登录的设置。这些都是搭建集群的基础。然后,安装Hadoop,解压安装包,配置环境变量。接下来是核心的配置文件修改,比如hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml以及workers文件。每个配置文件的作用需要简要说明,比如core-site.xml设置NameNode地址,hdfs-site.xml配置副本数等。 配置完成后,需要同步到其他节点,这里可以用scp命令或者rsync。然后初始化HDFS,启动集群,最后验证是否成功,比如jps查看进程,或者访问Web界面。可能用户在实际操作中会遇到问题,比如SSH连接失败,端口占用,或者配置文件错误,这些常见问题应该提及解决方案。 另外,用户的问题可能涉及到具体的配置参数,比如副本数设置成多少合适,或者资源管理器的配置,这些需要根据集群规模给出建议。比如小型集群副本数可以设为2,但生产环境通常3。还有安全模式的问题,可能需要关闭防火墙或者配置SELinux。 需要确保所有的命令和路径都是正确的,比如JAVA_HOME的路径是否正确,Hadoop的安装目录是否一致。同时,用户可能需要知道如何验证集群是否正常工作,比如运行一个测试的MapReduce作业,或者检查日志文件。 最后,生成相关问题的时候,应该围绕用户可能进一步关心的问题,比如配置参数优化、添加节点、安全配置、性能调优等。这些能帮助用户更深入理解集群管理和维护。</think>### Hadoop集群搭建步骤详解 #### 一、环境准备(3节点示例) 1. **服务器规划** - hadoop102(NameNode + DataNode) - hadoop103(ResourceManager + DataNode) - hadoop104(SecondaryNameNode + DataNode) 2. **基础配置** - 所有节点安装JDK 8+并配置环境变量: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` - 配置主机名和/etc/hosts文件: ```bash 192.168.1.102 hadoop102 192.168.1.103 hadoop103 192.168.1.104 hadoop104 ``` - 配置SSH免密登录: ```bash ssh-keygen -t rsa ssh-copy-id hadoop102 ssh-copy-id hadoop103 ssh-copy-id hadoop104 ``` #### 二、Hadoop安装与配置 1. **解压安装包** ```bash tar -zxvf hadoop-3.3.6.tar.gz -C /opt/module/ ``` 2. **配置环境变量** ```bash export HADOOP_HOME=/opt/module/hadoop-3.3.6 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin ``` 3. **修改核心配置文件** - `etc/hadoop/hadoop-env.sh`: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 ``` - `etc/hadoop/core-site.xml`: ```xml <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop102:8020</value> </property> </configuration> ``` - `etc/hadoop/hdfs-site.xml`: ```xml <configuration> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration> ``` #### 三、集群同步与启动 1. **分发配置到所有节点** ```bash scp -r /opt/module/hadoop-3.3.6 hadoop103:/opt/module/ scp -r /opt/module/hadoop-3.3.6 hadoop104:/opt/module/ ``` 2. **初始化HDFS** ```bash hdfs namenode -format ``` 3. **启动集群** ```bash start-dfs.sh # 启动HDFS start-yarn.sh # 启动YARN ``` #### 四、验证集群状态 1. **进程验证** ```bash jps # hadoop102应显示NameNode/DataNode # hadoop103应显示ResourceManager/NodeManager ``` 2. **Web界面验证** - HDFS状态:`http://hadoop102:9870` - YARN状态:`http://hadoop103:8088` #### 五、常见问题解决 1. **SSH连接失败** - 检查防火墙状态:`systemctl stop firewalld` - 验证公钥是否完整复制到`~/.ssh/authorized_keys` 2. **端口冲突** - 使用`netstat -tunlp | grep 8020`检查默认端口占用情况 3. **HDFS无法格式化** - 删除所有节点的`/tmp/hadoop-*`目录后重试[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值