共计 3461 个字符,预计需要花费 9 分钟才能阅读完成。
Hadoop 分布式集群搭搭建 (环境:Linux 虚拟机上)
1. 准备工作:(规划主机名,ip 及用途, 先搭建三台, 第四台动态的添加
用途栏中, 也可以把 namenode,secondaryNamenode 及 jobTracker
分开部署, 看实际需求, 不唯一 )
主机名 机器 ip 用途
cloud01 192.168.1.101 namenode/secondaryNamenode/jobTracker
cloud02 192.168.1.102 datanode/taskTracker
cloud03 192.168.1.103 datanode/taskTracker
cloud04 192.168.1.104 datanode/taskTracker
2. 配置 linux 环境 (以下参照伪分布式的搭建)
2.1 修改主机名 (cloud01,cloud02,cloud03)
2.2 修改每台机器的 ip(按照自己分配的)
2.3 修改主机名与 ip 的映射关系
(只在 cloud01 上修改, 改完后拷贝到其它机器上就行, 指令:
scp /etc/profile cloud02:/etc/
scp /etc/profile cloud03:/etc/)
2.4 关闭防火墙
2.5 重启
3. 安装 jdk(参照伪分布式的搭建, 版本以 jdk1.6.0_45 为例)
只需要在一台机器上安装, 然后拷贝到其他机器上 (软件最好统一管理)
例如在 cloud01 上 jdk 安装在 /soft/Java 下
(使用指令:scp -r /soft/java/ cloud02:/soft/
scp -r /soft/java/ cloud03:/soft/
就可以把 jdk 拷贝过去了. 但是我们暂时不拷贝过去, 等下面 hadoop 安装好后, 一起拷过去 )
4. 安装 hadoop 集群 (hadoop 版本以 hadoop-1.1.2 为例)
4.1 上传 hadoop 压缩包到 /soft 目录下, 并解压到该目录下 (参照伪分布式的搭建)
4.2 配置 hadoop(这次需要配置 6 个文件)
4.21hadoop-env.sh
在第九行
export JAVA_HOME=/soft/java/jdk1.6.0_45 (注意把前面的 #号去掉)
4.22core-site.xml
<!– 指定 HDFS 的 namenode 的通信地址 –>
<property>
<name>fs.default.name</name>
<value>hdfs://cloud01:9000</value>
</property>
<!– 指定 hadoop 运行时产生文件的存放目录 –>
<property>
<name>hadoop.tmp.dir</name>
<value>/soft/hadoop-1.1.2/tmp</value>
</property>
4.23hdfs-site.xml
<!– 配置 HDFS 副本的数量 (根据需求, 实际情况自己定义, 默认为 3 份) –>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
4.24mapred-site.xml
<!– 指定 jobtracker 地址 –>
<property>
<name>mapred.job.tracker</name>
<value>cloud01:9001</value>
</property>
4.25masters(指定 secondarynamenode 地址)
cloud01
4.26slaves(指定子节点)
cloud02
cloud03
4.3 将配置好的 hadoop 拷贝到其他两台机器上
直接将 soft 那个文件夹都拷贝过去 (里面包含了 jdk 和 hadoop, 所以强烈建议
文件要统一管理 )
指令:
scp -r /soft/ cloud02:/
scp -r /soft/ cloud03:/
4.4 配置 ssh 免登
是主节点到子节点的免登陆
即 cloud01 到 cloud02 和 cloud03 的免登陆
在 cloud01 上生成即可
指令:ssh-keygen -t rsa
然后拷贝到其它两台机器上
指令:ssh-copy-id -i cloud02
ssh-copy-id -i cloud03
4.5 格式化 hadoop
只需要在 cloud01(主节点 namenode) 上格式化就行
指令:hadoop namenode -format
4.6 验证
启动集群 指令:start-all.sh
如果启动过程,报错 safemode 相关的 Exception
执行命令:hadoop dfsadmin -safemode leave(退出安全模式)
再次启动 hadoop
然后 jps 一下, 查看各台机器, 看是否和规划好的用途一样即可 )
OK, 如果和规划好的一样, 就大功告成了.
5. 动态添加一台节点
(在实际生产过程中, 很常见, 很实用)
cloud04 192.168.1.104 datanode/taskTracker
5.1 通过 clone 的方式添加一台 linux(以 clone cloud01 为例. 实际生产过程中不会这样,
因为实际生产过程中很少用虚拟机, 都是直接服务器. 注意,clone 时,
得先把要 clone 的机器给停掉 )
5.2 修改主机名,ip 地址, 配置映射文件, 关闭防火墙, 再 hadoop 配置
文件 slaves 中添加 cloud04, 设置免登陆, 重启
(clone 的话, 就无需再配置映射文件, 和关闭防火墙了. 因为
你 clone 的那台机器已经配置好了 )
5.3 重启机器后, 分别启动 datanode 和 taskTracker
指令:hadoop-daemon.sh start datanode
hadoop-daemon.sh start tasktracker
5.4 在 cloud01 上即 namenode 所在节点上运行命令刷新
hadoop dfsadmin -refreshNodes
5.5 验证
http://linux 的 ip:50070(hdfs 管理界面)
看是否多了一个节点, 如果多了一个, 则大功告成了!
6. 删除一台节点 (此处为收集)
6.1 在 cloud01 上修改 /soft/hadoop-1.1.2/conf/hdfs-site.xml 文件
添加配置信息:
<property>
<name>dfs.hosts.exclude</name>
<value>/soft/hadoop-1.1.2/conf/excludes</value>
</property>
6.2 确定要下架的机器
dfs.hosts.exclude 定义的文件内容为, 每个需要下线的机器,一行一个。
6.3 强制重新加载配置
指令:hadoop dfsadmin -refreshNodes
6.4 关闭节点
指令:hadoop dfsadmin -report
可以查看到现在集群上连接的节点
正在执行 Decommission,会显示:
Decommission Status : Decommission in progress
执行完毕后, 会显示:
Decommission Status : Decommissioned
6.5 再次编辑 excludes 文件
一旦完成了机器下架,它们就可以从 excludes 文件移除了
登录要下架的机器,会发现 DataNode 进程没有了,但是 TaskTracker 依然存在,
需要手工处理一下
相关阅读 :
Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm
Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm
Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm
Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm
单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm
搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm
更多 Hadoop 相关信息见 Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13