在 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
机器名
作用
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的用户。
第一步:root@master:~$ adduser jsj
第二步:提示你要求你填写一些信息,可以直接回车。
第三步:设置jsj这个用户的密码(尽量简单一致)。
第四步:root@master:~/home$ chown -R jsj:jsj jsj
//将jsj文件夹的所用者改成jsj用户的。否则我们用adduser jsj创建了jsj用户后,jsj用户不能在自己的主目录下创建文件夹,(如:$ mkdir .ssh)提示没有权限创建文件夹。
5 . 在三台虚拟机上分别配置ssh无密码登录。
第一步:root@master:~$ sudo apt-get install ssh //开启ssh服务。
第二步:jsj@master:~$ mkdir .ssh
在三台虚拟机的/home/jsj目录下都用jsj用户建立一个.ssh目录
第三步:jsj@master:~/.ssh/$ ssh-keygen Ct dsa CP ‘’ Cf ~/.ssh/id_dsa
//这个命令将为masters上的jsj用户生成其密钥对,生成的密钥对id_dsa,id_dsa.pub,默认存储在/home/jsj/.ssh目录下。
第四步:jsj@master:~/.ssh/$ cat id_dsa.pub >> authorized_keys。
//把id_dsa.pub 追加到授权key 里面(当前并没有authorized_keys文件是你也可以直接使用cp 命令)。至此无密码登录到本机已经配置好了。可以使用 $ ssh localhost 命令测试一下。第一次登录时要输入yes,之后就不用了。
第五步:jsj@master:~/.ssh/$ scp id_dsa.pub jsj@slave1:/home/jsj/.ssh/
//将id_dsa.pub 文件传送到slave1 这台虚拟机上。slave2 同理。
第六步:到slave1 这台虚拟机上执行第四步的操作。slave2 同理。至此master就可以无密码登录到slave1 和slave2 上了。如果想要slave1 和slave2 都可以无密码登录到master上必须在slave1 和salve2 上也操作第三部生成自己的密钥对而且要将密钥对追加到三台机器的authorized_keys文件里。
至此各个机器上的SSH配置已经完成,可以测试一下了,比如master向slave1发起ssh连接
jsj@mater:~/.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目录下
第二步:root@master:~/home/jsj$ chmod u+x jdk-6u13-linux-i586.bin
//将bin文件修改成可执行文件。
第三步:root@master:~/home/jsj/$ ./jdk-6u13-linux-i586.bin
//运行安装文件
第四步:root@master:~/$ 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
然后root@master:~/$ source /etc/profile 是文件内容生效。
第五步:重启电脑,在任何用户中 $ java Cversion 如果显示如下信息:
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 Cr 将jdk1.6.0_13文件夹拷到其它两台虚拟机上,然后配置环境变量就OK了。
至此jdk安装成功。注意安装jdk时容易出现的一个问题:第一是安装完成后只有安装时的登录用户可用java其它用户不可用。这样的话你要设置一下/etc/environment 文件。设置方法网上搜索就可以。
7 . 在三台虚拟机上分别安装Hadoop-0.20.1
第一步:将hadoop-0.20.1.tar.gz文件拷贝到/home/jsj目录下。
第二步:root@master:~/home/jsj/$ tar -xzvf hadoop-0.20.1.tar.gz
//将文件解压。
第三步:root@master:~/home/jsj/$ chown jsj:jsj hadoop-0.20.1
//将文件所有者改成jsj。
第四步:root@master:~/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 文件。
root@master:~/home/jsj/hadoop-0.20.1/conf/$ gedit hadoop-env.sh
进入文件加入如下信息。
export JAVA_HOME=/home/jsj/jdk1.6.0_13
root@master:~/home/jsj/hadoop-0.20.1/conf/$ gedit masters
进入文件加入如下信息。
192.168.128.2
root@master:~/home/jsj/hadoop-0.20.1/conf/$ gedit slaves
进入文件加入如下信息。
192.168.128.3
192.168.128.4
root@master:~/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>
root@master:~/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>
root@master:~/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>
第六步:jsj@master:~/$ scp hadoop-0.20.1 jsj@slave1:/home/jsj/hadoop-0.20.1
//将文件hadoop-0.20.1拷贝到其它两个虚拟机上就可以了。
至此hadoop安装完成。注意一个问题:运行时出现找不到主函数的错误,说明profile环境变量的设置没有起效。可以在/etc/environment 文件里加入一些信息。具体信息网上搜索。
8 .运行hadoop自带的例程 wordcount。
第一步:jsj@master:~/hadoop-0.20.1/bin/$ hadoop namenode Cformat
//格式化文件系统,新建一个文件系统。
第二步:jsj@master:~/hadoop-0.20.1/$ start-all.sh
//启动hadoop的所有守护进程。
第四步:jsj@master:~/hadoop-0.20.1/$ jps
//查看进程,master虚拟机上的结果。
在slave1 和 slave2 虚拟机上 jsj@slave1:~/hadoop-0.20.1/$ jps
第四步:(1)先在本地磁盘建立两个输入文件file01 和file02:
第五步:jsj@master:~/soft/$ echo “Hello World Bye World” > file01
jsj@master:~/soft/$ echo “Hello Hadoop Goodbye Hadoop” > file02
//在本地磁盘建立两个输入文件file01 和file02。将Hello World Bye World语句和Hello Hadoop Goodbye Hadoop语句分别加到file01文件和file02 文件里面。
第六步:jsj@master:~/hadoop-0.20.1/$ hadoop fs Cmkdir input
//在hdfs 中建立一个input 目录
第七步:jsj@master:~/hadoop-0.20.1/$ hadoop fs CcopyFromLocal /home/jsj/soft/file0* input
//将file01 和file02 拷贝到hdfs 中。
第八步:jsj@master:~/hadoop-0.20.1/$ hadoop jar hadoop-0.20.1-examples.jar wordcount input output
//执行wordcount。
第九步:jsj@master:~/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 文件的区别。
相关推荐
在开始搭建Hadoop环境之前,需要安装Ubuntu操作系统。作者使用的是Ubuntu 11.04 Server版本,可以在虚拟机上安装,然后克隆多份以满足需求。安装完成后,需要配置主机名和IP地址,并设置SSH服务。 部分二:Hadoop...
- 在三台Ubuntu机器上安装JDK 1.6或更高版本。 - 设置环境变量,确保Hadoop能够正确识别JDK路径。 ###### 3.3.2 安装SSH免密登录 - 在Master节点上生成SSH密钥。 - 将SSH公钥复制到其他两台Slave节点,实现SSH免密...
这个过程涵盖了从搭建虚拟环境到安装必要的软件,以及最终配置Hadoop分布式文件系统(HDFS)和MapReduce服务。 首先,我们需要在Windows 7上安装VMware虚拟机,并创建三台运行Ubuntu 10.10的虚拟机。每台虚拟机的IP...
在本教程中,我们将详细介绍如何在Windows系统下搭建Hadoop环境,内容涉及虚拟机的安装、基础环境配置以及Hadoop集群的具体搭建步骤。适合初学者跟随本教程一步步进行操作。 首先,搭建Hadoop环境需要一台高性能...
本文将详细讲解如何搭建一个Hadoop集群,包括虚拟机安装、环境配置、Hadoop和Zookeeper的安装及集群验证。以下是对每个步骤的详细说明: 一、虚拟机安装与配置 在搭建Hadoop集群之前,首先需要准备多台虚拟机。可以...
本文旨在提供一个详尽的指南,帮助用户在Ubuntu 16.04环境下成功搭建Hadoop 2.6.5的完全分布式集群。 #### 二、准备工作 在正式开始配置之前,需要完成一系列基础准备工作: 1. **下载安装VMware**:用于创建...
4. **安装环境准备**:首先,所有节点需要安装相同版本的操作系统,如Ubuntu或CentOS,并确保系统更新至最新。安装Java运行环境(JRE)和Java开发工具(JDK),设置好环境变量。 5. **安装Hadoop**:下载Hadoop的...
这里记录了Hadoop2.2.0版本多节点集群安装过程,并进行了基本配置、启动运行和测试了一个单词统计例子。 环境准备 在开始安装Hadoop之前,需要准备好虚拟机环境。这里使用了VMware Player 4.0.3和Ubuntu 12.04-64...
在开始Hadoop的安装前,你需要准备三台虚拟机。这些虚拟机可以通过VMware等虚拟化软件创建。首先,我们需要在一台机器上安装基础操作系统,这台机器将作为Master节点。通常,Linux发行版如Ubuntu或CentOS是首选,...
本文档旨在提供一份详细的指南,用于在 Ubuntu 下搭建 Spark + Hadoop 的环境。通过本教程,您将能够掌握如何在多台虚拟机上安装并配置 JDK、Hadoop 和 Spark,以及如何设置必要的网络配置以确保集群间的通信...
【实验一Hadoop大数据集群搭建】是一门针对大数据导论课程的实践操作,旨在让学生掌握如何在Ubuntu或CentOS操作系统上构建Hadoop集群。实验详细分解了五个主要步骤,涵盖了虚拟机配置、Hadoop和JDK的安装、集群克隆...
本篇主要介绍如何在虚拟环境中搭建Hadoop集群,涉及到虚拟机的选择、操作系统的选择、Java的安装以及Hadoop的初步部署。 首先,我们看到使用的是VirtualBox作为虚拟机软件,它是一款功能强大的开源虚拟化解决方案,...
三台PC,每台均安装Windows操作系统。 2. Linux虚拟机,建议使用Ubuntu 8.04。 3. VMware Workstation v5.0。 4. Hadoop安装包。 5. Java安装包。 6. Cygwin(用于Windows主机上的一些操作)。 - **实验准备...
本文将详细介绍如何在三节点环境下安装和配置Hadoop 2.x 集群。 一、环境准备 在开始Hadoop的安装前,你需要确保你的硬件环境满足基本需求,包括足够的内存、硬盘空间以及至少三台服务器或虚拟机。每台节点应安装...
### Hadoop-0.20.2安装与配置详解 #### 一、Hadoop-0.20.2概述 Hadoop是一款支持大数据处理的开源软件框架,它能够高效地处理PB级别的数据集。Hadoop-0.20.2版本作为早期的一个稳定版本,在很多场景中仍然具有重要...
在本例中,使用了三台运行Ubuntu 10.0.4的虚拟机搭建了一个Hadoop分布式集群。集群包括一个NameNode(hadoop1,IP: 192.168.201.104)和两个DataNodes(hadoop2, IP: 192.168.201.54 和 hadoop3, IP: 192.168.201....
在Ubuntu 16.4操作系统下搭建Hadoop完全分布式环境是一项技术性较强的任务,涉及到多个步骤和配置。本文将详细讲解这一过程,帮助你成功构建一个高效稳定的Hadoop集群。 首先,我们需要准备至少三台虚拟机,分别...
在部署Hadoop 2.X集群时,我们通常会在多台服务器上进行,这里以Ubuntu和CentOS操作系统为例,通过虚拟机模拟三台服务器来进行详细步骤的讲解。 首先,我们需要准备三台虚拟机,并且为每台虚拟机分配独立的静态IP...