分享

hadoop2.7【单节点】单机、伪分布、分布式安装指导

问题导读

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







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

  • 本地模式
  • 伪分布
  • 分布式


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

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

测试:
Java -version
jdk.png

安装ssh

  1. sudo apt-get install ssh
复制代码
  1.   $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
  2.   $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  3.   $ export HADOOP\_PREFIX=/usr/local/hadoop
复制代码

最后达到无密码登录

  1. ssh localhost
复制代码

ssh.png


安装rsync
  1. sudo apt-get install rsync
复制代码

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


这里必须修改,否则后面会遇到连接拒绝等问题

2.安装

进入配置文件目录

我这里是

~/hadoop-2.7.0/etc/hadoop

config.png


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

添加JAVA_HOME、HADOOP_COMMON_HOME
  1. export JAVA_HOME=/usr/jdk
  2. export HADOOP_COMMON_HOME=~/hadoop-2.7.0
复制代码

配置环境变量

sudo nano /etc/environment

增加hadoop配置
将下面添加到变量PATH中
  1. /home/aboutyun/hadoop-2.7.0/bin:/home/aboutyun/hadoop-2.7.0/sbin:
复制代码



env.png

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

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

  1. $bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.0.jar grep input output 'dfs[a-z.]+'
复制代码
hadoopjar.png


  1. $ cat output/*
复制代码
output.png


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

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


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



core-site.png


修改etc/hadoop/hdfs-site.xml:
添加如下内容:
含义:备份只有一份
  1. <configuration>
  2.     <property>
  3.         <name>dfs.replication</name>
  4.         <value>1</value>
  5.     </property>
  6. </configuration>
复制代码
2.png


###################################
补充重要:
由于系统重启后,找不到namenode进程,这是因为系统在重启后被删除,所以加入下面配置
[mw_shl_code=xml,true]<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>
[/mw_shl_code]

同时,注意权限

1.png


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



5.伪分布模式

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

2.启动集群
  1. start-dfs.sh
复制代码
start.png


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

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

ip address.png

所以,我这里是
  1. http://10.0.0.81:50070/
复制代码


hadoop50070.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复制一份
  1. cp mapred-site.xml.template mapred-site.xml
复制代码
然后编辑文件mapred-site.xml
添加
  1. <property>
  2.         <name>mapreduce.framework.name</name>
  3.         <value>yarn</value>
  4.     </property>
复制代码

最后形式:
mapred-site.png


修改配置文件yarn-site.xml

添加如下内容:
  1.   <property>
  2.         <name>yarn.nodemanager.aux-services</name>
  3.         <value>mapreduce_shuffle</value>
  4.     </property>
复制代码



yarn-site.png


2.启动yarn
  1. start-yarn.sh
复制代码

start-yarn.png

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

  1. sbin/start-yarn.sh
复制代码

3.验证
启动yarn之后,输入
  1. http://localhost:8088/
复制代码
即可看到下面界面

http-yarn.png


下一篇hadoop2.7 运行wordcount

遇到问题

问题1:
  1. Error: Could not find or load main class
  2. org.apache.hadoop.hdfs.server.namenode.NameNode
复制代码


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

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


生效
  1. source /etc/environment
复制代码
重启[如还不行,重启]
  1. sudo init 6
复制代码






已有(32)人评论

跳转到指定楼层
tan_323 发表于 2017-3-13 12:16:55
楼主,你好,我搭建好hdfs之后,用start命令启动,显示找不到start*.sh,在bin目录下也是这样。
回复

使用道具 举报

qcbb001 发表于 2016-11-28 20:39:31
大头强 发表于 2016-11-28 20:14
小白入门,请问完全以博主这种方式去搭建好了集群,windows下怎样通过MyEclipse去连接?
Map/Reduce的host ...

推荐参考,版本之间,端口略有不同,选择hdfs端口
新手指导:Windows上使用Eclipse远程连接Hadoop进行程序开发
http://www.aboutyun.com/forum.php?mod=viewthread&tid=6001


回复

使用道具 举报

大头强 发表于 2016-11-28 20:14:39
本帖最后由 pig2 于 2016-11-28 20:37 编辑

小白入门,请问完全以博主这种方式去搭建好了集群,windows下怎样通过MyEclipse去连接?
Map/Reduce的host以及post以及DFS Master的Host以及post应该如何去配置?

图片当中的配置如何填写

图片当中的配置如何填写

回复

使用道具 举报

Ehadoop 发表于 2016-8-7 10:25:54
JsNoNo 发表于 2015-8-16 13:03
问题已解决。hadoop/native 中是64位 32位系统下需要重新编译

32位如何编译
回复

使用道具 举报

Ehadoop 发表于 2016-8-6 12:56:09
六类接触 发表于 2016-7-12 22:04
2.7目前是最新版吧,感觉hadoop这个版本好乱

找到低版本安装了吗
回复

使用道具 举报

六类接触 发表于 2016-7-12 22:04:10
2.7目前是最新版吧,感觉hadoop这个版本好乱
回复

使用道具 举报

钻石裂隙 发表于 2016-2-15 15:10:09
hyj 发表于 2016-2-15 14:51
你没有配置环境变量吧
export JAVA_HOME=/usr/jdk
export HADOOP_COMMON_HOME=~/hadoop-2.7.0

这个环境变量配置了

而且添加了如下内容
export $JRE_HOME=$JAVA_HOME/jre
export PATH=.:$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$PATH:$HADOOP_COMMON_HOME/bin:$HADOOP_COMMON_HOME/sbin
回复

使用道具 举报

1234下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条