Hadoop完全分布式集群安装
转载请注明原地址,谢谢!
本文目的是教大家配置Hadoop的完全分布式的集群,除了完全分布式还有两种分别是单节点和伪分布式部署。伪分布式只需要一台虚拟机,配置的东西也相对较少,大多用作代码调试,大家稍微查阅资料,或者对我的配置进行一些删减,就可以实现伪分布式,所以我这里还是使用完全分布式,开了三台虚拟机,都只分配了1G,1核的默认内存,跑得无压力,所以你的笔记本大概需要4G+的内存,就可以完成这个实验。
基于Hadoop 2.x版本和1.x版本的巨大差异,而我更熟悉1.x版本,所以本次使用的Hadoop版本是1.2.1,至于2的操作和配置,你熟悉了1以后一定是手到擒来,再者网上大多资料以及书籍都是基于1.x的,这样,即使你遇到了问题,也会更好解决。
至于Hadoop下载地址网上多的是,官网也有,大家可以自行获取,我用的Linux版本是Ubantu14.04,为什么选这个系统呢?因为我用得顺手。如果大家使用Centos,有些指令可能略有不同,不过这应该难不倒你,百度谷歌就能告诉你答案。
先行条件:
安装Hadoop之前,有两个先行条件,一个是JAVA环境的安装,因为Hadoop是基于java开发的,具体过程我后面会讲;另一个是实现SSH互通,这个大家上课做过实验,但是Ubantu的设置和Centos有所不同!!所以我也会写在下面。
让我们开始把!
注意:1.本实验全程不要使用sudo su操作,那样非常不专业,容易导致很多安全问题的发生。
2.合理使用tab键让你linux操作更加顺手。
为了统一,大家点击虚拟机的编辑,选择虚拟网络编辑器。如下配置:


打开终端,第一步是修改hosts文件,输入:sudo vim /etc/hosts,加上以下三行:
192.168.217.130 master
192.168.217.201 slave1
192.168.217.202 slave2

然后要修改ip地址,根据上面所填写的三个内容,ip地址的设置也是不一样的。这里,要注意,Ubantu不要在终端下修改ip地址,不然后果很严重,不吹不黑,大家就用他自带图形界面来修改就好,方便又直观。


根据不同的主机,address不同,其他的一样。
然后要建立一个hadoop账户,输入如下指令:
sudo addgroup hadoop
sudo adduser --ingroup hadoop hadoop(前一个hadoop为组名,后面才是用户名,用户名可以自己取,我方便起见写了hadoop,不过我自己的虚拟机不是这样,所以看截图的时候不要太过于纠结。后面会让你输入一个密码,是你登录这个用户时的密码,键入之后,出现任何提示都直接回车表示默认)
sudo gedit /etc/sudoers(不要使用vim,因为那样子打开文件是只读的,除非你进入root,修改后,再把权限改为只读,一定要改回只读。但是这个好麻烦,没有gedit直接根据提示apt-get即可,)
在root ALL=(ALL:ALL) ALL下面,加上hadoop ALL=(ALL:ALL) ALL

添加这句话是为了让hadoop用户也能使用sudo。
输入su hadoop即可登入该用户
注:三个虚拟机都需要进行上面的操作。(可以先做一份,然后克隆两份,再进行修改,记得登录hadoop用户,接下来的配置都在这个用户下进行配置)
接下来,需要进行ssh无密码互连的操作。
输入sudo apt-get install ssh来获取ssh。
输入ls -a /home/u(u为你的当前用户,即hadoop)
里面应该可以看到一个.ssh的隐藏文件夹,如果没有可以手动创建,接下来输入命令:
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa(这里就不详细解释每个参数的作用了,~代表当前用户文件夹,此处是/home/hadoop)
这个命令会在.ssh文件夹下创建两个文件id_dsa及id_dsa.pub,相当于现实中的锁和钥匙,把后者追加到授权的key中去,输入:
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys.
这样就可以实现无密码ssh自登陆,可以试试命令:ssh localhost
exit退出登录
为了实现master与slave之间互相都能免密码ssh登录,这里需要把id_dsa.pub发送到每一个主机的authorized_keys中,先把id_dsa.pub文件通过scp命令传输过去。
这里推荐大家进入slave1和slave2,把他们的id_dsa.pub发送到master上,然后再添加到master的authorized_keys中,再把master中的authorized_keys传到slave1和slave2中即可。
scp ~/.ssh/id_dsa.pub u@master:~/.ssh/id_dsa.pub.slave1(u处填你master的用户,即hadoop,slave1用来区别不同主机的公钥)。
然后,输入,cat ~/.ssh/id_dsa.pub.slave1 >> ~/.ssh/authorized_keys
当slave1和slave2的公钥都传入后,再键入:
scp ~/.ssh/authorized_keys slave1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys slave2:~/.ssh/authorized_keys
此时,若在master输入ssh slave1 可以连接到slave1,那就算配置完成了。

