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

问题导读

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




来源:about云

about云开发

http://www.aboutyun.com/thread-12798-1-1.html


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

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



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

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

测试:
Java -version


安装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





安装rsync

sudo apt-get install rsync


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


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

2.安装

进入配置文件目录

我这里是

~/hadoop-2.7.0/etc/hadoop




修改配置文件:
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:






########################################################
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[a-z.]+'




$ cat output/*




##################################################################
上面本地模式,我们知道就可以,我们下面继续配置伪分布模式
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>







修改etc/hadoop/hdfs-site.xml:
添加如下内容:
含义:备份只有一份

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




5.伪分布模式

1.格式化namenode

hdfs namenode -format

有的地方使用

bin/hdfs namenode -format

如果配置的环境变量直接使用hdfs namenode -format即可

2.启动集群

start-dfs.sh




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

验证
输入下面

http://localhost:50070/

如果是在虚拟机中安装,但是在宿主主机中访问,需要输入虚拟机ip地址
这里虚拟机ip地址是10.0.0.81



所以,我这里是

http://10.0.0.81:50070/






配置到这里也是可以的,我们同样可以运行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>


最后形式:



修改配置文件yarn-site.xml

添加如下内容:

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







2.启动yarn

start-yarn.sh




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

sbin/start-yarn.sh


3.验证
启动yarn之后,输入

http://localhost:8088/

即可看到下面界面




下一篇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





原文地址:https://www.cnblogs.com/yunkaifa/p/4470422.html