Hadoop分别从三个角度将主机划分为两种角色。第一,划分为master和slave,即主人与奴隶;第二,从HDFS的角度,将主机划分为NameNode和DataNode(在分布式文件系统中,目录的管理很重要,管理目录的就相当于主人,而NameNode就是目录管理者);第三,从MapReduce的角度,将主机划分为JobTracker和TaskTracker(一个job经常被划分为多个task,从这个角度不难理解它们之间的关系)。
Hadoop有官方发行版与cloudera版,其中cloudera版是Hadoop的商用版本,这里先介绍Hadoop官方发行版的安装方法。
Hadoop有三种运行方式:单节点方式、单机伪分布方式与集群方式。乍看之下,前两种方式并不能体现云计算的优势,在实际应用中并没有什么意义,但是在程序的测试与调试过程中,它们还是很有意义的。
由于项目的需要,最近研究了cloudera版和发行版的安装,cloudera的确是商用,安装和管理方便,但由于机器短缺无法进行很好的实验,执行一个简单的任务都卡半天。最后就只能通过发行版的单机伪分布方式来当练手。
当前Hadoop稳定版的版本是2.2.0(
稳定版的下载地址),本次就以这个版本为例子来进行安装和实验。在安装Hadoop前,需要先安装JDK(JDK6或更高版本,但建议使用JDK6,因为并不是所有的软件都支持1.7版本),SSH免密码登录(不配置,则在启动hadoop时会提示输入密码)。
JDK6安装(使用Root用户操作)
#下载JDK6包到/opt目录下(jdk-6u45-linux-x64-1.bin)
#解压jdk
cd /opt
chmod u+x jdk-6u45-linux-x64-1.bin
./jdk-6u45-linux-x64-1.bin
#配置java环境变量
vi /etc/profile
#################################
export JAVA_HOME=/opt/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
#################################
source /etc/profile
新增hadoop用户
adduser hadoop
su - hadoop #切换用户
SSH免密码登录(使用hadoop用户)
ssh-keygen -t rsa
#(连续三次回车,即在本地生成了公钥和私钥,不设置密码)
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#(将id_rsa.pub的内容追加到 authorized_keys 中)
主机名的配置
vi /etc/hostname
#################
node1
#################
vi /etc/hosts
#################
127.0.0.1 node1
#################
hostname node1
Hadoop下载和解压
wget http://mirror.bit.edu.cn/apache/hadoop/common/stable/hadoop-2.2.0.tar.gz
tar -zxvf hadoop-2.2.0.tar.gz
Hadoop环境变量的配置
vi .profile
##################追加以下内容##################
export HADOOP_HOME=/home/hadoop/hadoop-2.2.0
export PATH=$PATH:$HADOOP_HOME/bin
##############################################
source .profile
vi hadoop-2.2.0/etc/hadoop/hadoop-env.sh
###############在顶部追加以下内容###############
export JAVA_HOME=/opt/jdk1.6.0_45
#############################################
cd hadoop-2.2.0
mkdir names
mkdir datas
hadoop-2.2.0/etc/hadoop/core-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://node1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.2.0/tmp</value>
</property>
</configuration>
hadoop-2.2.0/etc/hadoop/hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/home/hadoop/hadoop-2.2.0/names/name1</value>
<description> </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/home/hadoop/hadoop-2.2.0/datas/data1</value>
<description> </description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
hadoop-2.2.0/etc/hadoop/mapred-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>node1:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/hadoop/hadoop-2.2.0/tmp</value>
</property>
</configuration>
格式化Hadoop文件系统HDFS
bin/hadoop namenode -format
启动Hadoop
sbin/start-all.sh
验证Hadoop是否启动成功
netstat -tlnp #查看监听端口
jps #查看java进程
#打开Web管理界面 http://node1:8088/
准备测试数据
mkdir txt
vi txt/01.txt
##########内容是以下内容#########
this is is a first txt.
today is a new day.
my name is ding xiaoyang.
haha 丁小样
##############################
vi txt/02.txt
##########内容是以下内容#########
one two three four five six.
today is a good day.
my name is ding xiaoyang.
haha 丁小样
##############################
vi txt/03.txt
##########内容是以下内容#########
this is is a first txt.
today is a new day.
my name is ding xiaoyang.
haha 丁小样
##############################
#测试Hadoop
#创建文件目录
bin/hdfs dfs -mkdir /tmp
#拷贝文件到文件目录
bin/hdfs dfs -copyFromLocal txt/*.txt /tmp
#执行测试
bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount /tmp/ /tmp-output
#查看测试结果
bin/hdfs dfs -cat /tmp-output/*
###########结果如下###########
a 5
day. 3
ding 3
first 2
five 1
four 1
good 1
haha 3
is 10
my 3
name 3
new 2
one 1
six. 1
this 2
three 1
today 3
two 1
txt. 2
xiaoyang. 3
丁小样 3
######################
分享到:
相关推荐
- **定义**:Hadoop可以在单个节点上以伪分布式模式运行,这意味着虽然只有一个物理节点,但是不同的Hadoop组件(如NameNode和DataNode)会分别运行在不同的Java进程中。 - **特点**: - 模拟了分布式环境。 - 有...
### Hadoop伪分布式安装知识点详解 #### 一、Hadoop伪分布式概述 Hadoop是一种能够处理海量数据的大规模分布式计算框架。它通过将任务分解到多个计算机节点上并行处理来提高数据处理效率。Hadoop支持多种运行模式,...
7. 在 Ubuntu 操作系统上搭建 Hadoop 单节点需要完成环境准备、软件安装和配置过程。 8. 配置 SSH 免密钥登录可以确保可以无需密码登录。 9. 修改配置文件,包括 core-site.xml 和其他文件,是搭建 Hadoop 单节点的...
【Hadoop 安装部署完全分布式】 在搭建Hadoop完全分布式集群时,我们需要遵循一系列步骤,确保所有组件正确配置并协同工作。以下是基于三台机器的集群安装部署过程的详细说明: 1. **所需软件及版本** - Hadoop: ...
本教程针对的是在CentOS 6.4操作系统上安装Hadoop 2.6.0的伪分布式配置,这种配置方式适合初学者和开发者进行本地测试和学习,它在一个单一节点上模拟分布式环境。 **环境准备** 在开始安装前,确保你的系统是...
本篇将详细介绍如何在本地计算机上搭建Hadoop的伪分布式集群环境,这非常适合初学者进行学习和测试。 首先,我们需要了解Hadoop的组成部分。Hadoop主要由两个核心组件构成:HDFS(Hadoop Distributed File System)...
【Hadoop单机伪分布式搭建教程】 一、前提条件 在搭建Hadoop单机伪分布式环境之前,确保已经安装了Java Development Kit (JDK)...在实际生产环境中,通常会采用多节点的完全分布式部署,以实现更高的可用性和扩展性。
【Hadoop伪分布式安装详解】 Hadoop,由Apache基金会开发,是一种分布式系统基础设施,旨在处理和存储大量数据。它的核心设计包含两个主要...在后续的开发和调试过程中,你可以在此基础上逐步过渡到完全分布式部署。
【标题】: "Hadoop伪分布式模式的配置与安装...这种模式对于学习Hadoop的原理和操作提供了方便,同时也为实际的分布式部署打下了基础。记得在生产环境中,你可能需要根据实际情况调整配置,如内存分配、安全设置等。
### Hadoop单节点部署指导知识点详解 #### 一、实验目的 - **理解Hadoop原理机制**:深入了解Hadoop的工作原理及其背后的技术架构。 - **熟悉Hadoop集群体系结构**:掌握Hadoop集群中各组成部分的功能及其交互方式...
用户可以在单节点模式下快速部署和测试 Hadoop,降低了学习和部署的成本。 前提条件 在安装和配置 Hadoop 之前,需要确保机器上已经安装了以下软件: 1. JAVA 1.6.x:Hadoop 需要 JAVA 1.6.x 或更高版本来运行。 ...
Hadoop伪分布式部署文档是指在单台机器上模拟分布式Hadoop集群的部署文档,包括服务器伪分布式部署、本地Hadoop开发环境部署、Eclipse远程连接Hadoop服务器等内容。下面是该文档的详细解释: 首先,需要安装JDK,...
伪分布式安装是单机安装的一种方式,它允许你在一台机器上模拟多节点集群的行为,这对于学习和测试Hadoop功能非常有用。 **二、Hadoop安装手册** Hadoop的官方安装指南提供了两种单机安装模式:“standalone”...
2. 伪分布式模式:在一台机器上模拟多节点环境,每个Hadoop组件(如NameNode、DataNode、ResourceManager、NodeManager等)都以独立Java进程的方式运行。配置文件需修改`etc/hadoop/hadoop-env.sh`以指定Java路径,...
本文将详细介绍Hadoop 2.x版本在完全分布式环境下的安装与部署过程。 首先,搭建Hadoop完全分布式环境需要准备硬件环境。在这个案例中,需要准备三台安装有CentOS操作系统的机器。三台节点机需保证相互之间可以被...
配置完全分布式涉及的文件与伪分布模式类似,但需要更多的系统规划和网络配置,例如,确保节点间通信的`hadoop-env.sh`中的`JAVA_HOME`设置,`slaves`文件中列出所有的DataNode节点,以及`hdfs-site.xml`中的`dfs....