Hadoop模式介绍-独立,伪分布式,分布式

了解了什么是Hadoop之后,让我们在单机上启动Hadoop:

这篇文章包含在ubuntu上安装Hadoop的说明。 这是Hadoop安装的快速分步教程。 在这里,您将获得以独立模式 (单节点集群)安装Hadoop所需的所有命令及其说明,   伪分布式模式下的Hadoop (单节点群集)和分布式模式下的Hadoop (多节点群集)。

本教程的主要目标是启动并运行“简单的” Hadoop安装,以便您可以试用该软件并了解更多信息。

本教程已经过测试:

  • Ubuntu Linux(10.04 LTS)
  • Hadoop 0.20.2

先决条件:
安装Java:
推荐将Java 1.6.x(Sun Java或Open Java)用于Hadoop

1.将Canonical合作伙伴存储库添加到您的apt存储库中:

$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"

2.更新源列表

$ sudo apt-get update

3.安装sun-java6-jdk

$ sudo apt-get install sun-java6-jdk

4.安装后,快速检查Sun的JDK是否正确设置:

user@ubuntu:~# java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)

添加专用的Hadoop系统用户:
我们将使用专用的Hadoop用户帐户来运行Hadoop。 虽然这不是必需的,但建议这样做,因为它有助于将Hadoop安装与同一计算机上运行的其他软件应用程序和用户帐户分开(请考虑:安全性,权限,备份等)

$ sudo adduser hadoop_admin

登录到hadoop_admin用户:

user@ubuntu:~$ su - hadoop_admin

Hadoop安装:

$ cd /usr/local
$ sudo tar xzf hadoop-0.20.2.tar.gz
$ sudo chown -R hadoop_admin /usr/local/hadoop-0.20.2

定义JAVA_HOME:

编辑配置文件/usr/local/hadoop-0.20.2/conf/hadoop-env.sh并设置JAVA_HOME:
导出JAVA_HOME =要成为Java安装根目录的路径(例如:/ usr / lib / jvm / java-6-sun)

$ vi conf/hadoop-env.sh

进入您的hadoop安装目录(HADOOP_HOME,即/usr/local/hadoop-0.20.2/):

$ bin/hadoop

它将生成以下输出:

Usage: hadoop [--config confdir] COMMAND
where COMMAND is one of:
namenode -format                format the DFS filesystem
secondarynamenode               run the DFS secondary namenode
namenode                        run the DFS namenode
datanode                        run a DFS datanode
dfsadmin                        run a DFS admin client
mradmin                         run a Map-Reduce admin client
fsck                            run a DFS filesystem checking utility
fs                              run a generic filesystem user client
balancer                        run a cluster balancing utility
jobtracker                      run the MapReduce job Tracker node
pipes                           run a Pipes job
tasktracker                     run a MapReduce task Tracker node
job                             manipulate MapReduce jobs
queue                           get information regarding JobQueues
version                         print the version
jar <jar>                       run a jar file
distcp <srcurl>                 <desturl> copy file or directories recursively
archive -archiveName NAME <src>*<dest> create a hadoop archive
daemonlog                       get/set the log level for each daemon
or
CLASSNAME                       run the class named CLASSNAME
Most commands print help when invoked w/o parameters:

独立模式下的Hadoop安装已完成……。!!!!!!!

现在运行一些示例:
1.运行经典Pi示例:

$ bin/hadoop jar hadoop-*-examples.jar pi 10 100

2.运行grep示例:

