Hadoop从伪分布式到真正的分布式

搭建一个伪分布式的hadoop环境,遇到的第一个问题是JAVA_HOME没设置。Hadoop是用Java开发的,所以对Java的环境依赖比较严重。所以需要先配置一下Java。 Oracle JDK和Open JDK都可以。唯一需要注意的是Oracle JDK已经不被Ubuntu的官方repository支持了,安装麻烦些。Open JDK直接执行: sudo apt-get install openjdk-6-jdk 安装完后,要设置JAVA_HOME的环境变量:
sudo gedit /etc/environment
然后添加
CLASSPATH=./:/usr/lib/jvm/java-6-openjdk/lib
JAVA_HOME=/usr/lib/jvm/java-6-openjdk
PATH添加:/usr/lib/jvm/java-6-openjdk
或者
修改hadoop-env.sh文件,添加export JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64/ 遇到的第二个问题是hadoop运行权限的问题,hadoop默认的namenode服务是不允许以root用户运行的,所以必须新建一个用户来运行。命令:
sudo addgroup hadoopgroup
sudo adduser --ingroup hadoop hadoop
sudo chmod +w /etc/sudoers
sudo vim /etc/sudoers
添加配置:
在root ALL=(ALL) ALL后 hadoop ALL=(ALL) ALL使hadoop用户具有root权限
再运行格式化命令:hadoop-0.20 namenode -format时,又遇到了“Create directory”的错误,
问题是cache目录的权限不对,那么就修改一下权限sudo chown hadoop:hadoopgroup cache 运行 hadoop-0.20 namenode -format,输出成功信息。 接下来运行hadoop-0.20 fs -ls /遇到了第三个问题连接The authenticity of host can't be
established 这个问题是因为ssh的设置导致的,通过修改/etc/ssh/ssh_config,在文件尾添加:
StrictHostKeyChecking no
UserKnownHostsFile /dev/null 今天遇到了第四个坑,就是重启机器后启动hadoop服务失败。尝试着去重新格式化namenode,也失败。错误信息如下: Format aborted in /home/hadoop/dfs/name 后来查看了一下网上的解决方案,原来是如果要重新格式化namenode必须先将原来的namenode文件夹删除先。我的路径是/usr/lib/hadoop-0.20/cache/hadoop/。然后,再重新格式化,重新启动服务就可以了。还有就是用户权限的问题,最好的办法就是将所有与hadoop相关的文件夹权限都设置成hadoop用户所有。 第五个坑是wordcount程序哪里找。网上和文章里都没找到大牛的jar文件。经过一番搜索,原来hadoop自带了一个,那就是在hadoop的安装目录下有一个hadoop-examples.jar文件。这个就可以用来统计word。
master 192.168.108.133
slave1 192.168.108.134
slave2 192.168.108.135
但是在Ubuntu里应该是这样:
192.168.108.133 master
192.168.108.134 slave1
192.168.108.135 slave2
3. 配置无密码登陆从master节点到slave节点,做法是先在master节点上生成空密码的key,然后拷贝到slave节点上。
ssh-keygen -t rsa 然后一路回车
cat ~/.ssh/id_rsa.pub >> authorized_keys
拷贝authorized_keys文件到slave机器的~/.ssh/文件夹下。这里要注意的是master节点和slave节点都必须是 同名用户操作,这个用户也是hadoop的服务用户。
然后在slave机器上就该文件权限: chmod 644 ~/.ssh/authorized_keys,否则也是不工作的。如果你发现ssh的认证比较慢,请修改/etc/ssh/ssh_config文件,将GSSAPIAuthentication yes改为no。
4. 修改hadoop的配置文件,这个就不详写的,大牛的文章里也都有。唯一需要注意的是,创建自己的临时目录,并更新到core-site.xml文件中。
<property>
<name>hadoop.tmp.dir</name>
<value>/app/hadoop/tmp</value>
</property>
注意,这里的/app/hadoop/tmp目录必须改成hadoop用户的权限。 5. 按照大牛文章里面的步骤,格式namenode,启动hadoop服务。这里要注意的是这些步骤都是在master节点上操作的,因为hadoop是通过可信ssh方式让master与slave沟通的。这也是为什么要配置无密码登陆的目的。如果一切顺利,恭喜你的第一个分布式大数据计算框架已经搭建成功。
注意:
你可能会跟我一样犯二的时候,不小心把core-site.xml里面的"fs.default.name"写错了。那么你就会得到"Invalid URI for NameNode address"的异常信息。 最后要说的是,上面的架构图是hadoop 1.0的。2.0现在已经把job tracker给干掉了,由于性能和单点失效的原因,已经换了架构。不过对于初学者来说,1.0就已经够了。
Hadoop从伪分布式到真正的分布式的更多相关文章
- Hadoop:Hadoop单机伪分布式的安装和配置
http://blog.csdn.net/pipisorry/article/details/51623195 因为lz的linux系统已经安装好了很多开发环境,可能下面的步骤有遗漏. 之前是在doc ...
- hadoop搭建伪分布式集群(centos7+hadoop-3.1.0/2.7.7)
目录: Hadoop三种安装模式 搭建伪分布式集群准备条件 第一部分 安装前部署 1.查看虚拟机版本2.查看IP地址3.修改主机名为hadoop4.修改 /etc/hosts5.关闭防火墙6.关闭SE ...
- Hadoop开发第3期---Hadoop的伪分布式安装
一.准备工作 1. 远程连接工具的安装 PieTTY 是在PuTTY 基础上开发的,改进了Putty 的用户界面,提供了多语种支持.Putty 作为远程连接linux 的工具,支持SSH 和telne ...
- Hadoop之伪分布式安装
一.Hadoop的安装模式有3种 ①单机模式:不能使用HDFS,只能使用MapReduce,所以单击模式主要用于测试MR程序. ②伪分布式模式:用多个线程模拟真实多台服务器,即模拟真实的完全分布式环境 ...
- Hadoop的单机模式、伪分布式模式和完全分布式模式
1.单机(非分布式)模式 这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统. 2.伪分布式运行模式 这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中 ...
- Hadoop 3.1.2 下载安装和分布式搭建的准备
官方有详细文档:https://hadoop.apache.org/docs/r3.1.2/hadoop-project-dist/hadoop-common/SingleCluster.html 我 ...
- Hadoop生态圈-flume日志收集工具完全分布式部署
Hadoop生态圈-flume日志收集工具完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 目前为止,Hadoop的一个主流应用就是对于大规模web日志的分析和处理 ...
- 沉淀,再出发——在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享
在Ubuntu Kylin15.04中配置Hadoop单机/伪分布式系统经验分享 一.工作准备 首先,明确工作的重心,在Ubuntu Kylin15.04中配置Hadoop集群,这里我是用的双系统中的 ...
- Hadoop单点伪分布模式安装
Hadoop单点伪分布模式安装 概述 单点 single-node,单节点,即一台计算机. 伪分布式模式 pseudo-distributed mode 所谓集群,表面上看是多台计算机联合完成任务:但 ...
- 云时代的分布式数据库:阿里分布式数据库服务DRDS
发表于2015-07-15 21:47| 10943次阅读| 来源<程序员>杂志| 27 条评论| 作者王晶昱 <程序员>杂志数据库DRDS分布式沈询 摘要:伴随着系统性能.成 ...
随机推荐
- struts2重点——ValueStack和OGNL
一.值栈(ValueStack) 1.实现类:OGNLValueStack 2.对象栈:CompoundRoot(针对的是类级别的) (1)继承自 ArrayList —— 先进后出 (2)提供了栈的 ...
- CSS3的变形transform、过渡transition、动画animation学习
学习CSS3动画animation得先了解一些关于变形transform.过渡transition的知识 这些新属性大多在新版浏览器得到了支持,有些需要添加浏览器前缀(-webkit-.-moz-.- ...
- 移动端手势库Hammer.js学习
感觉移动端原生支持的 touch.tap.swipe 几个事件好像还不够用,某些时候还会用到诸如缩放.长按等其他功能. 近日学习了一个手势库 Hammer.js,它是一个轻量级的触屏设备手势库,能识别 ...
- SQL Server中的连接查询【内连接,左连接,右连接,。。。】
在查询多个表时,我们经常会用“连接查询”.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据 ...
- Greedy --- HNU 13320 Please, go first
Please, go first Problem's Link: http://acm.hnu.cn/online/?action=problem&type=show&id=13320 ...
- 【C#进阶系列】10 属性
属性分为无参属性和有参属性(即索引器). 属性相对于字段的优点不仅仅是为了封装,还可以在读写的时候做一些额外操作,缓存某些值或者推迟创建一些内部对象,也适用于以线程安全的方式访问字段. 话说最基本的属 ...
- php学习笔记:对文件的增删查改等操作
文件的创建: 采用touch()函数,当文件不存在会被创建 例如: <?php header("Content-type: text/html; charset=utf-8" ...
- 开源项目Foq简介
Foq是一个轻量级-线程安全的mocking类库.使用它来mock抽象类与接口这是我们通常的做法.Foq的名字来自Moq,如果你使用过Moq的话,自然后联想到它能做什么.Foq主要是为了F#的 ...
- spring boot学习笔记
spring boot 是什么 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程. spring boot采用了“约定优于配置” ...
- 【JavaEE】SSH+Spring Security基础上配置AOP+log4j
Spring Oauth2大多数情况下还是用不到的,主要使用的还是Spring+SpringMVC+Hibernate,有时候加上SpringSecurity,因此,本文及以后的文章的example中 ...