Ubuntu14(64位) 集群环境下安装Hadoop2.4

  • 经过前边的积累,今天终于实现了集群环境下部署Hadoop,并成功运行了官方的例子。

工作如下:

  • 两台机器:
  1. NameNode:上网小本,3G内存,机器名:YP-X100e,IP:192.168.101.130。
  2. DataNode:虚拟机,Win7下载VMWare10中虚拟Ubuntu14,虚拟机器名:ph-v370,IP:192.168.101.110
  3. 确保可互相ping通,按照机器名和IP配置各自机器的/etc/hosts文件和/etc/hostname文件,我的hosts配置内容如下
127.0.0.1 localhost
192.168.101.130 YP-X100e
192.168.101.110 ph-v370
  • 安装环境,请参考
  1. Ubuntu14下Hadoop开发<1> 基础环境安装
  2. Ubuntu14下Hadoop开发<2> 编译64位Hadoop2.4
  • 配置各种配置信息,请参考
  1. Hadoop 2.4.0完全分布式平台搭建、配置、安装
  2. Setting up a Single Node Cluster.
  • 注意事项:

A:主从机的ssh设置,主机中在终端中输入

ssh-keygen -t dsa -P ‘‘ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

拷贝文件到从节点

scp authorized_keys ph-v370:~/.ssh/

刚开始我一直失败的原因是用户不一致,导致一直无法登陆ssh,后来我新建了hadoop用户,并授予hadoop文件夹的权限

useradd -m hadoop
passwd hadoop
chown hadoop:hadoop hadoop-2.4.0

重新用hadoop的用户进行操作就可以了(包括启动hadoop服务等,最好都是用这个用户)

B:执行start-dfs.sh,子节点报异常“WARNorg.apache.hadoop.hdfs.server.datanode.DataNode: Problem connecting to server:YP-X100e/192.168.101.130:9000”

这里有一个卡点,需要修改主节点的hosts文件,注释掉127.0.1.1这行,你可以在注释之前执行

netstat -an | grep 9000

你会看到9000端口被127.0.1.1占用,所以会出现异常

C:格式化文件系统的命令应该是

hdfs namenode -format

D:Hadoop的服务和Yarn的服务需要单独启动

start-dfs.sh
start-yarn.sh

E:在主节点配置好所有的配置文件,直接都拷贝到从节点即可

F:跟做单节点例子的时候不同,我在拷贝文件的时候需要制定确切的路径,如这个:

原来直接执行
$ bin/hdfs dfs -put etc/hadoop input
现在需要执行
$ bin/hdfs dfs -put etc/hadoop /user/chenphinput

G:查进程使用命令是:PS -ef | grep ‘搜索内容’,杀进程是:kill -s 9 进程号,查看防火墙是:sudo ufw status

H:可访问主节点查看Hadoop的状态http://YP-X100e:50070,下图可看到,有一个活动的从节点,也就是我的虚拟机中的那个Ubuntu

Ubuntu14(64位) 集群环境下安装Hadoop2.4

时间: 2024-12-10 18:22:01

Ubuntu14(64位) 集群环境下安装Hadoop2.4的相关文章

Windows 64 位 Matlab R2013a 环境下安装 libsvm

在这种环境下, 安装 libsvm 可以说是傻瓜似的了, 但就我搜出的 libsvm 安装教程来看, 以前的 libsvm 安装起来是有点麻烦的 目前最新版本是 libsvm 3.18, 按照 [1] 的描述, 将 libsvm 的 windows 目录放到 matlab 目录中, 我想博主说的这个目录应该不是 matlab 的当前工作目录, 而是 matlab 的搜索目录. 因为当前工作目录只有一个, 你把它设为 windows, 那么 libsvm 目录下的 heart_scale 数据集就

基于HBase Hadoop 分布式集群环境下的MapReduce程序开发

