虚拟机安装的三台Ubuntu系统下搭建Hadoop

Linux 上安装Hadoop 教程

在虚拟机中安装的Ubuntu系统下搭建Hadoop集群时首先要解决的问题是将宿主机的文件拷贝到虚拟机上。采用的简单方法是宿主机使用Serv-U建立一个FTP然后在虚拟机上登录将文件拷出来。

要先熟悉Linux的基本概念和操作,如:cd、ls、tar、cat、ssh、scp、cp、rm、sudo、su、apt-get等操作。

.实践环境:

Ubuntu10.04+jdk1.6+hadoop-0.20.1


机器名


IP


作用


Master


192.168.128.2


Namenode、master、jobtracker


Slave1


192.168.128.3


Datanode、slave、tasktracker


Slave2


192.168.128.4


Datanode、slave、tasktracker

.   安装步骤

1.       在虚拟机上安装Ubuntu10.04。这个很简单可以上网参考基本上是一直“下一步”就行。注意两个地方:一个是出现选择存储空间时直接选择使用整个磁盘就行,不要进行手动分区。第二个就是我才用的上网方法是NAT技术。配置详情在11.30日的日志里。

2.    对三台虚拟机做一下更新。$sudo apt-get update 。后面要安装软件时,如果没有更新,在安装所需软件时,可能会说找不到软件,安装不上。注意选择软件源时不要仅仅是一个网站,建议使用 “中国 的服务器”。

3.  修改机器名和hosts文件。

IP为 192.168.128.2 的虚拟机做namenode 机器名叫 master。

IP为 192.168.128.3和192.168.128.4的虚拟机做datanode 机器名分别叫slave1,slave2

第一步:修改三台虚拟机的机器名。

对master

$ vi   /etc/hostname

进入文件后将机器名改成master

对slave

$ vi  /etc/hostname

进入文件后机器名改成 slave1

$ vi  /etc/hostname

第二步:修改三台虚拟机的/etc/hosts文件。

对master和slave

vi  /etc/hosts

进入文件后原内容删除加入如下内容。

127.0.0.1 localhost

192.168.128.2 master master

192.168.128.3 slave1 slave1

192.168.128.4 slave2 slave2

4.在三台虚拟机上分别新建一个名字为jsj的用户。

第一步:[email protected]:~$ adduser jsj

第二步:提示你要求你填写一些信息,可以直接回车。

第三步:设置jsj这个用户的密码(尽量简单一致)。

第四步:[email protected]:~/home$ chown  -R  jsj:jsj  jsj

//将jsj文件夹的所用者改成jsj用户的。否则我们用adduser jsj创建了jsj用户后,jsj用户不能在自己的主目录下创建文件夹,(如:$ mkdir .ssh)提示没有权限创建文件夹。

5. 在三台虚拟机上分别配置ssh无密码登录。

第一步:[email protected]:~$ sudo apt-get install ssh  //开启ssh服务。

第二步:[email protected]:~$ mkdir .ssh

在三台虚拟机的/home/jsj目录下都用jsj用户建立一个.ssh目录

第三步:[email protected]:~/.ssh/$ ssh-keygen –t dsa –P ‘’ –f ~/.ssh/id_dsa

//这个命令将为masters上的jsj用户生成其密钥对,生成的密钥对id_dsa,id_dsa.pub,默认存储在/home/jsj/.ssh目录下。

第四步:[email protected]:~/.ssh/$  cat id_dsa.pub >> authorized_keys。

//把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件是你也可以直接使用cp 命令)。至此无密码登录到本机已经配置好了。可以使用 $ ssh localhost 命令测试一下。第一次登录时要输入yes,之后就不用了。

第五步:[email protected]:~/.ssh/$ scp id_dsa.pub [email protected]:/home/jsj/.ssh/

//将id_dsa.pub 文件传送到slave1 这台虚拟机上。slave2 同理。

