hadoop单机模式和伪分布式模式的异同

发布网友

我来回答

4个回答

懂视网

机器mac book,virtualbox4.3.6,virtualbox安装ubunt13.10,在多点分布环境中,配置好一个机器后,clone出另外2个,一共三台机器。 1. Configure the Environment Bash语言: sudo apt-get install -y openjdk-7-jdk openssh-server sudo addgroup hadoop su

机器mac book,virtualbox4.3.6,virtualbox安装ubunt13.10,在多点分布环境中,配置好一个机器后,clone出另外2个,一共三台机器。

1. Configure the Environment

Bash语言: sudo apt-get install -y openjdk-7-jdk openssh-server

sudo addgroup hadoop

sudo adduser —ingroup hadoop hadoop # create password

sudo visudo

hadoop ALL=(ALL) ALL # hadoop user can use sudo

su - hadoop # need password

ssh-keygen -t rsa -P "" # Enter file (/home/hadoop/.ssh/id_rsa)

cat /home/hadoop/.ssh/id_rsa.pub >> /home/hadoop/.ssh/authorized_keys

wget http://apache.fayea.com/apache-mirror/hadoop/common/hadoop-2.3.0/hadoop-2.3.0.tar.gz

tar zxvf hadoop-2.3.0.tar.gz

sudo cp -r hadoop-2.3.0/ /opt

cd /opt

sudo ln -s hadoop-2.3.0 hadoop

sudo chown -R hadoop:hadoop hadoop-2.3.0

sed -i '$a \nexport JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd' hadoop/etc/hadoop/hadoop-env.sh

2. Configure hadoop single Node environment

cp mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

mapreduce.cluster.temp.dir

No description

true

mapreduce.cluster.local.dir

No description

true

vi yarn-site.xml

yarn.resourcemanager.resource-tracker.address

127.0.0.1:8021

host is the hostname of the resource manager and port is the port on which the NodeManagers contact the Resource Manager.

yarn.resourcemanager.scheduler.address

127.0.0.1:8022

host is the hostname of the resourcemanager and port is the port on which the Applications in the cluster talk to the Resource Manager.

yarn.resourcemanager.scheduler.class

org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

In case you do not want to use the default scheduler

yarn.resourcemanager.address

127.0.0.1:8023

the host is the hostname of the ResourceManager and the port is the port on which the clients can talk to the Resource Manager.

yarn.nodemanager.local-dirs

the local directories used by the nodemanager

yarn.nodemanager.address

0.0.0.0:8041

the nodemanagers bind to this port

yarn.nodemanager.resource.memory-mb

10240

the amount of memory on the NodeManager in GB

yarn.nodemanager.remote-app-log-dir

/app-logs

directory on hdfs where the application logs are moved to

yarn.nodemanager.log-dirs

the directories used by Nodemanagers as log directories

yarn.nodemanager.aux-services

mapreduce_shuffle

shuffle service that needs to be set for Map Reduce to run

补充配置:

mapred-site.xml

mapreduce.framework.name

yarn

core-site.xml

fs.defaultFS

hdfs://127.0.0.1:9000

hdfs-site.xml

dfs.replication

1

Bash语言: cd /opt/hadoop

bin/hdfs namenode -format

sbin/hadoop-daemon.sh start namenode

sbin/hadoop-daemon.sh start datanode

sbin/yarn-daemon.sh start resourcemanager

sbin/yarn-daemon.sh start nodemanager

jps

# Run a job on this node

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.3.0.jar pi 5 10

3. Running Problem

14/01/04 05:38:22 INFO ipc.Client: Retrying connect to server: localhost/127.0.0.1:8023. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)

netstat -atnp # found tcp6

Solve:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6 # 0 means ipv6 is on, 1 means off

cat /proc/sys/net/ipv6/conf/lo/disable_ipv6

cat /proc/sys/net/ipv6/conf/default/disable_ipv6

ip a | grep inet6 # have means ipv6 is on

vi /etc/sysctl.conf

net.ipv6.conf.all.disable_ipv6=1

net.ipv6.conf.default.disable_ipv6=1

net.ipv6.conf.lo.disable_ipv6=1

sudo sysctl -p # have the same effect with reboot

sudo /etc/init.d/networking restart

4. Cluster setup

Config /opt/hadoop/etc/hadoop/{hadoop-env.sh, yarn-env.sh}

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd

cd /opt/hadoop

mkdir -p tmp/{data,name} # on every node. name on namenode, data on datanode

vi /etc/hosts # hostname also changed on each node

192.168.1.110 cloud1

192.168.1.112 cloud2

192.168.1.114 cloud3

vi /opt/hadoop/etc/hadoop/slaves

cloud2

cloud3

core-site.xml

fs.defaultFS

hdfs://cloud1:9000

io.file.buffer.size

131072

hadoop.tmp.dir

/opt/hadoop/tmp

A base for other temporary directories.

据说dfs.datanode.data.dir 需要清空,不然datanode不能启动

