【从零开始学hadoop】1. hadoop环境搭建

非计算机专业出身,未系统学习Linux系统,Hadoop也是边配置边写博客,博客主要作为学习笔记,若文章有错,欢迎指出。

转载请标明出处,谢谢。


Hadoop版本:2.6.0


0. 硬件准备

笔者在阿里云上申请了三台虚拟服务器做实验,因此操作系统,网络搭建等步骤省略。

操作系统:Ubuntu14.04 64位

内存:1G (起初512M最低配,但在hdfs格式化时报错,说内存分配失败,大概要700M内存,我改了几个有关内存的配置文件后依旧不成功,因此就直接升级到1G了,是否有最低内存限制求科普)


【注意】初学者请完全镜像的配置希望作为Hadoop节点的所有节点。

1. 用户创建及权限设置

adduser创建普通用户即可,sudo权限可添可不添。

2. 安装Java

Hadoop推荐使用Oracle的Java,但Ubuntu系统可能会默认装了OpenJdk等版本,因此,首先要卸载掉已存在版本。

apt-get purge openjdk-\*
解压从官网下载的Java包并解压到希望安装的目录,利用tar命令解压

tar -zxvf jre-7u71-linux-x64.gz
tar -zxvf jdk-7u71-linux-x64.gz

并导入类似环境变量

JAVA_HOME=/usr/local/java/jdk1.7.0_71
JRE_HOME=/usr/local/java/jre1.7.0_71
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export JAVA_HOME
export JRE_HOME
export PATH
export CLASSPATH

一般可通过执行Java -version检验是否安装成功。

3. 单节点Hadoop

在官网下载Hadoop包解压,配置/etc/hadoop/hadoop_env.sh中JAVA_HOME路径为实际Java所在路径即可。

可参照官方文档Setting up a Single Node Cluster尝试搭建单节点集群。

Standalone 模式仅需按照文档中代码直接执行即可,基本不会出问题。

Pseudo-Distributed 伪分布式模式中,笔者认为有以下几个地方需要注意。

1. SSH免密码互信配置

无论是所谓的伪分布式,还是之后会详述的真分布式,Hadoop各节点之间的访问都需要用到ssh,而在工作中显然不可能手动输入密码,因此需要通过公钥、密钥的模式互相信任集群内的主机。

官方文档中即有添加公钥到授信列表的方式,其中第一步为生成公钥和密钥,第二步为添加公钥到授信列表。(钥这个字在这里居然读yue,涨姿势了)

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
设定后,ssh localhost时便不再需要输入密码。

2.用户权限

在按照文档执行sbin/start-dfs.sh命令时,会发现用hadoop用户时报错,看报错内容发现,原因是无法创建log文件夹(用来记录运行日志),根因自然是hadoop用户没有在该路径写操作的权限。查看后发现,hadoop文件夹所属用户和用户组均为20000号这个不存在的值,因此,我将其都改为了创建的hadoop用户以及对应用户组,命令为:chgrp -R hadoop $HADOOP_HOME; chown -R hadoop $AHADOOP_HOME


4. 分布式Hadoop

最基础的,仅以运行WordCount为目的的分布式Hadoop系统还是比较好配置的,只需要修改几个配置文件。
由于搜索引擎搜到的中文博客文章大多是配置的老版本,因此我这里把我的摸索过程稍微说的详细写。

首先,把主机相关的ip信息写到/etc/hosts文件中

其次通过阅读官方文档,我们可以注意到以下几个值是肯定要修改的:
配置文件所在文件夹默认为$HADOOP_HOME/etc/hadoop/
core-site.xml中的fs.defaultFS, 设置成你准备作为Master节点的ip
yarn-site.xml中可只设置yarn.resourcemanager.hostname
mapred-site.xml中的mapreduce.jobhistory.address, mapreduce.jobhistory.webapp.address

总之,就是把所有要输入主机IP和端口的地方设置一下,让它知道在哪台机子上起服务即可。


此外,在该文件夹中还存在一个slaves文件,我在里面写了我的slaves的hostname,不知道实际上是否需要使用。

之后,按照文档中给的命令一个个启动各项服务,不出错就搞定啦。

5. 运行WordCount

WordCount官方教程在此,毕竟这一篇只是讲配置的,如果运算正确,就算搞定啦。

刚接触可能不熟悉hdfs命令,文档中省去了文件的放入操作,命令如下

创建文件夹 hdfs dfs -mkdir [路径]

将本地文件传入dfs内 hdfs dfs -put 本地文件路径 DFS文件路径

可以看到命令都是按着Linux来的所以上手很快。



第一篇暂时就到这。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值