hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群
第一步 ,环境准备.
宿主机为CentOS6.3 64位,3个虚拟机为CentOS6.3 64位.
(注意:有个技巧,可以先创建一台虚拟机,在其上安装好JDK、hadoop后再克隆两台,这样省时又省力。)
操作系统.
CentOS 6.3 64
hadoop版本
hadoop 1.1.0 rpm
开始安装
以下所有的操作,都是用 root 身份执行
以下安装,需要在每台机器上面安装.
下载好 jdk-7u9-linux-x64.rpm 和
hadoop-1.1.0-1.x86_64.rpm
vim /etc/sysconfig/network
(分别修改为)
HOSTNAME=n
amenode1
HOSTNAME=datanode1
HOSTNAME=datanode2
(IP设置可参考:http://blog.csdn.net/ljg888/article/details/9241069)
vim /etc/hosts
(添加以下内容)
192.168.10.137 namenode1192.168.10.138 datanode1192.168.10.139 datanode2
ping namenode1
ping datanode1ping datanode2
rpm -ivh jdk-7u9-linux-x64.rpm
java -version 马上有反应,方便!
第五步.安装hadoop,rpm版的会自动配置部分文件
rpm -ivh hadoop-1.1.0-1.x86_64.rpm
(CentOS 6.3默认已经安装了openssh和rsync)
2.2 配置Master无密码登录所有Salve
1)SSH无密码原理
Master(NameNode | JobTracker)作为客户端,要实现无密码公钥认证,连接到服务器Salve(DataNode | Tasktracker)上时,需要在 Master上生成一个密钥对,包括一个公钥和一个私钥,而后将公钥追加到所有的Slave的authorized_keys文件上。当Master通过SSH连接Salve时,Salve就会生成一个随机数并从authorized_keys找到Master的公钥,然后用这个公钥对随机数进行加密,并发送给Master。Master收到加密数之后再用私钥解密,并将解密数回传给Slave,Slave确认解密数无误之后就允许Master进行连接了。这就是一个公钥认证过程,其间不需要用户手工输入密码。重要过程是将客户端Master复制到Slave上。
以下操作,在 namenode1上面执行
目标主机
,以下命令直接敲默认回车,不用输入任何信息.
ssh-keygen -t rsa
cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)
2. 密钥生成完成以后,追加namenode的公钥到其他2台 datanode 上面,使得
namenode能访问其它
datanode
cat/root/.ssh/id_rsa.pub | ssh root@datanode1 "cat >>/root/.ssh/authorized_keys"cat/root/.ssh/id_rsa.pub | ssh root@datanode2 "cat >>/root/.ssh/authorized_keys"
vim /etc/ssh/sshd_config
重启SSH服务
,才能使刚才设置有效。
service sshd restart
3. 验证ssh 不要密码登陆是否成功
ssh namenode1
ssh
d
atanode1
ssh
d
atanode2
如果SSH访问出现问题的话,可以试试下面的
1)修改文件"authorized_keys"
chmod 644 /root/.ssh/authorized_keys
2.3 配置所有Slave无密码登录Master
和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加到Master的".ssh"文件夹下的"authorized_keys"中,记得是追加(>>)
用root登录datanode1
1. 创建 ssh 密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.
ssh-keygen -t rsa
cat/root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)
2. 密钥生成完成以后,追加本机的公钥到其他2台机器上面
cat/root/.ssh/id_rsa.pub | ssh root@namenode1 "cat >>/root/.ssh/authorized_keys"
cat/root/.ssh/id_rsa.pub | ssh root@datanode2 "cat >>/root/.ssh/authorized_keys"
vim /etc/ssh/sshd_config
重启SSH服务
,才能使刚才设置有效。
service sshd restart
3. 验证ssh 不要密码登陆是否成功
ssh
name
node1
ssh
d
atanode2
1)修改文件"authorized_keys"
chmod 644 /root/.ssh/authorized_keys
2.4 配置所有Slave无密码登录Master
和Master无密码登录所有Slave原理一样,就是把Slave的公钥追加到Master的".ssh"文件夹下的"authorized_keys"中,记得是追加(>>)
用root登录datanode2
1. 创建 ssh 密钥,就是不用密码登陆目标主机,以下命令直接敲默认回车,不用输入任何信息.
ssh-keygen -t rsa
cat/root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys ( 使本机程序可以通过ssh登录本机)
2. 密钥生成完成以后,追加本机的公钥到其他2台机器的
authorized_keys
上
cat/root/.ssh/id_rsa.pub | ssh root@namenode1 "cat >>/root/.ssh/authorized_keys"cat/root/.ssh/id_rsa.pub | ssh root@datanode1 "cat >>/root/.ssh/authorized_keys"
vim /etc/ssh/sshd_config
重启SSH服务
,才能使刚才设置有效。
service sshd restart
3. 验证ssh 不要密码登陆是否成功
ssh namenode1
ssh datanode1
1)修改文件"authorized_keys"
chmod 644 /root/.ssh/authorized_keys
---------------------------------------------------------------------------------------------------------------------------------------------
2.5 配置Hadoop
每个节点都要进行以下的配置
4. 创建必要的目录.首先创建 namenode 保存namenode 元信息的目录. 设置为
/usr/hadoop/tmp
目录下
mkdir -p /usr/hadoop/tmp
5. 配置hadoop 运行环境.进入 /etc/hadoop 目录下面,修改hadoop的默认配置.
首先修改 master 文件. master 文件很容易理解错误,master 文件是指 hadoop 机器里面的secondarynamenode.不是指本机(测试用所以配置上,实际上
namenode和
secondarynamenode放在同一个机子上不能增加可靠性,没什么意义!
)
vim /etc/hadoop/master
(改为如下)
192.168.10.137
接着修改slaves 文件,salve 文件表示此集群的 datanode 节点.所以在本集群中,datanode 如下
vim /etc/hadoop/slave
(改为如下)
192.168.10.138
192.168.10.139
这里的IP实际上可以用主机名来代替,但当网格的DNS出问题的,就不能访问了,直接用IP就不用依赖DNS,提高集群可靠性!
6. 设置 core-site.xml 文件内容如下
<configuration><!-- global properties --><property><name>hadoop.tmp.dir</name><value>/usr/hadoop/tmp</value></property><!-- file system properties --><property><name>fs.default.name</name><value>hdfs://namenode1:9000</value></property>
</configuration>
3)配置hdfs-site.xml文件
修改Hadoop中HDFS的配置,配置的备份方式默认为3,这里只有2个datanode,所以数据最大复制2份!
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
7. 设置 mapred-site.xml 件内容如下
修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>namenode1:9001</value>
</property>
</configuration>
8. 修改 java 的运行环境变量,修改 hadoop-env.sh 如下行的内容如下
vim /etc/hadoop/hadoop-env.sh
修改如下行内容为
export JAVA_HOME=/usr/java/jdk1.7.0_09
11. 设置每个节点上面的 服务为自动启动
chkconfig --add hadoop-namenode
chkconfig --add hadoop-jobtracker
chkconfig hadoop-namenode on
chkconfig hadoop-jobtracker on
4.3 启动及验证
1)格式化HDFS文件系统
在"Master.Hadoop"上使用普通用户hadoop进行操作。(备注:只需一次,下次启动不再需要格式化)
hadoop namenode -format
2)启动hadoop
在启动前关闭集群中所有机器的防火墙,不然会出现datanode开后又自动关闭。
service iptables stop
不知道为什么root用户访问start-all.sh会提示无权限,所以直接修改了其所在文件夹的访问权限!(谁知道原来回复一下我,谢谢)
chmod -R 777 /usr/sbin/
启动 namenode
start-all.sh
可以通过以下启动日志看出,首先启动namenode 接着启动datanode1,datanode2,…,然后启动secondarynamenode。
再启动jobtracker,然后启动tasktracker1,tasktracker2,…。
启动 hadoop成功后,在 Master 中的 tmp 文件夹中生成了 dfs 文件夹,在Slave 中的 tmp 文件夹中均生成了 dfs 文件夹和 mapred 文件夹。
stop-all.sh
(2)验证方式二:用"hadoop dfsadmin -report"
用这个命令可以查看Hadoop集群的状态。
4.4 网页查看集群
1)访问jobtracker"http:192.168.10.137:50030"
2)访问DFS : "http:192.168.10.137:50070"
到此,Hadoop配置完毕,最大的感悟是rpm方式安装软件真是太方便了!
http://www.cnblogs.com/xia520pi/archive/2012/05/16/2503949.html 和
http://www.unxmail.com/read.php?221
参考:http://blog.csdn.net/irelandken/article/details/8122474
hadoop-1.1.0 rpm + centos 6.3 64虚拟机 + JDK7 搭建分布式集群的更多相关文章
- 阿里云服务器 CentOS 7.5 64位 docker安装redis集群
网上有很多教程可以参考,但是遇到坑了...... 最后参考这个教程成功了.https://www.cnblogs.com/hbbbs/articles/10028771.html 安装docker 参 ...
- spark2.0.2基于hadoop2.4搭建分布式集群
一.Scala安装 因为spark的版本原因,所以Scala我用的2.11.7. 下载目录http://www.scala-lang.org/download/ 拷贝到要安装的地址,我的地址是/usr ...
- 超快速使用docker在本地搭建hadoop分布式集群
超快速使用docker在本地搭建hadoop分布式集群 超快速使用docker在本地搭建hadoop分布式集群 学习hadoop集群环境搭建是hadoop入门的必经之路.搭建分布式集群通常有两个办法: ...
- 使用Docker在本地搭建Hadoop分布式集群
学习Hadoop集群环境搭建是Hadoop入门必经之路.搭建分布式集群通常有两个办法: 要么找多台机器来部署(常常找不到机器) 或者在本地开多个虚拟机(开销很大,对宿主机器性能要求高,光是安装多个虚拟 ...
- Hadoop 3.0完全分布式集群搭建方法(CentOS 7+Hadoop 3.2.0)
本文详细介绍搭建4个节点的完全分布式Hadoop集群的方法,Linux系统版本是CentOS 7,Hadoop版本是3.2.0,JDK版本是1.8. 一.准备环境 1. 在VMware worksta ...
- hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)
目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...
- Hadoop 2.2.0单节点的伪分布集成环境搭建
Hadoop版本发展历史 第一代Hadoop被称为Hadoop 1.0 1)0.20.x 2)0.21.x 3)0.22.x 第二代Hadoop被称为Hadoop 2.0(HDFS Federatio ...
- 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现
『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现 1.基本设定和软件版本 主机名 ip 对应角色 mas ...
- 超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群
超详细!CentOS 7 + Hadoop3.0.0 搭建伪分布式集群 ps:本文的步骤已自实现过一遍,在正文部分避开了旧版教程在新版使用导致出错的内容,因此版本一致的情况下照搬执行基本不会有大错误. ...
随机推荐
- ExcelReport源码解析
ExcelReport第二篇:ExcelReport源码解析 导航 目 录:基于NPOI的报表引擎——ExcelReport 上一篇:使用ExcelReport导出Excel 下一篇:扩展元素 ...
- Objective-C系列
我的Objective-C系列文章和坚持写博客的感想 做iOS开发有一段时间了,也有自己上线的App产品,也在坚持着发表技术博客总结自己所学的东西.在写博客的时候虽然博文中不免有错别字,但每句话都 ...
- SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法
原文:SSRS (SQL Server Report Service) 在IE9, IE10下显示不全的解决办法 在做项目的过程中遇到SSRS与IE9, IE10不兼容的情况,具体表现为报表页面在IE ...
- 使用Windows2003创建AD服务器 - 进阶者系列 - 学习者系列文章
Windows 2003的AD功能不是很强,但是还是提供了不错的功能.下面简要介绍下Windows 2003的AD配置说明. 1. 从添加删除Windows组件安装AD功能项 2. 完成安装.这里 ...
- springmvc和servlet在上传和下载文件(保持文件夹和存储数据库Blob两种方式)
参与该项目的文件上传和下载.一旦struts2下完成,今天springmvc再来一遍.发现springmvc特别好包,基本上不具备的几行代码即可完成,下面的代码贴: FileUpAndDown.jsp ...
- leetcode[89] Merge Sorted Array
合并两个有序数组,放在A中,A中的空间足够. Given two sorted integer arrays A and B, merge B into A as one sorted array. ...
- NHProfiler使用方法
NHProfiler使用方法 NHProfiler是一个针对Nhibernate运行分析的工具. 使用如下: (1)在创建ISessionFactory的项目中引用NHProfiler安装目录下的Hi ...
- .net图片快速去底(去除白色背景)
public System.Drawing.Bitmap KnockOutGzf(String path) { System.Drawing.Image image = System.Drawing. ...
- Lamda Action Func Thread 实例
lamda表达式 格式:( 形参列表 ) => { 函数体 } 作用:简化匿名方法的书写,可用在任何可使用匿名方法和强类型代理的地方: Action是无返回值的泛型委托. Action 表示无参 ...
- iOS基础 - 类扩展
一.类扩展(class extension,匿名分类) 1.格式 @interface 类名 () { // 成员变量... } // 方法声明... @end 2.作用 1> 写在.m文件中 ...