hdfs-site.xml

dfs.namenode.name.dir

/opt/hadoop/name

dfs.datanode.data.dir

/opt/hadoop/data

dfs.replication

2

yarn-site.xml

yarn.resourcemanager.address

cloud1:8032

ResourceManager host:port for clients to submit jobs.

yarn.resourcemanager.scheduler.address

cloud1:8030

ResourceManager host:port for ApplicationMasters to talk to Scheduler to obtain resources.

yarn.resourcemanager.resource-tracker.address

cloud1:8031

ResourceManager host:port for NodeManagers.

yarn.resourcemanager.admin.address

cloud1:8033

ResourceManager host:port for administrative commands.

yarn.resourcemanager.webapp.address

cloud1:8088

ResourceManager web-ui host:port.

yarn.resourcemanager.scheduler.class

org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.CapacityScheduler

In case you do not want to use the default scheduler

yarn.nodemanager.resource.memory-mb

10240

the amount of memory on the NodeManager in MB

yarn.nodemanager.local-dirs

the local directories used by the nodemanager

yarn.nodemanager.log-dirs

the directories used by Nodemanagers as log directories

yarn.nodemanager.remote-app-log-dir

/app-logs

directory on hdfs where the application logs are moved to

yarn.nodemanager.aux-services

mapreduce_shuffle

shuffle service that needs to be set for Map Reduce to run

yarn.nodemanager.aux-services.mapreduce_shuffle.class

org.apache.hadoop.mapred.ShuffleHandler

-->

mapred-site.xml

mapreduce.framework.name

yarn

mapreduce.jobhistory.address

cloud1:10020

mapreduce.jobhistory.webapp.address

cloud1:19888

cd /opt/hadoop/

bin/hdfs namenode -format

sbin/start-dfs.sh # cloud1 NameNode SecondaryNameNode, cloud2 and cloud3 DataNode

sbin/start-yarn.sh # cloud1 ResourceManager, cloud2 and cloud3 NodeManager

jps

查看集群状态 bin/hdfs dfsadmin -report

查看文件块组成 bin/hdfs fsck / -files -blocks

NameNode查看hdfs http://192.168.1.110:50070

查看RM http://192.168.1.110:8088

bin/hdfs dfs -mkdir /input

bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.3.0.jar randomwriter input

5. Questions:

Q: 14/01/05 23:59:05 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

A: /opt/hadoop/lib/native/ 下面的动态链接库是32bit的,要替换成位的

Q: ssh 登录出现Are you sure you want to continue connecting (yes/no)?解决方法

A: 修改/etc/ssh/ssh_config 将其中的# StrictHostKeyChecking ask 改成 StrictHostKeyChecking no

Q: 两个slaves的DataNode无法加入cluster系统,

A: 把/etc/hosts 里面127.0.1.1或localhost 的内容行删除

热心网友

1、运行模式不同:

单机模式是Hadoop的默认模式。这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。

伪分布模式这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点。

2、配置不同:

单机模式(standalone)首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。

伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。

3、节点交互不同:

单机模式因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapRece程序的应用逻辑。

伪分布模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程交互。

扩展资料:

核心架构:

1、HDFS:

HDFS对外部客户机而言,HDFS就像一个传统的分级文件系统。可以创建、删除、移动或重命名文件,等等。存储在 HDFS 中的文件被分成块,然后将这些块复制到多个计算机中(DataNode)。这与传统的 RAID 架构大不相同。块的大小和复制的块数量在创建文件时由客户机决定。

2、NameNode

NameNode 是一个通常在 HDFS 实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。

3、DataNode

DataNode 也是在 HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。

参考资料来源:百度百科-Hadoop

热心网友

一、相同点:

1、运行机器数相同

单机(非分布式)模式与伪分布式都是在一台单机上运行。

二、不同点:

1、分布式文件系统不同

1)、单机(非分布式)模式,没有分布式文件系统,而是直接读写本地操作系统的文件系统。

2)、伪分布式用不同的Java进程模仿分布式运行中的各类结点: (NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode)。

2、启动进程不同

1)、单机(非分布式)模式下,Hadoop不会启动NameNode、DataNode、JobTracker、TaskTracker等守护进程,Map()和Rece()任务作为同一个进程的不同部分来执行的。

2)、伪分布式模式下,Hadoop启动NameNode、DataNode、JobTracker、TaskTracker这些守护进程都在同一台机器上运行,是相互的Java进程。

3、配置文件处理方式不同

1)、单机(非分布式)模式下,不对配置文件进行修改。

2)、伪分布式模式下,修改3个配置文件:core-site.xml(Hadoop集群的特性,作用于全部进程及客户端)、hdfs-site.xml(配置HDFS集群的工作属性)、mapred-site.xml(配置MapRece集群的属性)。

参考资料

百度百科-Hadoop

热心网友

可以,hadoop安装分为单机模式,伪分布式模式,完全分布式模式。你装成单机模式或者伪分布式模式就可以了。 单机模式:Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com