Ubuntu14.04配置Hadoop环境踩坑笔记(单机模式与伪分布式模式)

在Ubuntu上配置Hadoop环境,踩了太多的坑,站在前人的肩膀上,总结一下自己的心得,帮大家排除一些容易犯错的地方...

这是我自己的配置环境:

Ubuntu14.04

Hadoop2.6

Jdk1.8

eclipse3.8

步骤:

1.配置JAVA环境
2.配置ssh
3.安装Hadoop

1.Ubuntu上配置JAVA环境:

1)将下载好的tar.gz 文件解压到一个文件夹下,JDK下载地址:JDK下载地址

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路径要改成你自己的)

保存文件后,在终端输入:

java -version

如图所示,如果显示这些信息,则说明java环境配置完成。

2.配置SSH服务

由于Hadoop不同结点间到通信是用的ssh,所以我们需要安装ssh

1)在Ubuntu终端输入如下命令:

sudo apt-get install openssh-server

如提示查找不到openssh的源,则我们需要更新apt,使用如下命令:

sudo apt-get update 

然后再输一遍上一句命令即可完成安装ssh

2)设置ssh免密登陆

在终端输入如下命令:

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

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

这样,就完成了SSH的部署。

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

1)将下载好的hadoop解压,重新命名为hadoop。Hadoop下载地址:Hadoop下载地址,这里注意,我们要下载二进制类型的即binary,而不是source类型,source类型是源代码,需要编译才能使用。

打开解压后的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>

注意,修改时,相当于是进入vim编辑,按insert键才能插入代码,然后再按esc,再按“:”,左下角就出现“:”,然后输入“write”,则将代码写入,再按“:”,再输入“exit”退出vim编辑

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伪分布模式。

4.运行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 -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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值