第六步:到slave1 这台虚拟机上执行第四步的操作。slave2 同理。至此master就可以无密码登录到slave1 和slave2 上了。如果想要slave1 和slave2 都可以无密码登录到master上必须在slave1 和salve2 上也操作第三部生成自己的密钥对而且要将密钥对追加到三台机器的authorized_keys文件里。

至此各个机器上的SSH配置已经完成,可以测试一下了,比如master向slave1发起ssh连接

[email protected]:~/.ssh$ ssh  slave1

如果ssh配置好了,就会出现以下提示信息

The authenticity of host [dbrg-2] can‘t be established.

Key fingerprint is 1024 5f:a0:0b:65:d3:82:df:ab:44:62:6d:98:9c:fe:e9:52.

Are you sure you want to continue connecting (yes/no)?

OpenSSH告诉你它不知道这台主机,但是你不用担心这个问题,因为你是第一次登录这台主机。键入“yes”。这将把这台主机的“识别标记”加到“~/.ssh/know_hosts”文件中。第二次访问这台主机的时候你会发现不需要输入密码就可以建立ssh连接了,恭喜你,配置成功了。不过,别忘了测试本机ssh  localhost  (因为后面的Hadoop命令受到这一步的影。注意如果你没有成功记住删除“~/.ssh/know_hosts”文件就可以重新开始。

6. 在三台虚拟机上分别安装jdk1.6

第一步:将jdk-6u13-linux-i586.bin拷到/home/jsj目录下

第二步:[email protected]:~/home/jsj$ chmod u+x jdk-6u13-linux-i586.bin

//将bin文件修改成可执行文件。

第三步:[email protected]:~/home/jsj/$ ./jdk-6u13-linux-i586.bin

//运行安装文件

第四步:[email protected]:~/$ gedit /etc/profile

在文件里面加入如下信息。

export JAVA_HOME=/home/jsj/jdk1.6.0_13

export JRE_HOME=/home/jsj/jdk1.6.0_13/jre

export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

然后[email protected]:~/$ source /etc/profile 是文件内容生效。

第五步:重启电脑,在任何用户中 $ java –version 如果显示如下信息:

java version "1.6.0_13"

Java(TM) SE Runtime Environment (build 1.6.0_04-b12)

Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)

说明jdk安装成功。你可以在slave1和slave2 上执行同样的操作,也可以使用$

scp –r 将jdk1.6.0_13文件夹拷到其它两台虚拟机上,然后配置环境变量就OK了。

至此jdk安装成功。注意安装jdk时容易出现的一个问题:第一是安装完成后只有安装时的登录用户可用java其它用户不可用。这样的话你要设置一下/etc/environment 文件。设置方法网上搜索就可以。

7. 在三台虚拟机上分别安装Hadoop-0.20.1

第一步:将hadoop-0.20.1.tar.gz文件拷贝到/home/jsj目录下。

第二步:[email protected]:~/home/jsj/$ tar -xzvf hadoop-0.20.1.tar.gz

//将文件解压。

第三步:[email protected]:~/home/jsj/$ chown  jsj:jsj hadoop-0.20.1

//将文件所有者改成jsj。

第四步:[email protected]:~/home/jsj/$ gedit /etc/profile

进入文件将如下信息加到文件里。

export HADOOP_HOME=/home/jsj/hadoop-0.20.1

export PATH=$HADOOP_HOME/bin:$PATH

第五步:更改conf目录下的conf/core-site.xml, conf/hdfs-site.xml, conf/mapred-site.xml,conf/hadoop-env.sh,conf/masters,conf/slaves 文件。

[email protected]:~/home/jsj/hadoop-0.20.1/conf/$ gedit hadoop-env.sh

进入文件加入如下信息。

export   JAVA_HOME=/home/jsj/jdk1.6.0_13

[email protected]:~/home/jsj/hadoop-0.20.1/conf/$ gedit masters

进入文件加入如下信息。

192.168.128.2

