`

hadoop1.1.2分布式安装(完备版)

 
阅读更多



  

 

0 简介:

一共5个节点,hadoop0(namenode,jobtracker), hadoop1(secondnamenode),

剩下hadoop2,hadoop3,hadoop4为datanode

 

节点环境:

a) VMware8

b) CentOS-5.8-i386

c) win7-64位-旗舰 6G内存

d) hadoop-1.1.2.tar

e) jdk-6u24-linux-i586.bin

f)SSHSecureShellClient-3.2.9

g) 如下操作都是用root用户

h) 每台虚拟机网络连接均采用桥接方式,内存为512M

 

1 安装hadoop0节点虚拟机,后设置静态IP

 

设置静态IP操作如下:

 

1 进入目录/etc/sysconfig/network-scripts/
2 ls查看 找文件名为ifcfg-ethX的文件, X表示一个数字,通常是0或者2 eg: ifcfg-eth0
3 vi ifcfg-eth0  修改里面信息如下:
[root@localhost network-scripts]# more ifcfg-eth0 
DEVICE=eth0 
BOOTPROTO=static
HWADDR=00:0C:29:B6:55:64
NETMASK=255.255.255.0
IPADDR=192.168.1.110
GATEWAY=192.168.1.1

				
说明如下:
a)DEVICE=eth0 中名称一般和 ifcfg-eth0的-后面名称对应,可以通过# ifconfig -a查看第一个单词名称即为设备名称
BOOTPROTO=static 表示是静态地址


b) HWADDR=00:0C:29:B6:55:64 表示当前机器MAC地址,如通过克隆创建别的节点,需要修改为当前节点MAC地址,
否则修改IP后执行service network restart 重启网卡设置时,
报错为Bringing up interface eth0:  Device static does not seem to be present, delaying initialization.

查询当前节点MAC地址操作如下:
# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:B6:55:64     
找到HWaddr对应的数据 然后粘贴到	ifcfg-eth0即可		

c) 如下即是真正设置项
NETMASK=255.255.255.0
IPADDR=192.168.1.110
GATEWAY=192.168.1.1

4 修改好后,保存vim
5 执行命令service network restart重启网卡设置
6 执行命令ifconfig查看配置结果是否正确

 

2 hadoop0设置hostname,ip和机器名映射,关闭防火墙

 

2.1 设置hostname
(1)使用vi编辑/etc/sysconfig/network
   把HOSTNAME的值改为hadoop0,保存退出。
   HOSTNAME=hadoop0
(2)执行hostname hadoop0,在当前环境中立即生效   
(3)执行命令hostname查看设置结果
[root@localhost ~]# hostname hadoop0
[root@localhost ~]# hostname
hadoop0

2.2 绑定ip与hostname
   编辑文件/etc/hosts,增加ip与hostname的映射信息
   192.168.1.110   hadoop0

2.3 关闭防火墙
(1) 执行命令service iptables stop关闭防火墙
(2)执行命令service iptables status查看防火墙是否正在运行 
[root@localhost ~]# service iptables status
Firewall is stopped.

2.4 关闭防火墙的自动运行
(1) 执行命令chkconfig iptables off 
验证如下:
[root@localhost ~]# chkconfig --list | grep iptables
iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off

后重启机器,reboot后在查看命令行,
[root@hadoop0 ~]#   发现机器名已经修改完毕

 

 3 安装JDK:

 

通过ssh工具上传jdk-6u24-linux-i586.bin到 usr/local/下

执行命令 

    (1)cd /usr/local (将原来目录内文件删除)
    (2)chmod u+x jdk-6u24-linux-i586.bin (给用户针对jdk-6u24-xxx文件增加执行权限)
    (3)./jdk-6u24-linux-i586.bin (解压文件)
    (4)mv jdk-1.6.0_24  jdk1.6 (文件重命名) 
    (5)vi /etc/profile 空白处增加内容如下:
        export JAVA_HOME=/usr/local/jdk1.6
        export PATH=.:$JAVA_HOME/bin:$PATH
    (6)source /etc/profile (刷新环境变量 立即生效)
    #  java -version 
	java version "1.6.0_24"
	Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
	Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)

 

  4 通过vmware工具 完成克隆hadoop0机器,克隆出hadoop1,hadoop2,hadoop, hadoop4

  

    在vmware工具上,在hadoop0节点上右键/manage/clone/下一步/出现下图,

  

 

选择好克隆后的节点名称和磁盘存放位置即可,依次克隆出节点hadoop1,hadoop2,hadoop, hadoop4后,按照上面1,2,3的步骤,配置好新节点的 IP,机器别名,IP和别名映射,防火墙

(因为克隆,所以JDK已经安装好)

 

5   配置hadoop0到其余4个节点ssh免密码登陆

 

a) hadoop集群在启动时,主节点需要通过ssh登陆到从节点启动进程从而启动从节点,因此仅仅需要

将主节点的 公钥文件拷贝到其余节点即可,因为是内网集群,设置免密码登陆,关闭防火墙更快速高效的实现集群通讯

 

b)

a) hadoop0中增加其余节点机器别名配置,增加后如下
[root@hadoop0 ~]# cat /etc/hosts 
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6
192.168.1.110   hadoop0
192.168.1.111   hadoop1
192.168.1.112   hadoop2
192.168.1.113   hadoop3
192.168.1.114   hadoop4

b) 在节点hadoop0,1,2,3,4中,通过命令ssh-keygen -t rsa 不断回车,生成rsa密钥对 
后在hadoop0中,通过如下命令将hadoop0的公钥文件拷贝到其余4台节点中
[root@hadoop0 .ssh]# ssh-copy-id -i hadoop1,2,3,4
执行完后去hadoop1,2,3,4查看 /root/.ssh/ 会生成 authorized_keys ,
more  authorized_keys 会发现 root@hadoop0进来了,代码如下:
[root@hadoop1 .ssh]# ls
authorized_keys  id_rsa  id_rsa.pub
[root@hadoop1 .ssh]# more authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7IdyDdRLDtW//xhFJK7BrpGlyRKhrtLxw+4q6YZOk6yT
gR18sSSjiOfMFjV6KGJy0PHpVkOc3JJ7uYRVGaojZW6+sVD65rlOzwHKbxXOcGKggLU13SwGb3/jpbxf
ZccHr6KeRPMmV80B89A1YNed4eHhGJzJidC6lxaVC4U9Kt6FB9cqXXNbjqe4xbpMyJVi+Q/FqVnl9LLj
QmLg1vot2m4aIMDd2bA5qnu1LOHF7PnnmxwjSUbB/McWc5QVxbKR2mrqh2wMeW1KEPMUuRSPGXWzwMBm
ivjgF1D3qMxmsW3M5YtqQeXSV7/KkBS8uR72ka8+OtPFcIwDRQGJ49Tx/w== root@hadoop0


c) hadoop0中,尝试 ssh hadoop1,2,3,4 确认ssh无秘钥通过

 

c) 补充遗漏的两项:

1) 确保ssh hadoop0自身通过,操作方式如下: 
cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

2) 将hadoop0的host拷贝到其余节点(内容如下)
[root@hadoop0 logs]# more /etc/hosts
::1             localhost6.localdomain6 localhost6
192.168.1.110   hadoop0
192.168.1.111   hadoop1
192.168.1.112   hadoop2
192.168.1.113   hadoop3
192.168.1.114   hadoop4
拷贝命令如下:
[root@hadoop0 logs]# scp /etc/hosts hadoop1:/etc/hosts
hosts                                                                      100%  307     0.3KB/s   00:00    
[root@hadoop0 logs]# scp /etc/hosts hadoop2:/etc/hosts
hosts                                                                      100%  307     0.3KB/s   00:00    
[root@hadoop0 logs]# scp /etc/hosts hadoop3:/etc/hosts
hosts                                                                      100%  307     0.3KB/s   00:00    
[root@hadoop0 logs]# scp /etc/hosts hadoop4:/etc/hosts
hosts    

 

 

 6 在hadoop0中安装HADOOP 并修改配置文件

 

a) 拷贝 hadoop文件到 /usr/local下
b) 解压缩安装,
    (1)tar -zxvf hadoop-1.1.2.tar.gz
    (2)mv hadoop-1.1.2 hadoop
    (3)vi /etc/profile 增加内容如下:
        export JAVA_HOME=/usr/local/jdk
        export HADOOP_HOME=/usr/local/hadoop
        export PATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH
    (4)source /etc/profile
    (5)修改conf目录下的配置文件hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml  masters  slaves  修改后如下:

	hadoop-env.sh:
    export JAVA_HOME=/usr/local/jdk1.6
	
	
	core-site.xml:
	<configuration>
	<property>
        <name>fs.default.name</name>
        <value>hdfs://hadoop0:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>  
	</configuration>
	
	hdfs-site.xml:
	<configuration>
	<property>
	  <name>dfs.http.address</name>
	  <value>0.0.0.0:50070</value>
	</property>
	<property>
			<name>dfs.replication</name>
			<value>3</value>
		</property>
		<property>
			<name>dfs.permissions</name>
			<value>false</value>
		</property>
	</configuration>

	mapred-site.xml
	<configuration>
	<property>
			<name>mapred.job.tracker</name>
			<value>hadoop0:9001</value>
		</property>
		<property>
	  <name>mapred.job.tracker.http.address</name>
	  <value>0.0.0.0:50030</value> 
	</property>  
	</configuration>
	
	conf/masters: 
	hadoop1

	conf/slaves:
	hadoop2
	hadoop3
	hadoop4

 

 

7 将hadoop0中的hadoop SCP到1,2,3,4

 

[root@hadoop0 local]# scp -r hadoop hadoop1:/usr/local/
[root@hadoop0 local]# scp -r hadoop hadoop2:/usr/local/
[root@hadoop0 local]# scp -r hadoop hadoop3:/usr/local/
[root@hadoop0 local]# scp -r hadoop hadoop4:/usr/local/

 

8 hadoop0中启动HADOOP集群

 

启动命令如下:
# hadoop namenode -format
# start-all.sh

查看
[root@hadoop0 hadoop]# jps
15913 NameNode
16090 JobTracker
16196 Jps


[root@hadoop1 conf]# jps
12765 Jps
12677 SecondaryNameNode

去别的节点可以到datanode的jps

 

 

9  如果启动失败,查看日志说明如下:

 

a) 查看日志, 
[root@hadoop0 logs]# ls
hadoop-root-jobtracker-hadoop0.log  hadoop-root-namenode-hadoop0.log  history
hadoop-root-jobtracker-hadoop0.out  hadoop-root-namenode-hadoop0.out

日志格式如下:
hadooop-当前用户-当前进程-主机名.log
hadooop-当前用户-当前进程-主机名.out ---> 临时文件,不存放数据

b) more hadoop-root-namenode-hadoop0.log 和 more hadoop-root-jobtracker-hadoop0.log 可以看到报错原因,
eg:  如果hadoop0没有ssh通自己,报错如下:
java.net.ConnectException: Call to hadoop0/192.168.1.110:9000 failed on connection exception: java.net.ConnectException: Connection refused

如果端口已经被占用了,通过如下方式来处理
查看进程详细 包括开启的人:  netstat -ant | grep 9000   
杀死已经被使用的端口: kill -9 9000

 

 10 如上集群如果NameNode和JobTracker不在一个节点上的做法:

1.搭建集群环境,NameNode和JobTracker不在一个节点上。
  假设NameNode在hadoop0上,JobTracker在hadoop1上。
1.1 NameNode所在节点是通过配置文件core-site.xml的fs.default.name的值体现的。
    值还是hdfs://hadoop0:9000
	 
	JobTracker所在节点是通过配置文件mapred-site.mlx的mapred.job.tracker的值体现的。
	值修改为http://hadoop1:9001
	
	
1.2 在hadoop0上执行命令hadoop-daemon.sh start namenode
    在hadoop1上执行命令hadoop-daemon.sh start jobtracker
	在hadoop1上执行命令hadoop-daemon.sh start secondarynamenode
	在hadoop2上执行命令hadoop-daemons.sh start datanode
	在hadoop2上执行命令hadoop-daemons.sh start tasktracker  // 这样就会启动多个datanode 去slaves文件中找
	(前提是 hadoop2,3,4能ssh互通, 此时到是建议每个节点都生成各自authorized-keys后,通过ssh-copy-id -i确定所有节点都互通 
	  具体操作 见 文章 hadoop1.1.2分布式安装(简单借鉴 建议看本系列之完备版) )
	  
1.3	关闭集群时,按照上述顺序倒过来,并将start 修改成stop 即可

 

 

11 部署成功后,通过http 查看datanode节点确认是否安装成功:

 

a) 安装成功访问datanode节点界面如下:



 

b)  通过 hadoop shell 上传一文件后([root@hadoop0 hadoop]# hadoop fs -ls hdfs://hadoop0:9000/ )

   

看逻辑结构显示(显示只有一份)和物理存储显示(显示为三份)

 



 

 

通过访问地址http://hadoop0:50070/dfshealth.jsp 点击Browse the filesystem 后,可以看到上传文件存储物理位置:



 



 

 

OK, 安装成功 文档结束。

  • 大小: 19.9 KB
  • 大小: 58.4 KB
  • 大小: 10.2 KB
  • 大小: 12.7 KB
  • 大小: 29.9 KB
分享到:
评论

相关推荐

    Host-noly 模式下hadoop1.1.2伪分布式安装

    9 安装hadoop1.1.2 10 启动时没有NameNode的可能原因: 11 运行简单的 MapReduce 计算 每一步骤配有解释,代码,还有运行结果截图。 强烈鄙视一大堆代码和解释,不配执行结果,自己运行时候出一大堆错!!!

    hadoop-1.1.2.tar

    hadoop稳定版本-1.1.2 Hadoop 是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统...

    hadoop-1.1.2

    hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用

    hadoop-1.1.2.tar.gz

    hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用 hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用 hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用

    Hadoop-1.1.2上路 v1.0

    基于hadoop-1.1.2的伪分布式集群、分布式集群搭建。使用javaapi操作hdfs、hdfs内部操作命令、从win7访问ubuntu中的hadoop集群。 eclipse hadoop java 分布式 云计算 Hadoop-1.1.2上路 v1.0

    HBase 1.2 分布式安装分享

    HBase 1.2 分布式安装分享

    hadoop安装软件

    用于linux下hadoop的伪分布式安装和集群安装(版本hadoop-1.1.2)

    Hadoop上路v1.1.pdf

    基于hadoop-1.1.2的伪分布式集群、分布式集群搭建。使用javaapi操作hdfs、hdfs内部操作命令、从win7访问ubuntu中的hadoop集群。 eclipse hadoop java 分布式 云计算 Hadoop上路 v1.1

    hadoop1.2.1环境

    在Linux上配置的hadoop1.2.1完全分布式环境

    hadoop-eclipse-plugin-1.1.2.jar

    Eclipse4.2中配置Map/Reduce视图操作hadoop-1.1.2的插件

    Hadoop实战(第2版)

    背景和基本原理1 跳跃中的Hadoop1.1 什么是Hadoop 1.1.1 Hadoop 的核心组件1.1.2 Hadoop 生态圈1.1.3 物理架构1.1.4 谁在使用Hadoop1.1.5 Hadoop 的局限性1.2 运行Hadoop 1.2.1 下载并安装...

    hadoop-ecosystem-docker:Docker集群上的Hadoop开发生态系统

    Hadoop生态系统Docker介绍该项目旨在开发一种方便的工具,该工具可以在Docker容器上快速部署分布式计算和存储平台(Hadoop Ecosystem)。 它可以节省开发人员的时间,并使他们专注于代码工作。 目前,Hadoop生态系统...

    大型分布式网站架构与实践

     1.1.2 对象的序列化 4  1.1.3 基于TCP协议实现RPC 6  1.2 基于HTTP协议的RPC 9  1.2.1 HTTP协议栈 9  1.2.2 HTTP请求与响应 15  1.2.3 通过HttpClient发送HTTP请求 16  1.2.4 使用HTTP协议的优势 17 ...

    Hadoop硬实战 [(美)霍姆斯著][电子工业出版社][2015.01]_PDF电子书下载 带书签目录 高清完整版.rar )

    1.1.2 Hadoop 生态圈 1.1.3 物理架构 1.1.4 谁在使用Hadoop 1.1.5 Hadoop 的局限性 1.2 运行Hadoop 1.2.1 下载并安装Hadoop 1.2.2 Hadoop 的配置 1.2.3 CLI 基本命令 1.2.4 运行...

    华为HCIP-鲲鹏V1.0培训视频.rar

    111计算器系统的组成—硬件部分1.1计算机系统介绍aip,...运基于鹏 Hadoop的视频大数据分布式转码实验,zip 坛若内存实验实验,zip 坛在鲲鹏服努器上部超级账本 Fabric实验,zip 3坛鲲鹏平台大数据实验指导手册实验,zip

Global site tag (gtag.js) - Google Analytics