Hadoop的单机和集群部署

hadoop单机部署步骤:

Required software

  • Java(Java 7 以上)
  • SSH

download the latest version

Local(Standalone) Mode

hadoop可以直接独自运行在一个JVM程序里面。无需运行任何守护进程,所有程序都在同一个JVM上。在独立模式下测试和调试MapReduce程序很方便,因此该模式在开发阶段比较合适。在独立模式(本地模式)下将使用本地文件系统和本地MapReduce作业运行器。

Pseudo-Distributed Mode

可以使用伪分布式的方式运行hadoop,也就是所有的守护进程都是运行在一台机器上。

配置文件如下:

etc/hadoop/core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>

etc/hadoop/hdfs-site.xml:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

现在需要使ssh localhost连接本地无需密码:

ssh localhost

如果执行这条命令需要密码,则需要执行如下命令:

  $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

以下是一个例子,没有运行在yarn上。

  • 首先需要格式化文件系统: bin/hdfs namenode -format
  • 在后台启动一个namenode 和 datanode: sbin/start-dfs.sh,启动后可以* 在logs目录下查看日志,也可以访问: http://localhost:50070/
  • 在hdfs中创建一个目录:bin/hdfs dfs -mkdir /user
  • 拷贝本地文件到hdfs中:bin/hdfs dfs -put etc/hadoop/*.xml /user
  • 执行程序:bin/hadoop jar share/hadoop/mapreduce/hadoop-* mapreduce-examples-2.7.0.jar grep /input /output ‘dfs[a-z.]+’
  • 查看输出,可以先把hdfs中的文件拷贝到本地后查看:bin/hdfs dfs -get output output
  • cat output/*
  • 或者直接在hdfs中查看: bin/hdfs dfs -cat output/*
  • 停止hdfs可以使用: sbin/stop-dfs.sh
  • 可以使用jps命令查看进程。
  • 使用: bin/hdfs dfs -rmdir /user/trssmas/output 删除指定的目录
  • 使用: bin/hdfs dfs -rm /user/trssmas/output/file1 删除指定路径下的文件

在单个节点上运行YARN

首先需要配置:etc/hadoop/mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

配置: etc/hadoop/yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

这个时候可以启动yarn了。

sbin/start-yarn.sh
sbin/stop-yarn.sh
sbin/stop-all.sh 结束所有的进程

hadoop的集群部署步骤
在集群的部署和伪分布式的部署不太一样,具体操作如下:

首先本地环境是两台物理机,ip地址分别为:

  • 10.249.150.51 (master)
  • 10.249.150.52 (slave)

选取51作为master, 52作为slave

hadoop的版本这次选取的是: hadoop-2.5.1

准备工作

在安装之前需要分配一个hadoop用户专门用于hadoop的操作,同时在每台机器上安装JAVA(推荐使用oracle的JDK)和SSH。

  • 修改每台主机的用户名,51这台机器为master,所以修改这台机器的用户名为master。linux下修改主机的名字会随着使用的linux发行版不同而不同,但是如果只是暂时修改主机名(就是重启后用命令修改的主机名失效)可以在所有linux发行版中使用:hostname 修改的名字。但是推荐是永久修改主机名,这里举出Ubuntu和Centos两种发行版修改主机名的方式:

    • Ubuntu:直接编辑etc下的hostname文件: vi /etc/hostname 修改主机名。编辑完后需要重启才能生效。
    • Centos:直接编辑etc/sysconfig/network:将HOSTNAME修改为主机名,如果没有就添加一行: HOSTNAME=master。编辑完后需要重新启动才能生效。
  • 修改hosts文件,修改hosts文件后可以直接使用主机名代替ip地址访问其他机器。hosts文件的修改是通过编辑etc/hosts文件得到的,vi /etc/hosts文件。

    127.0.0.1 localhost
    10.249.150.51 master
    10.249.150.52 slave
    

通过修改hostname 和 hosts文件,这样我们可以通过访问主机名就能访问机器了,比如可以使用:

ping master 或者 ping slave 都能够ping通。

注意:修改hostname和修改hosts文件每台机器上都要做,修改hostname是为了将每天机器的主机名改成该机器相应的名字,比如将52改成slave。修改hosts文件,每天机器都需要做相同的操作,比如:在51上要做: 10.249.150.51 master && 10.249.150.52 slave,那在52上也要做相同的操作,这样才能在每台机器上ping通所有机器。

  • 配置master使用SSH无密码登录所有slave。这个操作要让master能够使用ssh无密码的访问所有slave。
    • 首先在master主机上,使用 ssh-keygen -t rsa 命令生成密钥对。
    • 然后使用 cat ~/.ssh/id_rsa.pub » ~/.ssh/authorized_keys命令,配置ssh访问本地无需要密码。
    • 完成后可以使用: ssh master检查一下是否需要密码才能登录,如果无需密码说明ssh设置正确,否则需要重新设置一次。
    • 在完成了master的设置之后,需要把master上产生的公钥发送到每个slave机器上,命令如下: scp ~/.ssh/id_rsa.pub 用户名@slave的IP地址:~/.ssh/ 这条命令的意思是:使用scp命令将将id_rsa.pub拷贝到slave地址的~/.ssh目录下。
    • 在slave机器下执行:cat ~/.id_rsa.pub » ~/.ssh/authorized_keys
    • 在所有的slave节点操作完成后,可以在master节点上使用ssh slave来验证是否需要密码才能登录。

设置hadoop的配置文件

  • 需要在etc/hadoop文件中修改slaves文件,将文件中的内容全部换成所有slave的名字,注意,如果原文件中又localhost,就将localhost删掉,同时每行写一个slave机器的名字,如下所示:

slave1
slave2
....

* 修改core-site.xml文件,在core-site.xml文件中配置成如下:

<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>

* 修改hdfs-site.xml,如下所示:

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>

* 修改 mapred-site.xml文件,这个文件需要从模板中复制一份。

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

* 修改yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

* 到此,hadoop的基本配置完成。接下来需要将这个配置的hadoop文件拷贝到所有slave机器上。**注意:slave机器上的hadoop路径要和master上的hadoop路径一直。**

上诉步骤完成后就可以在master节点上启动hadoop了,使用的命令如下:

bin/hdfs namenode -format // 这个是在hadoop第一次使用的时候执行,以后就不需要执行。
sbin/start-dfs.sh // 启动hdfs
sbin/start-yarn.sh // 启动yarn

启动hdfs和启动yarn可以合并到一个命令:
sbin/start-all.sh
启动完成后可以在master节点上使用: jps命令查看hadoop启动的进程。在slave节点上使用 jps可以查看slave节点上启动的hadoop进程。

成功启动后(一般在启动的终端上没有出现warning信息一般为启动成功),可以使用http://master:50070/访问 DataNode和NameNode

* 在集群上执行MapReduce例子,执行的例子可以参考伪分布式中的例子。在执行的过程中可以访问: http://master:8088/cluster来查看任务的执行情况。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容