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分布式沈询 摘要:伴随着系统性能.成 ...
随机推荐
- chrome开发者工具浅析--timeline
一.概述 ...
- struts2重点——ModelDriven
一.属性驱动 在目标 Action 类中,通过 setXxx() 方法来接收请求参数. 二.模型驱动 1.ParametersInterceptor 拦截器工作原理 ParametersInterce ...
- CSS3背景渐变属性 linear-gradient(线性渐变)和radial-gradient(径向渐变)
CSS3 Gradient分为linear-gradient(线性渐变)和radial-gradient(径向渐变). 为了更好的应用CSS3 Gradient,我们需要先了解一下目前的几种现代浏览器 ...
- HTTP请求中的Body构建——.NET客户端调用JAVA服务进行文件上传
PS:今日的第二篇,当日事还要当日毕:) http的POST请求发送的内容在Body中,因此有时候会有我们自己构建body的情况. JAVA使用http—post上传file时,spring框架中 ...
- C#从服务器下载文件到客户端源码
1.在window窗体加个button控件,双击进去
- asp.net 前台绑定后台变量方法总结:<%= %> 和<%# %>的区别
经常会碰到在前台代码中要使用(或绑定)后台代码中变量值的问题.一般有<%= str%>和<%# str %>两种方式,这里简单总结一下.如有错误或异议之处,敬请各位指教. 一 ...
- 容器--Collection和AbstractCollection
一.前言 容器是JAVA中比较重要的一块,整个体系设计得非常好,同时对于代码学习来说也是比较好的范例.同时很多面试官也比较喜欢用容器来考察面试者的基础知识,所以掌握好容器还是比较重要的.本文主要总结一 ...
- mongodb安装与使用
一.在linux服务器中安装mongodb 1.首先你要有一台安装有linux系统的主机 2.从mongoDB官网下载安装包:http://www.mongodb.org/downloads 3.将下 ...
- poolboy的坑
poolboy是Erlang中运用非常广泛的进程池库,它有很多优点,使用简单,在很多项目中都能看到它的身影.不过,它也有一些坑,使用时候需要注意.(本文对poolboy的分析基于1.5.1版本) wo ...
- 开源论坛MvcForum推荐
MvcForum算是Asp.net中开源论坛佼佼者之一.主要使用ASP.NET MVC 5 &Unity & Entity Framework 6,有较强的可撸性.是论坛开发者的不二之 ...