[email protected]:~/home/jsj/hadoop-0.20.1/conf/$ gedit slaves

进入文件加入如下信息。

192.168.128.3

192.168.128.4

[email protected]:~/home/jsj/hadoop-0.20.1/conf/$ gedit core-site.xml

进入文件加入如下信息。

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>/home/jsj/tmp</value>

<description>A base for other temporary directories.</description>

</property>

<!-- file system properties -->

<property>

<name>fs.default.name</name>

<value>hdfs://192.168.128.2:9000</value>

</property>

</configuration>

[email protected]:~/home/jsj/hadoop-0.20.1/conf/$ gedit hdfs-site.xml

进入文件加入如下信息。(replication默认是3,如果不修改,datanode少于三台就会报错)。

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

[email protected]:~/home/jsj/hadoop-0.20.1/conf/$ gedit mapred-site.xml

进入文件加入如下信息。

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>192.168.128.2:9001</value>

</property>

</configuration>

第六步:[email protected]:~/$ scp hadoop-0.20.1 [email protected]:/home/jsj/hadoop-0.20.1

//将文件hadoop-0.20.1拷贝到其它两个虚拟机上就可以了。

至此hadoop安装完成。注意一个问题:运行时出现找不到主函数的错误,说明profile环境变量的设置没有起效。可以在/etc/environment 文件里加入一些信息。具体信息网上搜索。

8.运行hadoop自带的例程 wordcount。

第一步:[email protected]:~/hadoop-0.20.1/bin/$ hadoop namenode –format

//格式化文件系统,新建一个文件系统。

第二步:[email protected]:~/hadoop-0.20.1/$ start-all.sh

//启动hadoop的所有守护进程。

第四步:[email protected]:~/hadoop-0.20.1/$ jps

//查看进程,master虚拟机上的结果。

在slave1 和 slave2 虚拟机上 [email protected]:~/hadoop-0.20.1/$ jps

第四步:(1)先在本地磁盘建立两个输入文件file01 和file02:

第五步:[email protected]:~/soft/$ echo “Hello World Bye World” > file01

[email protected]:~/soft/$ echo “Hello Hadoop Goodbye Hadoop” > file02

//在本地磁盘建立两个输入文件file01 和file02。将Hello World Bye World语句和Hello Hadoop Goodbye Hadoop语句分别加到file01文件和file02 文件里面。

第六步:[email protected]:~/hadoop-0.20.1/$ hadoop fs –mkdir input

//在hdfs 中建立一个input 目录

第七步:[email protected]:~/hadoop-0.20.1/$ hadoop fs –copyFromLocal /home/jsj/soft/file0* input

//将file01 和file02 拷贝到hdfs 中。

第八步:[email protected]:~/hadoop-0.20.1/$ hadoop jar hadoop-0.20.1-examples.jar wordcount input output

//执行wordcount。

第九步:[email protected]:~/hadoop-0.20.1/$ hadoop fs -cat output/part-r-00000

//完成之后,查看结果:

Bye 1

Goodbye 1

Hadoop 2

Hello 2

World 2

至此hadoop运行环境已经全部搭建完成。如果要按照此方法搭建请注意每次运行命令的用户和路径。这次搭建过程中还存留的一个问题就是/etc/profile 和 /etc/environment 文件的区别。

时间: 2024-11-05 13:44:38

虚拟机安装的三台Ubuntu系统下搭建Hadoop的相关文章

Ubuntu系统下搭建Python开发环境

之前演示了在Windows中安装Pycharm,很简单.下面介绍一下如何在Ubuntu中安装Pycharm 1.更新Python至3.5.1,执行以下命令: sudo add-apt-repository ppa:fkrull/deadsnakes sudo apt-get update sudo apt-get install python3.5 执行完成后,在shell中输入python3.5,出现如下对话框说明Python3.5更新成功. 2.安装JDK8,在终端中输入如下命令: sudo

在Ubuntu系统上搭建Hadoop 2.x(2.6.2)