接下来,下载hadoop。输入
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
文件会下载在当前目录,为了方便配置,换到另一个位置
mv hadoop-1.2.1.tar.gz /opt
cd /opt
tar -zxvf hadoop-1.2.1.tar.gz
解压完成后,会生成一个hadoop-1.2.1的文件夹。
我们进入,该文件夹。
cd hadoop-1.2.1
ls

我们要进入其中的conf文件夹进行配置。
我们需要配置如下参数,其余的保持默认即可。

其中每个文件的配置请大家登录我的个人主页进行下载:
http://114.215.84.38/doc/Hadoopconf.rar
然后,我们还需要配置一下JDK,前面一直忘记说了。汗,不过JDK的配置过程十分简单,先去Oracle官网获取JDK1.6以上的版本。下载下来后解压,解压命令上面写过,记住解压的位置。
然后,配置profile。输入:vim /etc/profile

箭头位置分别填入你jdk解压后的文件夹路径和Hadoop的文件夹路径。
保存后,输入
source /etc/profile
使profile立刻生效。
接下来,输入hadoop回车,应该可以看见相应的指令提示。
我们要注意,hadoop的运行脚本是放在hadoop的bin文件夹下的,我们进入那个文件夹

其中的start-all.sh和stop-all.sh是最重要的两个脚本,是用来启动和关闭我们的hadoop的,这个操作请在master上运行,否则后果很严重。
运行这个指令之前,要先初始化namenode
hadoop namenode -format
然后就可以准备运行了,在这之前,让我们输入一下jps来查看有什么java进程正在运行。

三台机器应该都是只有jps一个进程,现在让我们在master上输入
start-all.sh
然后再输入jps
master的结果应该是:
NameNode
SecondaryNameNode
JobTracker
jps
两个slave的结果应该是:
DataNode
TaskTracker
jps
这样就算安装完成了,可以试试
hadoop fs -ls来查看集群上的文件。
也可以打开浏览器,输入master:50030和master:50070来查看状态
PS:
为什么最后面的内容没有截图呢!因为我操作的时候,不小心ssh了slave1,然后在这个状况下格式化了namenode并启动了,直接就崩了好吧!!遇到这种情况怎么办,其实是有办法的。