$ mkdir input
$ cp conf/*.xml input
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+' 
$ cat output/*

3.运行字数示例:

$ mkdir inputwords
$ cp conf/*.xml inputwords
$ bin/hadoop jar hadoop-*-examples.jar wordcount inputwords outputwords

如果发现任何错误,请访问Hadoop故障排除

在独立模式下运行Hadoop之后,让我们以伪分布式模式 (单节点集群)启动Hadoop

配置SSH:
Hadoop需要SSH访问权限来管理其节点,即远程计算机和本地计算机。 因此,对于我们的Hadoop单节点设置,我们需要为hadoop_admin用户配置对localhost的SSH访问

user@ubuntu:~$ su - hadoop_admin   
hadoop_admin@ubuntu:~$ sudo apt-get install openssh-server openssh-clienthadoop_admin@ubuntu:~$ ssh-keygen -t rsa -P ""
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop_admin/.ssh/id_rsa):
Created directory '/home/hadoop_admin/.ssh'.
Your identification has been saved in /home/hadoop_admin/.ssh/id_rsa.
Your public key has been saved in /home/hadoop_admin/.ssh/id_rsa.pub.
The key fingerprint is:
9b:82:ea:58:b4:e0:35:d7:ff:19:66:a6:ef:ae:0e:d2 hadoop_admin@ubuntu
The key's randomart image is:
[...snipp...]
hadoop_admin@ubuntu:~$

启用S​​SH访问本地计算机并使用ssh连接

$ cat $HOME/.ssh/id_rsa.pub >> $HOME/.ssh/authorized_keys
$ ssh localhost
The authenticity of host 'localhost (::1)' can't be established.
RSA key fingerprint is e7:89:26:49:ae:02:30:eb:1d:75:4f:bb:44:f9:36:29.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (RSA) to the list of known hosts.
Linux ubuntu 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 30 13:27:30 UTC 2010 i686 GNU/Linux
Ubuntu 10.04 LTS
[...snipp...]
$

编辑配置文件:

$ vi conf/core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property><property>
<name>hadoop.tmp.dir</name>
<value>/tmp/hadoop-${user.name}</value>
</property></configuration>

如果提供其他路径,请确保该目录中的hadoop_admin用户具有读写权限(sudo chown hadoop_admin / your / path)

$ vi conf/hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
$ vi conf/mapred.xml
<configuration>
<property>
<name>mapred.job.tracker</name> 
<value>localhost:9001</value>
</property>
</configuration>

格式化名称节点:

$ /hadoop/bin/hadoop namenode -format

它将生成以下输出:

$ bin/hadoop namenode -format
10/05/10 16:59:56 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = ubuntu/127.0.1.1
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 0.20.2
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.20 -r 911707; compiled by 'chrisdo' on Fri Feb 19 08:07:34 UTC 2010
************************************************************/
10/05/10 16:59:56 INFO namenode.FSNamesystem: fsOwner=hadoop_admin,hadoop
10/05/08 16:59:56 INFO namenode.FSNamesystem: supergroup=supergroup
10/05/08 16:59:56 INFO namenode.FSNamesystem: isPermissionEnabled=true
10/05/08 16:59:56 INFO common.Storage: Image file of size 96 saved in 0 seconds.
10/05/08 16:59:57 INFO common.Storage: Storage directory .../.../dfs/name has been successfully formatted.
10/05/08 16:59:57 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
************************************************************/
$

启动单节点集群:

$ /bin/start-all.sh

它将生成以下输出:

hadoop_admin@ubuntu:/usr/local/hadoop$ bin/start-all.sh
starting namenode, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-namenode-ubuntu.out
localhost: starting datanode, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-datanode-ubuntu.out
localhost: starting secondarynamenode, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-secondarynamenode-ubuntu.out
starting jobtracker, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-jobtracker-ubuntu.out
localhost: starting tasktracker, logging to /usr/local/hadoop/bin/../logs/hadoop-hadoop-tasktracker-ubuntu.out
hadoop_admin@ubuntu:/usr/local/hadoop$

检查jps是否正在运行预期的Hadoop进程

$ jps
14799 NameNode
14977 SecondaryNameNode 
15183 DataNode
15596 JobTracker
15897 TaskTracker

伪分布式模式下的Hadoop安装已完成……。!!!!!!!

停止单节点集群:

$ /bin/stop-all.sh

它将生成以下输出:

$ bin/stop-all.sh
stopping jobtracker
localhost: stopping tasktracker
stopping namenode
localhost: stopping datanode
localhost: stopping secondarynamenode
$

您可以在oder中运行与独立模式下相同的示例集,以检查安装是否成功

基于Web的NameNode接口
http://本地主机:50070
基于Web的JobTracker界面 http://本地主机:50030 基于Web的TaskTracker界面 http://本地主机:50060

在以独立模式运行Hadoop之后,让我们以分布式模式 (多节点集群)启动Hadoop。

