ubuntu部署hadoop2.7.1之单机模式与伪分布式模式

前端之家收集整理的这篇文章主要介绍了ubuntu部署hadoop2.7.1之单机模式与伪分布式模式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

单机模式(standalone

单机模式是 Hadoop的默认模式。当首次解压 Hadoop的源码包时, Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有 3XML文件均为空。当配置文件为空时, Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用 HDFS,也不加载任何 Hadoop的守护进程。该模式主要用于开发调试 MapReduce程序的应用逻辑。
伪分布模式( Pseudo-DistributedMode
伪分布模式在“单节点集群”上运行 Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加代码调试功能,允许你检查内存使用情况, HDFS输入输出,以及其他的守护进程交互。
全分布模式( FullyDistributed Mode

Hadoop守护进程运行在一个集群上。


一.ubuntu平台上安装JDK

1.将下载好的tar.gz 文件解压到一个文件夹下。


2.然后,配置环境变量。方法如下:

打开终端输入

sudo gedit /etc/profile 



输入密码后可以看到:



配置环境变量(在profile文件到最后加上这些代码):

#set java environment    
    
JAVA_HOME=/home/hadoop/java/jdk1.8.0_05         
    
export CLASSPATH=$JAVA_HOME/lib:$CLASSPATH    
    
export PATH=$JAVA_HOME/bin:$PATH 

如下图:



上面到JAVA_HOME的值是我机器上jdk的文件路径。



最后保存文件即可。

为了是环境变量生效,需要注销一下当前用户,重新登录后在终端中输入(验证是否配置成功)

java -version 



二.部署hadoop之单机模式与伪分布式模式

1. 将下载好的hadoop解压,重新命名为hadoop(这是为了方便以后到操作)。



进入etc/hadoop文件夹下,在hadoop-env.sh文件中做修改,在第25行左右到位置中有export JAVA_HOME=*******这样到字样,修改JAVA_HOME的值为你机器中jdk到文件路径即可,这里到值和/etc/profile是相同的。



现在就可以进行单机模式了(省略)。

2. 伪分布式模式配置

这里需要修改etc/hadoop文件夹中到2个文件(现在可以不启动yarn)。分别是core-site.xml、hdfs-site.xml 两个文件

具体修改内容如下:(file:/home/hadoop/hadoop...,红色部分,系统用户名不同,相应的路径也不同,这里的用户是hadoop)

core-site.xml
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/home/hadoop/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
</configuration>


同样的,修改配置文件 hdfs-site.xml


<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/home/hadoop/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/home/hadoop/hadoop/tmp/dfs/data</value>
    </property>
</configuration>


这样就配置好hadoop了,由于haoop不同结点间到通信是用的ssh,所以我们还需要安装ssh

在ubnuntu下直接在终端中输入



sudo apt-get install openssh-server


如果提示找不到源,更新ubuntu到软件中心即可

sudo apt-get update 

这样就安装完成了ssh。下面需要设置免密钥登录ssh了。输入下面两行代码即可:


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



这样以后登录本地ssh就不需要密码了。

这里稍微解释一下:ssh-keygen代表生成密钥;-t(注意区分大小写)表示指定生成的密钥类型,dsa是dsa密钥认证的意思,即密钥类型;-P用于提供密语;-f指定生成的密钥文件。然后把id_dsa.pub(公钥)追加到授权的key里面去。

完成了部署。


三.运行wordcount例子

(1)首先格式化namenode并,开启hadoop相关进程(一般启动前把tmp里面的文件全部删除


bin/hdfs namenode -format
sbin/start-dfs.sh
(2)查看所有进程



(3)把本地到hadoop/input (自己建立的)文件夹中到文件上传到hdfs文件系统到input文件夹下


bin/hdfs dfs -mkdir /input    
bin/hdfs dfs -put input/* /input 


查看文件是否上传到hdfs

bin/hdfs dfs -ls /input


bin/hdfs dfs -cat /input/word



(4)下面即可运行wordcount了

bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar wordcount /input /output



(5)查看结果可用下面这条命令


bin/hdfs dfs -cat /output/*


也可以将运行结果取回到本地:

rm -r ./output    # 先删除本地的 output 文件夹(如果存在)
bin/hdfs dfs -get /output ./output     # 将 HDFS 上的 output 文件夹拷贝到本机
cat ./output/*




Hadoop 运行程序时,输出目录不能存在,否则会提示错误 "org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists" ,因此若要再次执行,需要执行如下命令删除 output 文件夹:


bin/hdfs dfs -rm -r output 

(6)关闭进程


sbin/stop-dfs.sh

猜你在找的Ubuntu相关文章