官方的中文版的Hadoop快速入门教程已经是很老的版本了,新版的Hadoop目录结构发生了变化,因此一些配置文件的位置也略微调整了,例如新版的hadoop中找不到快速入门中提到的conf目录,另外,网上有很多教程也是关于老版本的.本教程主要是针对Hadoop 2.X版本,在Ubuntu系统上的搭建过程.如果要对各个步骤进行深入理解,还需要参考其他资料. 英文版快速入门:http://hadoop.apache.org/docs/r2.6.2/hadoop-project-dist/hadoop-

Ubuntu系统下搭建C/C++ gcc开发环境

一.使用gcc开发环境 打开终端 ctrl+Alt+T; ubuntu-12.10-desktop-i386默认安装了gcc(GNU C compiler), gcc版本信息如下:[email protected]:~$ gcc --version gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3 Copyright © 2011 Free Software Foundation, Inc. 使用gcc编译C程序的基本步骤如下(以“Hello,world”程序为例

python模块 mysql-python安装(在ubuntu系统下)

直接运行如下命令 sudo pip install MySQL-python 报如下错误 [email protected]:~$ sudo pip install MySQL-python Downloading/unpacking MySQL-python Downloading MySQL-python-1.2.5.zip (108kB): 108kB downloaded Running setup.py (path:/tmp/pip_build_root/MySQL-python/se

ubuntu系统下安装pip3及第三方库的安装

ubuntu系统下会自带python2.x和python3.x坏境,不需要我们去安装.并且ubuntu系统下还会自动帮助我们安装python2.x坏境下的pip安装工具, 但是没有python3.x坏境下的pip3安装工具需要我们手动安装. (1)安装pip3 首先输入命令$:python3-v 查看python3的具体版本,我这里是python3.6. 然后开始安装pip3,输入命令$:sudo apt-get install python3-pip 自己下载并进行安装,完成后,输入命令$:p

Ubuntu系统下OpenDaylight源码编译安装

操作系统:Linux x64 / Ubuntu 14.04 研究领域:软件定义网络SDN (Software-defined Networking) 开发组件:OpenDaylight 声明:转载请注明出处及本文链接 一.环境搭建 1. Java+Apache Maven基本开发环境搭建.详见相应的前面两篇文档: <Linux Ubuntu系统下Java开发环境搭建> <Linux Ubuntu系统下Apache Maven的安装和配置> 2. 安装用来获取OpenDaylight

Ubuntu系统下的Mysql安装与使用

摘要 在本篇博文中,笔者将从基础出发,介绍Mysql在Linux环境下的安装和基本使用命令,仅适用于Mysql初学者,大牛请绕道-- 安装Mysql数据库 这里介绍最最简单的安装方式,至于编译安装,可以下载安装包, ./configure 生成Makefile,然后 make clean,  make , make test,  make install  我想这些命令应该很基本了吧,这里不再敖述. 1. 安装命令 [email protected]:~$ sudo apt-get instal

ubuntu系统下smokping网络监控工具安装配置详解

系统:ubuntu 12.04 1.安装工具及依赖包 sudo apt-get install smokeping curl libauthen-radius-perl libnet-ldap-perl libnet-dns-perl libio-socket-ssl-perl libnet-telnet-perl libsocket6-perl libio-socket-inet6-perl apache2 2.直接启动: [email protected]:/etc/smokeping$ s

Ubuntu系统下安装jdk及AndroidStudio

昨天在家折腾了一天,把电脑上装了个ubuntu系统,并成功搞定jdk及Androidstudio的安装,可以新建项目直接运行,之前没有接触过ubuntu,一天下来勉强把ubuntu上一小部分基本操作搞懂了,随便写个笔记记录下: 1,从http://www.linuxidc.com/Linux/2015-01/112030.htm1下载linux环境的jdk压缩包:jdk-8u45-linux-x64.gz,复制到Linux中的Downloads文件下 2,先在computer下的usr/lib文