把这四个文件夹全部删除,然后再重新创建就好了。唉,不说了,面壁了。
转自:http://www.cnblogs.com/qjkobe/p/5330159.html
Hadoop完全分布式集群安装的更多相关文章
- hadoop学习之hadoop完全分布式集群安装
注:本文的主要目的是为了记录自己的学习过程,也方便与大家做交流.转载请注明来自: http://blog.csdn.net/ab198604/article/details/8250461 要想深入的 ...
- Hadoop学习---CentOS中hadoop伪分布式集群安装
注意:此次搭建是在ssh无密码配置.jdk环境已经配置好的情况下进行的 可以参考: Hadoop完全分布式安装教程 CentOS环境下搭建hadoop伪分布式集群 1.更改主机名 执行命令:vi / ...
- 大数据学习之hadoop伪分布式集群安装(一)公众号undefined110
hadoop的基本概念: Hadoop是一个由Apache基金会所开发的分布式系统基础架构. 用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Hadoo ...
- Hadoop之——分布式集群安装过程简化版
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46352315 1.hadoop的分布式安装过程 1.1 分布结构 主节点(1个,是 ...
- 吴超老师课程---Hadoop的分布式集群安装
1.hadoop的分布式安装过程 1.1 分布结构 主节点(1个,是hadoop0):NameNode.JobTracker.SecondaryNameNode 从节点(2个,是 ...
- hadoop学习通过虚拟机安装hadoop完全分布式集群
要想深入的学习hadoop数据分析技术,首要的任务是必须要将hadoop集群环境搭建起来,可以将hadoop简化地想象成一个小软件,通过在各个物理节点上安装这个小软件,然后将其运行起来,就是一个had ...
- Hadoop伪分布式集群环境搭建
本教程讲述在单机环境下搭建Hadoop伪分布式集群环境,帮助初学者方便学习Hadoop相关知识. 首先安装Hadoop之前需要准备安装环境. 安装Centos6.5(64位).(操作系统再次不做过多描 ...
- (转)ZooKeeper伪分布式集群安装及使用
转自:http://blog.fens.me/hadoop-zookeeper-intro/ 前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品.在单机中,系统协作大都是进程级的 ...
- Hadoop(三)手把手教你搭建Hadoop全分布式集群
前言 上一篇介绍了伪分布式集群的搭建,其实在我们的生产环境中我们肯定不是使用只有一台服务器的伪分布式集群当中的.接下来我将给大家分享一下全分布式集群的搭建! 其实搭建最基本的全分布式集群和伪分布式集群 ...
随机推荐
- Tomcat配置多个端口号或多个应用
一.在Tomcat下配置一个应用服务(service)中,配置多个端口号. 即一个service配置多个端口,项目可以通过多个端口访问. 修改tomcat-home\conf下的server.xml, ...
- 使用FileSystemWatcher监视文件变化
本文转载:http://www.cnblogs.com/zanxiaofeng/archive/2011/01/08/1930583.html FileSystemWatcher基础 属性: Path ...
- Qt之遍历文件夹(经典详解)
关于Qt操作文件夹.文件的知识用途较多,比如遍历下一层乃至所有子孙文件.文件夹,获取它们的一些信息(大小.类型.最后更改时间等).当然,也可以进行级联删除. 首先看简单的: 一.Qt遍历文件夹 ...
- anzhaung
http://search.newhua.com/search_list.php?searchsid=1&searchname=Setu
- WCF - 契约
契约就是双方或多方就某个问题达成的一种的共识 服务提供者通过契约的形式将服务公布出来 服务消费者根据契约来消费 这样通过契约这个中间者就可以规范服务提供的内容 而服务消费者也可以根据契约来使用服务端 ...
- 利用 Lua 实现 App 动态化方案
因为动态化的东西我第一次看实现方案的源码,而且目前还是大三的学生,缺少很多实践经验说错的地方还请原谅,也希望能指出,被告知.想了很久还是决定写出来,求大神勿喷. 并且我的一个朋友bestswifter ...
- Android(java)学习笔记212:中文乱码的问题处理(qq登录案例)
1.我们在之前的笔记中LoginServlet.java中,我们Tomcat服务器回复给客户端的数据是英文的"Login Success","Login Failed&q ...
- list-style无颜色问题解决,list-style-type无颜色解决
list-style无颜色问题解决,list-style-type无颜色解决 >>>>>>>>>>>>>>>& ...
- (转)兼容主流浏览器的CSS透明代码
透明往往能产生不错的网页视觉效果下面是兼容主流浏览器的CSS透明代码.transparent_class { filter:alpha(opacity=50); -moz-opacity:0.5; - ...
- SQL Server 的远程连接(转载)
SQL Server默认是不允许远程连接的,如果想要在本地用SSMS连接远程服务器上的SQLServer2012数据库,需要确认以下环节: 1)如果是工作组环境,则需要使用SQL Server身份验证 ...