Ubuntu中搭建Hadoop2.5.2完全分布式系统(一)

  Hadoop平台搭建有三种模式,分别是单机模式、伪分布模式、完全分布模式。单机模式是在单一计算机或者服务器上运行Hadoop,没有分布式的文件上传和任务分配等功能。它执行的流程仍然是Map/Reduce,但是是文件和程序都在本机上,可以看成只有一个节点的Hadoop平台。伪分布模式也是单一计算机或者服务器,但是它在单一节点上用不同的Java进程模拟出来NameNode、DataNode、JobTracke、TaskTracker等节点。实际工作时,它会把不同的节点,每个模拟出来的节点执行时和在完全分布式情况下真实的节点执行是相同的。完全分布式的Hadoop平台建立在多个计算机或者服务器上,每个节点有着固定的角色,各司其职。这种模式的优势就是能够真正的体现出分布式计算的快速和便捷。

  本实验平台由三台服务器构成,包括一台NameNode节点,两个DataNode节点。服务器安装的是Ubuntu14.04系统。整个实验室的所有电脑和Hadoop平台配置在在一个局域网下,每台电脑都可以通过远程登录来登录三个服务器中的任意一个来查看该节点的信息,也可以在自己的电脑上通过eclipse插件直接上传任务到Hadoop平台上。所有的设备都通过交换机连接。搭建Hadoop平台主要有以下几步:

一、设置相关参数及Hadoop安装

1.1设置静态IP

  如果不进行静态IP地设定,每次运行Hadoop环境时,Hadoop会自动分配IP,并不影响使用。但为了方便查看各个节点信息和状态,将它们设定为静态IP。本Hadoop平台一共有三个服务器,对这三个服务器的静态IP设定方法相同。三个服务器中有一个NameNode和两个DataNode。它们的静态IP设定如下:

hadoop-namenode     192.168.1.110

hadoop-datanode1     192.168.1.111

hadoop-datanode2     192.168.1.112

下面以hadoop-namenode这个节点服务器为例,对静态IP设置进行描述。

首先,在终端中输入命令sudo gedit /etc/network/interfaces

打开interfaces文件后,根据下图进行更改。点击保存,保存修改。eth3表示是这个网卡连接网线接入到Hadoop集群中,用户根据自己的接入网卡选择eth。

然后修改DNS解析,在终端输入命令sudo gedit /etc/resolv.conf

打开resolv.conf,根据下图进行修改。点击保存。这里的DNS域名为中国天津移动提供的DNS服务器。一共设置两个DNS,后一个为备用。

用户可以根据自己的实际DNS进行配置。

最后,在终端输入命令:sudo /etc/init.d/network restart重启网卡。

在datanode1和datanode2中也需要进行静态IP设置,方法同上。只是IP不同。

1.2安装ssh

  ssh是建立在应用层和传输层基础上的安全协议,它的目的是为远程通信和远程登录建立安全可靠的传输协议。使用ssh可以对传输文件进行加密,并且对传输的文件进行压缩,增加传输速度。Hadoop集群的各个结点之间需要进行数据的访问,被访问的结点对于访问用户结点的可靠性必须进行验证,Hadoop采用的是ssh的方法通过密钥验证及数据加解密的方式进行远程安全登录操作,当然,如果Hadoop对每个结点的访问均需要进行验证,其效率将会大大降低,所以才需要配置SSH免密码的方法直接远程连入被访问结点。

  启动Hadoop后,NameNode采用ssh来启动或者停止各个DataNode,所以需要在每个服务器上都安装ssh,并将节点之间执行指令的时候设定为不需要输入密码的形式。配置ssh使用无密码公钥认证模式,让NameNode和DataNode之间可以无密码进行登录。

  首先在终端中输入sudo apt-get install openssh-server ,然后输入Y完成安装。

  安装之后,输入sudo /etc/init.d/ssh start启动服务 ,可以输入ps -e | grep ssh来查看服务器是否启动无误,如下图所示:

由于需要多个服务器之间进行通信,所以需要设置免密码登录,在终端中输入ssh-keygen -t rsa -P ""

然后会在/home/hadoop/.ssh下生成id_rsa私钥文件和id_rsa.pub公钥文件。

输入命令:cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys将公钥添加到authorized_keys中,登录ssh。显示如下:

在其他两台DataNode服务器上按照相同的步骤进行配置。最终实现服务器之间的无密码访问。

1.3给Hadoop用户添加权限

本Hadoop集群中,每个电脑的用户名都为Hadoop。给Hadoop用户添加权限是为了让其具有访问其他文件的权力。

在终端输入:sudo gedit /etc/sudoers

打开sudoers后,在其中添加:hadoop   ALL=(ALL:ALL) ALL

如图所示:

1.4安装Java环境

本服务器安装的是jdk1.7.0,JDK(Java Development Kit)是java语言的软件开发工具包。安装JDK后,可以使用eclipse对Hadoop进行编程。

在终端输入sudo apt-get install openjdk-7-jdk

然后输入Y,完成安装。

1.5安装Hadoop

本集群安装的是hadoop2.5.2,在官网可以直接下载。

在终端输入

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.5.2/hadoop -2.5.2.tar.gz

下载hadoop2.5.2版本。

下载完成后输入tar zxvf hadoop-2.5.2.tar.gz进行解压,解压完成后需要对Hadoop的文件进行配置。

二、配置Hadoop相关文件

2.1配置 .bashrc文件

