pig2 发表于 2016-1-22 18:41:38

hadoop入门-第一章General:第一节单节点伪分布

问题导读

1.从本文部署实际部署,总结本地模式、伪分布、分布式的区别是什么?
2.单机是否是伪分布?
3.本地模式是否可以运行mapreduce?


static/image/hrline/4.gif






hadoop2.7发布,这一版不太适合用于生产环境,但是并不影响学习:由于hadoop安装方式有三种,并且三种安装方式都可以在前面的基础上继续配置,分别是:


[*]本地模式
[*]伪分布
[*]分布式


###############################################
1.准备

安装jdk1.7参考
linux(ubuntu)安装Java jdk环境变量设置及小程序测试

测试:
Java -version
http://www.aboutyun.com/data/attachment/forum/201504/27/164050js41a2ntattx7aya.png

安装ssh

sudo apt-get install ssh
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ export HADOOP\_PREFIX=/usr/local/hadoop
最后达到无密码登录

ssh localhost
http://www.aboutyun.com/data/attachment/forum/201504/27/164311gu2lg00p7ayimpi7.png



安装rsync
sudo apt-get install rsync

修改网卡:
注释掉127.0.1.1 ubuntu
添加新的映射
10.0.0.81 ubuntu

http://www.aboutyun.com/data/attachment/forum/201504/28/134037xtljbbl8ztso3p4j.png
这里必须修改,否则后面会遇到连接拒绝等问题

2.安装

进入配置文件目录

我这里是

~/hadoop-2.7.0/etc/hadoop

http://www.aboutyun.com/data/attachment/forum/201504/27/170032vxoocbvphvi34iij.png


修改配置文件:
etc/hadoop/hadoop-env.sh

添加JAVA_HOME、HADOOP_COMMON_HOME
export JAVA_HOME=/usr/jdk
export HADOOP_COMMON_HOME=~/hadoop-2.7.0

配置环境变量

sudo nano /etc/environment

增加hadoop配置
将下面添加到变量PATH中
/home/aboutyun/hadoop-2.7.0/bin:/home/aboutyun/hadoop-2.7.0/sbin:

http://www.aboutyun.com/data/attachment/forum/201504/27/174605izua2ky72itwyyu9.png


########################################################
3.本地模式验证[可忽略]

所谓的本地模式:在运行程序的时候,比如wordcount是在本地磁盘运行的
上面已经配置完毕,我们对其测试,分别执行面命令:
注意: bin/hadoop的执行条件是在hadoop_home中,我这里是
$ mkdir input