先决条件:在分布式模式下启动hadoop之前,必须在伪分布式模式下设置hadoop,并且至少需要两台计算机,其中一台用于主服务器,另一台用于从服务器(您可以在一台计算机上创建多台虚拟机)。

命令 描述
$ bin / stop-all.sh 在以分布式模式启动hadoop之前,请先停止每个集群。

在群集中的所有计算机(主服务器和从服务器)上运行此cmd  

$ vi / etc / hosts 然后输入
IP添加主机(例如:192.168.0.1主机)
IP添加从站(例如:192.168.0.2从站)

在群集中的所有计算机(主服务器和从服务器)上运行此cmd  

$ ssh-copy-id -i $ HOME / .ssh / id_rsa.pub从属 设置无密码的SSH
在所有计算机上,您必须使用相同的用户名登录

在master上运行此cmd

要么
$ cat .ssh / id_rsa.pub

然后将其内容复制到
从属服务器的$ .ssh / authorized_keys文件(您希望在不提示输入密码的情况下SSH登录的系统)

我们还可以手动设置无密码的ssh
$ vi conf / master
然后输入master
conf / masters文件定义了我们的多节点集群的名称节点

在master上运行此cmd  

$ vi conf /从属
然后输入slave
此conf / slaves文件列出了主机(每行一个),将在其中运行Hadoop从属守护程序(数据节点和任务跟踪器)。

在群集中的所有计算机(主服务器和从服务器)上运行此cmd    

$ vi conf / core-site.xml
然后输入:
<属性>
<name> fs.default.name </ name>

<value> hdfs:// master:54310 </ value>

</ property>
编辑配置文件core-site.xml

在群集中的所有计算机(主服务器和从服务器)上运行此cmd  

$ vi conf / mapred-site.xml
然后输入:
<属性>
<name> mapred.job.tracker </ name>

<value> master:54311 </ value>

</ property>
编辑配置文件mapred-site.xml

在群集中的所有计算机(主服务器和从服务器)上运行此cmd  

$ vi conf / hdfs-site.xml
然后输入:

<属性>
<name> dfs.replication </ name>

<value> 2 </ value> </ property>

编辑配置文件hdfs-site.xml

在群集中的所有计算机(主服务器和从服务器)上运行此cmd

$ vi conf / mapred-site.xml
然后输入:
<属性>
<name> mapred.local.dir </ name>

<value> $ {hadoop.tmp.dir} / mapred / local </ value>
</ property>

<属性>
<name> mapred.map.tasks </ name>

<value> 20 </ value>

</ property>
<属性>
<name> mapred.reduce.tasks </ name>

<value> 2 </ value>
</ property>

编辑配置文件mapred-site.xml

在master上运行此cmd

$ bin / start-dfs.sh

启动多节点集群。 首先,启动HDFS守护程序。 namenode守护程序在主服务器上启动,而datanode守护程序在所有从属服务器上启动

在master上运行此cmd    

$ jps

它应该给出如下输出:
14799 NameNode
15314秒
16977 secondaryNameNode

在master上运行此cmd

$ jps

它应该给出如下输出:
15183数据节点
15616 Jps

在所有奴隶上运行此cmd

$ bin / start-mapred.sh

MapReduce守护程序已启动:jobtracker在主服务器上启动,而tasktracker守护程序在所有从服务器上启动

在master上运行此cmd  

$ jps

它应该给出如下输出:
16017跳
14799 NameNode
15596 JobTracker
14977 SecondaryNameNode

在master上运行此cmd  

$ jps
它应该给出如下输出:
15183数据节点
15897 TaskTracker
16284每秒

在所有奴隶上运行此cmd  

恭喜,Hadoop安装完成
http:// localhost:50070 / 基于Web的名称节点界面
http:// localhost:50030 / 基于Web的作业跟踪器界面
现在运行一些示例
$ bin / hadoop jar hadoop-*-examples.jar pi 10 100 运行pi示例
$ bin / hadoop dfs -mkdir输入

$ bin / hadoop dfs -put conf输入

$ bin / hadoop jar hadoop-*-examples.jar grep输入输出'dfs [az。] +'