.bashrc文件主要用于保存用户的个人设置,如命令别名,路径等信息。跟windows系统下的环境变量的作用类似。在这个文件里,我们添加java的JDK路径和Hadoop的各种路径。

在配置.bashrc之前,先通过输入update-alternatives - -config java查看java的安装路径为:/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java,在后面的配置中,只取前面:/usr/lib/jvm/java-7-openjdk-amd64部分。

在终端中输入sudo gedit ~/.bashrc 配置java路径和Hadoop安装路径。

打开之后,在文件最后添加下图中所示的路径。

然后点击保存,再在终端中执行source ~/.bashrc使其生效。

在 Ubuntu中搭建Hadoop2.5.2完全分布式系统(二)中,将会继续进行阐述

时间: 2024-10-12 08:25:16

Ubuntu中搭建Hadoop2.5.2完全分布式系统(一)的相关文章

Ubuntu中搭建Hadoop2.5.2完全分布式系统(二)

继续上文,接着进行介绍 2.2编辑hadoop-env.sh 由于Hadoop是基于java编写的,所以需要在hadoop-env.sh里设置JDK路径.首先打开/etc/hadoop/hadoop-env.sh文件. 找到JAVA_HOME变量,将其修改为 export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64 如下图所示: 2.3配置core-site.xml core-site.xml配置集群的全局参数,主要定义了系统级别的参数,如HDFS 

在Ubuntu中搭建.NET开发环境

Mono简介Mono是Xamarin公司C#和CLR的ECMA标准基于开发的一个开源的.NET实现版本,它是Linux平台上开发.NET应用程序首选.同时其也提供了Xamarin.IOS和Xamarin.Andriod,是我们可以直接使用C#开发IOS和Andriod手机开发.安装MonoMono的乌班图版本是由社区提供维护的.以下的版本在标准的Ubuntu库中是可用的:Ubuntu Hardy (8.04 LTS):     1.2.6Ubuntu Lucid (10.04 LTS):   

Win7中使用Eclipse连接虚拟机中的Ubuntu中的Hadoop2.4<3>

经过前几天的学习,基本上能够小试牛刀编写一些小程序玩一玩了,在此之前做几项准备工作 明白我要用hadoop干什么 大体学习一下mapreduce ubuntu重新启动后,再启动hadoop会报连接异常的问题 答: 数据提炼.探索数据.挖掘数据 map=切碎,reduce=合并 重新启动后会清空tmp目录,默认namenode会存在这里,须要在core-site.xml文件里添加(别忘了创建目录,没权限的话,须要用root创建并把权限改成777):<property> <name>h

如何在ubuntu中搭建ruby开发环境

Ubuntu是一个以桌面应用为主的linux操作系统,在进行项目开发的时候,需要在ubuntu中安装ruby开发(http://www.maiziedu.com/course/ruby-px/)语言,主要是考虑到项目的高可变性,以及由此产生的高适应性,所以选择用ruby.跟Java相比,ruby的确比较灵活,能写出千变万化的代码. 但是,比较可悲的是,在windows7上面搭建ruby环境问题比较多.无论是基于cgywin,还是直接使用netbeans都不尽如人意. 因为想调整webserver

Spark在Ubuntu中搭建开发环境

一.在Windows7中安装Ubuntu双系统 工具/原料   windows7 64位 ubuntu 16.04 32位 UltraISO最新版(用来将镜像文件烤到U盘中) 空U盘(若有文件,请先备份) 1.为安装ubuntu16.04分配一块磁盘空间(100G) Win7自带分配磁盘的工具([计算机]->[管理]->[磁盘管理]->选中压缩盘->[右键]->[压缩卷]),只需要压缩步骤即可,不需要继续分盘符格式化等操作. 2.将镜像文件iso写到U盘 下载并安装Ultra

Docker中搭建Hadoop-2.6集群

1.  单个Docker节点的配置 1.1 获取一个简单的Docker系统镜像,并建立一个容器. 1.2.1 这里我选择下载CentOS镜像 docker pull centos 1.2.2 通过docker tag命令将下载的CentOS镜像名称换成centos,然后建立一个简单容器 docker run -it --name=client1 centos /bin/bash 1.2 Docker容器中下载并安装Java 1.2.1 JDK下载 去Oracle官网选择要下载的JDK http:

在Ubuntu中搭建Python3的虚拟环境并开始django项目

搭建环境: 1.首先安装virtualenv: 1 pip install virtualenv 2.创建虚拟环境:(指定安装Python3,若不写-p python3,默认安装Python2.7),env_mysite_python3是虚拟环境的名字 1 virtualenv -p python3 env_mysite_python3 3.如下显示则表示虚拟环境已经安装好了 Running virtualenv with interpreter /usr/bin/python3 Already

ubuntu中搭建php7+mongodb方法

首先照着这篇文章操作 http://blog.csdn.net/Toshiya14/article/details/51417076 结果发现一直报Cannot find OpenSSL's libraries 并且装了libcurl4-openssl-dev也没用 后来参看 http://linuxzj.blog.51cto.com/6160158/1632132 执行 sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib 才搞定,cs

ubuntu中搭建基本的开发环境

1.搭建基本开发环境: sudo apt-get install build-essential 2.安装语法.词法分析器 sudo apt-get install bison flex 3.安装C函数库的man手册,可以通过"man functionname"查看函数用法 sudo apt-get install manpages-dev ncurses是一个能提供功能键定义(快捷键).屏幕绘制以及基于文本终端的图形互动功能的动态库.如果没有它,在执行 make menuconfig