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, 安装成功 文档结束。
相关推荐
9 安装hadoop1.1.2 10 启动时没有NameNode的可能原因: 11 运行简单的 MapReduce 计算 每一步骤配有解释,代码,还有运行结果截图。 强烈鄙视一大堆代码和解释,不配执行结果,自己运行时候出一大堆错!!!
hadoop稳定版本-1.1.2 Hadoop 是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统...
hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用
hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用 hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用 hadoop-1.1.2,用于分布式并发编程,这个框架目前很多公司都在用
基于hadoop-1.1.2的伪分布式集群、分布式集群搭建。使用javaapi操作hdfs、hdfs内部操作命令、从win7访问ubuntu中的hadoop集群。 eclipse hadoop java 分布式 云计算 Hadoop-1.1.2上路 v1.0
HBase 1.2 分布式安装分享
用于linux下hadoop的伪分布式安装和集群安装(版本hadoop-1.1.2)
基于hadoop-1.1.2的伪分布式集群、分布式集群搭建。使用javaapi操作hdfs、hdfs内部操作命令、从win7访问ubuntu中的hadoop集群。 eclipse hadoop java 分布式 云计算 Hadoop上路 v1.1
在Linux上配置的hadoop1.2.1完全分布式环境
Eclipse4.2中配置Map/Reduce视图操作hadoop-1.1.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生态系统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 ...
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 运行...
111计算器系统的组成—硬件部分1.1计算机系统介绍aip,...运基于鹏 Hadoop的视频大数据分布式转码实验,zip 坛若内存实验实验,zip 坛在鲲鹏服努器上部超级账本 Fabric实验,zip 3坛鲲鹏平台大数据实验指导手册实验,zip