$ cp etc/hadoop/*.xml input

$bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs+'
http://www.aboutyun.com/data/attachment/forum/201504/27/180820axdip528scilf4f4.png

$ cat output/*http://www.aboutyun.com/data/attachment/forum/201504/27/181005u2xoni2wj2roxmrc.png


##################################################################
上面本地模式,我们知道就可以,我们下面继续配置伪分布模式
4.伪分布模式

我这里的全路径:/home/aboutyun/hadoop-2.7.0/etc/hadoop


修改文件etc/hadoop/core-site.xml
添加如下内容:
含义:接收Client连接的RPC端口,用于获取文件系统metadata信息。
<configuration>
<property>
      <name>fs.defaultFS</name>
      <value>hdfs://localhost:9000</value>
    </property>
</configuration>


http://www.aboutyun.com/data/attachment/forum/201504/27/182245hvtevux3xn4uyovv.png



修改etc/hadoop/hdfs-site.xml:
添加如下内容:
含义:备份只有一份
<configuration>
    <property>
      <name>dfs.replication</name>
      <value>1</value>
    </property>
</configuration>
http://www.aboutyun.com/data/attachment/forum/201504/27/182413vckhchkvqic55kmy.png

###################################
补充重要:
由于系统重启后,找不到namenode进程,这是因为系统在重启后被删除,所以加入下面配置
<property>
             <name>dfs.namenode.name.dir</name>
             <value>file:/home/aboutyun123/dfs/name</value>
       </property>
      <property>
            <name>dfs.datanode.data.dir</name>
            <value>file:/home/aboutyun123/dfs/data</value>
       </property>


同时,注意权限

http://www.aboutyun.com/data/attachment/forum/201507/06/220417dlmiibnclabi6szt.png


###################################



5.伪分布模式

1.格式化namenode
hdfs namenode -format有的地方使用
bin/hdfs namenode -format如果配置的环境变量直接使用hdfs namenode -format即可

2.启动集群
start-dfs.sh
http://www.aboutyun.com/data/attachment/forum/201504/27/184739d6qkwyuvf6wdsvd6.png

这时候单节点伪分布就已经安装成功了

#####################################################
验证[可忽略]
输入下面
http://localhost:50070/如果是在虚拟机中安装,但是在宿主主机中访问,需要输入虚拟机ip地址
这里虚拟机ip地址是10.0.0.81

http://www.aboutyun.com/data/attachment/forum/201504/27/185527s1m2tm1msads7abs.png

所以,我这里是
http://10.0.0.81:50070/

http://www.aboutyun.com/data/attachment/forum/201504/27/184907do828q7x8xrxl3ox.png


配置到这里也是可以的,我们同样可以运行wordcount,也就是我们的mapreduce不运行在yarn上。如果想让程序运行在yarn上,继续下面配置
#####################################################

6.配置Yarn

1.修改配置文件
修改配置文件mapred-site.xml
编辑文件etc/hadoop/mapred-site.xml,添加下面内容由于etc/hadoop中没有mapred-site.xml,所以对mapred-queues.xml.template复制一份
cp mapred-site.xml.template mapred-site.xml
然后编辑文件mapred-site.xml
添加
<property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
    </property>

最后形式:
http://www.aboutyun.com/data/attachment/forum/201504/27/221256rfxn4aum2mzxx8mn.png


修改配置文件yarn-site.xml

添加如下内容:
<property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>

http://www.aboutyun.com/data/attachment/forum/201504/27/221514jywrscjmncjmyrsh.png



2.启动yarn
start-yarn.shhttp://www.aboutyun.com/data/attachment/forum/201504/27/222718mulwm46wfn99nm54.png


(由于我这里已经配置了环境变来那个,所以在哪个地方都可以运行start-yarn.sh)
如果你没有配置环境变量,则需要进入hadoop_home,执行下面命令

sbin/start-yarn.sh
3.验证
启动yarn之后,输入
http://localhost:8088/即可看到下面界面

http://www.aboutyun.com/data/attachment/forum/201504/27/223029a5obn5aj4x526blw.png


下一篇hadoop2.7 运行wordcount

遇到问题

问题1:
Error: Could not find or load main class

org.apache.hadoop.hdfs.server.namenode.NameNode

解决办法:
在~/hadoop-2.7.0/etc/hadoop/hadoop-env.sh中添加
export HADOOP_COMMON_HOME=~/hadoop-2.7.0重启生效

问题2:
格式化Java_home not found
bin/hdfs namenode -format在/etc/environment 中添加
export JAVA_HOME=/usr/jdk

生效
source /etc/environment重启[如还不行,重启]
sudo init 6


相关文章

hadoop入门-第一章General:第一节单节点伪分布

hadoop入门-第一章General:第二节集群配置

hadoop入门-第一章General:第三节Hadoop初级入门之命令指南

hadoop入门-第一章General:第四节文件系统shell

hadoop入门-第一章General:第五节hadoop的兼容性说明

hadoop入门-第一章General:第六节开发人员和用户接口指南:hadoop接口分类

hadoop入门-第一章General:第七节Hadoop 文件系统 API :概述

hadoop入门-第二章common:第一节hadoop 本地库 指南

hadoop入门-第二章common:第二节hadoop代理用户 -超级用户代理其它用户

hadoop入门-第二章common:第三节机架智能感知

hadoop入门-第二章common:第四节安全模式说明

hadoop入门-第二章common:第五节服务级别授权指南

hadoop入门-第二章common:第六节Hadoop HTTP web-consoles认证机制

hadoop入门-第二章common:第七节Hadoop Key管理服务器(KMS) - 文档集

hadoop入门:第三章HDFS文档概述(一)

hadoop入门:第三章HDFS文档概述(二)

hadoop入门:第四章mapreduce文档概述

hadoop入门:第五章MapReduce REST APIs文档概述

hadoop入门:第六章YARN文档概述

hadoop入门:第七章YARN REST APIs

hadoop入门:第八章hadoop兼容文件系统

hadoop入门:第九章hadoop认证

hadoop入门:第十章hadoop工具

hadoop入门:第十一章hadoop配置

一天一个茶叶蛋 发表于 2016-1-24 10:22:17

这么好的入门文章怎么没人顶

a530491093 发表于 2016-1-24 15:41:45

我 来顶了   感谢分析!

钻石裂隙 发表于 2016-2-14 13:41:20

感谢分享,我有个问题不明白

安装 rsync 是为了什么 ?

钻石裂隙 发表于 2016-2-14 14:05:53

可能我说的不太明白吧,
我想问:本例中使用rsync这条命令用在哪了?
rsync在hadoop集群中发挥什么样的作用

gm100861 发表于 2016-2-26 21:42:12

绝对是精华,好文章,顶一个.
还有就是想问一下,hadoop 2里面和hadoop1里有好多不一样的地方.比如YARM,不知道这个是干什么用的.如果再能简单的介绍一下,就更完美了. 感谢楼主分享.

zhouyongheng 发表于 2016-3-10 11:37:18

楼主万岁

yxxdd 发表于 2016-4-16 23:27:25

顶一顶!

露秋du 发表于 2016-11-29 21:11:43

想问下在yarn中的配置有的写得是
<property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
    </property>
有的写的是
<property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce.shuffle</value>
    </property>
想问两个有什么区别
页: [1]
查看完整版本: hadoop入门-第一章General:第一节单节点伪分布