$ bin / hadoop dfs -cat输出/ *

运行grep示例
$ bin / hadoop dfs -mkdir输入字

$ bin / hadoop dfs -put conf输入字

$ bin / hadoop jar hadoop-*-examples.jar字数输入词输出词

$ bin / hadoop dfs -cat outputwords / *

运行wordcount示例
$ bin / stop-mapred.sh
$ bin / stop-dfs.sh
阻止恶魔

在master上运行此cmd   

参考:来自JCG合作伙伴的 独立模式下的 Hadoop,伪分布式模式下的 Hadoop和分布式模式 下的 Hadoop   Rahul Patodi在高性能计算博客上。


翻译自: https://www.javacodegeeks.com/2012/01/hadoop-modes-explained-standalone.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373436.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

apk反编译方式

一、Apk反编译得到Java源代码 下载上述反编译工具包&#xff0c;打开apk2java目录下的dex2jar-0.0.9.9文件夹&#xff0c;内含apk反编译成java源码工具&#xff0c;以及源码查看工具。 apk反编译工具dex2jar&#xff0c;是将apk中的classes.dex转化成jar文件 源码查看工具jdgui…

优化Hibernate所鼓励的7大措施

优化Hibernate所鼓励的7大措施&#xff1a; 1.尽量使用many-to-one&#xff0c;避免使用单项one-to-many2.灵活使用单向one-to-many3.不用一对一&#xff0c;使用多对一代替一对一4.配置对象缓存&#xff0c;不使用集合缓存5.一对多使用Bag 多对一使用Set6.继承使用显示多态 HQ…

如何用c 控制mysql数据库_用C语言操作MySQL数据库

函数描述mysql_affected_rows()返回上次UPDATE、DELETE或INSERT查询更改&#xff0f;删除&#xff0f;插入的行数。mysql_autocommit()切换autocommit模式&#xff0c;ON/OFFmysql_change_user()更改打开连接上的用户和数据库。mysql_charset_name()返回用于连接的默认字符集的…

数据结构(RMQ):POJ 3624 Balanced Lineup

Balanced LineupDescription For the daily milking, Farmer Johns N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with some of the cows. To keep things simple, he will take a conti…

Apache Thrift快速入门教程

Thrift是一种跨语言RPC框架&#xff0c;最初是在Facebook上开发的&#xff0c;现在作为Apache项目开源。 这篇文章将描述如何以不同的模式&#xff08;例如阻塞&#xff0c;非阻塞和异步&#xff09;编写Thrift服务和客户端。 &#xff08;我觉得后两种模式的文档较少&#xff…

数组拆分为新数组

package com.classes;//已知数组a&#xff0c;将奇数位置元素存到b数组中&#xff0c;偶数位置元素存到c数组中public class Shuzu1118_4 { public static void main(String[] args) { int [] a{3,6,9,1,4,7,2,5,8}; int [] b; //定义数组b int [] c; //定义数组c//先找出数组…

java数组交集_java数组的交集和并集

前两天给我出了一道题&#xff0c;求数组的并集和交集&#xff0c;然后我试着写一下&#xff0c;很尴尬&#xff0c;由于长时间没有写过代码&#xff0c;一开始数组是如何定义的给忘了。当时我说了我的思路&#xff0c;不过也是很low的做法&#xff0c;查阅网上的一些资料&…

ADF声明性组件示例

在我以前的文章中&#xff0c;我答应展示如何为智能值列表创建ADF声明性组件。 因此&#xff0c;我将创建一个包含三个元素的组件&#xff1a;标签&#xff0c;输入文本和值的组合框列表。 那很容易。 我在工作空间中创建了一个单独的ADF ViewController项目&#xff1a; 在此项…

VS2015 安装包缺失(联网安装失败)问题解决

Win7 x86 测试可行 * 如果前面有尝试过安装不成功, 一定要用卸载程序删除已安装的部分,否则会出乱子. 1. 或者是用虚拟光驱加载ISO, 或者是解压到硬盘上, 都没有关系. 2. 用管理员权限启动CMD控制台, 进入VS2015 安装盘的根目录 (vs_enterprise.exe 所在的目录). 3. 执行命令 …