HBase分布式集群环境搭建成功后,连续4.5天实验客户端Map/Reduce程序开发,这方面的代码网上多得是,写个测试代码非常容易,可是真正运行起来可说是历经挫折.下面就是我最终调通并让程序在集群上运行起来的一些经验教训. 一.首先说一下我的环境: 1,集群的环境配置请见这篇博文. 2,开发客户机环境:操作系统是CentOS6.5,JDK版本是1.7.0-60,开发工具是Eclipse(原始安装是从google的ADT网站下载的ADT专用开发环境,后来加装了Java企业开发的工具,启动Flas

集群环境下如何防止定时任务重复执行?

起因 最近做项目是遇到这样一个问题:系统需要在每天的16:00向一些符合特定条件的用户发送一份邮件,发送成功后修改掉数据库中对应数据的标志位.本来是没有问题的,但后来系统被部署到了集群环境下,导致每天会向这些用户发送多次同样的数据,遭到了客户的抱怨. 解决 下面来介绍一下处理这种问题的解决办法: 1.在数据库中建立tm_job_group表 Name Type Comments group_id number 组id interval number 时间间隔区分定时任务的间隔即多长时间内不可重复

分布式集群环境下,如何实现session共享三(环境搭建)

这是分布式集群环境下,如何实现session共享系列的第三篇.在上一篇:分布式集群环境下,如何实现session共享二(项目开发)中,准备好了一个通过原生态的servlet操作session的案例.本篇需要搭建相关的环境,包括:tomcat.nginx.redis. 1.通过两个tomcat搭建集群:tomcat_1.tomcat_2 2.通过nginx实现负载均衡 3.通过redis存储session 1.安装tomcat 1.1.tomcat_1 上传tomcat_1到服务器192.168.

集群环境下定时任务调度问题与方案探讨

摘要 问题:从单机扩展到集群 方案一:不做改造,直接扩展 方案二:多处调度.一处执行 方案三:一处调度.一处执行 方案四:一处调度.多处执行 方案五:多处调度.多处执行 摘要 从改造工作量.可用性.负载均衡.资源利用等方面,简单介绍了几种集群环境下定时任务调度的方案. 问题:从单机扩展到集群 单机环境的定时任务很简单.无论是用比较原始的Timer,还是用自成体系的quartz.spring-scheduler,都可以轻松写意的实现功能. 但是,当应用水平扩展到集群环境下时, 定时任务会出现重复调

CAS服务器集群和客户端集群环境下的单点登录和单点注销解决方案

CAS的集群环境,包括CAS的客户应用是集群环境,以及CAS服务本身是集群环境这两种情况.在集群环境下使用CAS,要解决两个问题,一是单点退出(注销)时,CAS如何将退出请求正确转发到用户session所在的具体客户应用服务器,而不是转发到其他集群服务器上,二是解决CAS服务端集群环境下各种Ticket信息的共享. CAS集群部署 由于CAS Server是一个Web应用,因此可部署在Tomcat等容器中.直接部署CAS集群并使用负载均衡配置后,由于每次访问的CAS Server不固定,会发生通

扫码登录实现及服务器集群环境下精准推送解决方案

又是新的一年,其实我心有那么一丝期待,因为每一年都会有新的进步,比如技术方面呀,与同事的沟通方面呀等等,这篇文章就是总结一下上一年我做的扫码登录功能的一些经验.        估计大家肯定在电脑上登录过微信,中间有一步在手机上点确定登录的操作,点完之后电脑上的微信就自动登录了,看上去挺屌的,但知道具体怎么实现后你就会觉得也就那样.另外,文章标题上什么"推送解决方案",方案肯定谈不上,不过这词可以用在简历上,用来唬下面试官还是可以的,因为面试官一看你简历上写着"在公司提出了什么

【Redis】redis集群与非集群环境下的jedis客户端通用开发

非集群环境下 package com.chiwei.redis; import java.util.ArrayList; import java.util.List; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; import redis.clients.jedis.

分布式集群环境下,如何实现session共享二(项目开发)

在上一篇分布式集群环境下,如何实现session共享一(应用场景)中,介绍了在分布式集群下,需要实现session共享的应用场景.并且最后留下了一个问题:在集群环境下,如何实现session的共享呢?.要解决这个问题,放在一篇中内容量有点大,还是一步一步来吧.本篇先搭建一个基础的web应用,完全基于原生态的servlet实现.思路是这样的: 1.准备一个页面index.jsp,页面中可以提交key/value对的请求参数数据数据 2.编写一个servlet,接收页面提交的请求,获取请求参数,并且