java蓝桥暑假班_Java实现 蓝桥杯VIP 算法提高 班级排名

算法提高 班级排名时间限制&#xff1a;1.0s 内存限制&#xff1a;256.0MB问题描述达达在陶陶的影响下&#xff0c;也对学习慢慢的产生了兴趣。他在每次考试之后&#xff0c;都会追着老师问&#xff0c;自己在班级的总名次是多少。考试一多&#xff0c;老师也不耐烦了&#xff…

$.ajax所犯的错误。success后面不执行

$.ajax({ type: post, url: ../AshxHandler/HandlerAddPhoto.ashx, data: { clientPath: photoName }, dataType: text, cache: false, success: function (data) { alert(1); }, error: function (XMLHttpRequest, textStatus, errorThrown) { alert(上传图片出现错误&#xf…

WhateverOrigin –与Heroku和Play对抗相同的原产地政策! 构架

不久前&#xff0c;我在编码 Bitcoin Pie时发现需要克服臭名昭著的Same Origin Policy &#xff0c;该政策限制了运行在客户端浏览器上的javascript可以访问的域。 通过Stack Overflow&#xff0c;我找到了一个名为Any Origin的站点&#xff0c;这基本上是无需设置专用服务器即…

Solr集群更新配置的方式

solr集群中配置文件是经常更新的&#xff0c;频率最高的也就是schema.xml和solrconfig.xml这两个配置文件了&#xff0c;对于更新配置文件之前&#xff0c;我们先了解一下集群项目结构 由于在集群模式下&#xff0c;solrconfig.xml和schema.xml等配置文件都由Zookeeper集群管理…

java文本框双击可编辑_java swing 文本域双击变为可编辑

java swing如何实现文本域双击变为可编辑呢?给文本域添加鼠标事件监听程序即可:resultTA1new AssistPopupTextArea();resultTA1.setEditable(false);resultTA1.setLineWrap(true);resultTA1.setWrapStyleWord(true);resultTA1.addMouseListener(new MouseAdapter() {Overridep…

点击出现黑色背景的解决

-webkit-tap-highlight-color:rgba(0,0,0,0);转载于:https://www.cnblogs.com/luckyXcc/p/6085582.html

OSGi简介–模块化Java

OSGi联盟是这一搁浅的管理机构&#xff0c;它始于1999年。其最初目标是为网络设备创建开放搁浅。 基于此思想&#xff0c;此规范也针对Java引入。 Eclipse在Java中是第一个。 他们于2004年6月推出了基于OSGi的Eclipse IDE。 OSGi是在Java中定义动态模块的方法。 主要为Java实现…

HDU FatMouse's Speed 基本DP

题意&#xff1a;要求找到的体重递增&#xff0c;速度递减的老鼠&#xff0c;并且输出最长的长度数&#xff0c;而且输出各自的序列数。Special Judge 思路&#xff1a;先按体重由小到大排序&#xff0c;再找最长速度递减序列。 转移方程&#xff1a;mou[i].w>mou[j].w&am…

java xmpp openfire_搭建Xmpp服务器Openfire

step1、 安装java环境这里是检测是否安装java的网页如没有安装则进行以下步骤1、下载jdk7的mac版&#xff1a;jdk-7u79-macosx-x64.dmg2、安装好之后&#xff0c;在命令行进入以下路径查看#cd /Library/Java/JavaVirtualMachines/3、再查看你自己安装的版本#ls版本为jdk-8u171-…

JavaFX移动应用程序最佳实践,第1部分

到现在为止&#xff0c;所有对JavaFX感兴趣的人都会知道&#xff0c;JavaFX Mobile发行了不久 前。 可以肯定的是&#xff0c;这真是令人难以置信。 我感到筋疲力尽&#xff0c;在发行期间我什至没有精力去写博客…… 但是到目前为止&#xff0c;我感到很恢复&#xff0c;并且希…

Spark程序运行报错解决(1)

报错内容&#xff1a;System memory 259522560 must be at least 4.718592E8. Please use a larger heap size. 解决&#xff1a;Window——Preference——Java——Installed JREs——选中一个Jre 后 Edit 在Default VM arguments 里加入&#xff1a;-Xmx512M 转载于:https://w…