Hadoop 2.8.x 环境搭建

记录下,也许能为有需要的人带来帮助

 

本次记录一下Hadoop基本环境的搭建

 

不废话

首先,我是在window10环境下,下载了ubuntukylin-17.04 64位版本的镜像,然后在VMware 中安装虚拟机(虚拟机如何安装,网上一堆教程,这里不过多介绍)。安装完成后大概是这样子。每个人的虚拟机版本可能都不一样,但是安装教程一样的

 

ctrl+alt+t 可以调出linux命令行窗口

 

创建用户

为了方便管理,我选择创建一个新的用户来专门管理hadoop,当然,这不是必须的,不想创建的可以直接跳过这一步

 

创建一个名为hadoop的可登录用户,并且选择bash这种shell 类型

$ sudo useradd -m hadoop -s /bin/bash

设置登录密码为123456

$ sudo passwd 123456

为hadoop用户分配权限,这里直接给了管理员的权限

$ sudo adduser hadoop sudo

注销即可选择hadoop用户登录

 

下载基本工具

下载之前,我们先更新一下apt

$ sudo apt-get update

这里我选择gedit,先试着安装下gedit,gedit一般系统自带的

$ sudo apt-get install gedit

当然,习惯使用vim的也可以按照vim,直接把上面命令的gedit换成vim即可

 

安装SSH并配置SSH

SSH很关键,单点,集群都需要用到SSH登录,Ubuntu系统自带了SSH Client,因此,我们只需要安装SSH Server即可

$ sudo apt-get install openssh-server

如果提示找不到,可以换个命令

$ sudo apt-get install ssh

ssh安装完成以后,先看看能否启动:

$ sudo /etc/init.d/ssh start   

查看是否启动正确

$ ps -e | grep ssh  

下面我们设置ssh为免密码登录,避免以后通讯过程中带来麻烦

$ ssh-keygen -t rsa -P "" 

追加一下公钥

$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

试下登录localhost

$ ssh localhost 

exit后再次登录,完美

 

继续

安装JDK

JDK目前很多新版本,但是,先别默认安装。按http://wiki.apache.org/hadoop/HadoopJavaVersions中说的

 

hadoop 2.7以上的需要JDK7, 低于2.7版本的支持JDK6

看了hadoop目前的版本,我选择了2.8.0版本

因此,我得下载一个7版本的JDK

 

很奇怪,我这个虚拟机版本,命令行apt-get已经找不到7版本的jdk,因此,我选择了手动安装。带上一个下载链接:http://www.oracle.com/technetwork/java/javase/archive-139210.html

选择 Java SE 7 下载即可

 

默认下载到Downloads文件夹,命令行默认安装的jdk是在 /usr/lib/jvm 路径下,为了方便管理,我们把下载的解压到该目录下

$ cd Downloads

$ sudo tar -zxf jdk-7u80-linux-x64.tar.gz -C /usr/lib/jvm

 

接着,我们需要配置一下JDK的系统路径信息

$ sudo gedit ~/.bashrc

在文件的开头设置一下JAVA_HOME

让设置生效

$ source ~/.bashrc

然后也在profile 中设置一下

$ sudo gedit /etc/profile

让设置生效

$ source /etc/profile

然后

$ java -version

JDK安装完毕

 

继续

安装Hadoop

可以同过在https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/ 下载一个最新的稳定版本,这个我选择2.8.0版本(hadoop-2.8.0.tar.gz)。当然,较好的方式是自己编译hadoop的源码,这里,我们选择最简单的方式,编译源码,有兴趣的可以去自己了解下

 

下载完毕后,我们把Hadoop安装到 /usr/loca/ 路径下

$ sudo tar -zxf ~/Downloads/hadoop-2.8.0.tar.gz -C /usr/local

$ cd /usr/local

重命名一下hadoop的文件夹

$ sudo mv ./hadoop-2.8.0/ ./hadoop

修改hadoop的文件夹权限

$ sudo chmod -R 777 ./hadoop.

ps: 接下来所有的新创建的文件夹,权限问题都是这样解决

查看hadoop版本

$ cd /usr/local/hadoop/bin

$ hadoop version

 

版本显示正常后,我们需要把hadoop写入系统环境变量

修改/etc/profile 文件

$ sudo gedit /etc/profile

export HADOOP_HOME 和在 path上加入HADOOP_HOME

结合上面的JDK配置,如下

写完后记得检查一遍,防止错误

 

 

继续

Hadoop 默认配置(单机模式)

hadoop默认带了许多例子,下面我们就来运行一个看下

这里,我们想计算一下input文件夹所有文件的内容中,符合正则表达式a[a-z.]+的单词多出现的次数,最后把结果保存到output文件夹中

$ cd /usr/local/hadoop

创建一个input文件夹

$ mkdir ./input

把/etc/hadoop/路径下的所有文件复制到input文件夹中

$ cp ./etc/hadoop/*.xml ./input

运行hadoop

$ ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'ab[a-z.]+'

查看结果

$ cat ./output/*

 

 

继续

Hadoop 伪分布式配置

hadoop可以在单节点上以伪分布式的方式运行,节点既可以作为NameNode,也可以作为DataNode。同时读HDFS中文件。接下来我们需要修改一下配置文件。新版本的hadoop配置文件在 /hadoop/etc/hadoop/ 路径下,旧版本的配置文件在/hadoop/conf/ 路径下

 

首先在hadoop目录下新建tmp文件夹

$ mkdir tmp

进入/etc/hadoop/ 目录

$ cd /etc/hadoop

修改core-site.xml文件

$ sudo gedit core-site.xml

加入配置

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/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文件

首先在tmp目录下新建dfs文件夹

$ cd tmp

$ mkdir dfs

接着在dfs目录下新建name文件夹,data文件夹,用于分别存放namenode,datanode 文件

$ cd dfs

$ mkdir name

$ mkdir data

接着配置 hdfs-site.xml 文件

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/usr/local/hadoop/tmp/dfs/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/usr/local/hadoop/tmp/dfs/data</value>

</property>

</configuration>

 

如下

$ sudo gedit hdfs-site.xml

 

配置解释

Hadoop运行时会读取配置文件。伪分布式模式官网里说只需配置js.defaultFS 和 dfs.replication。 不过我们还是需要配置hadoop.tmp.dir参数。如果不配置的话,hadoop会使用默认的临时目录 /tmp/hadoo-hadoop。 这个目录在重启的时候有可能会给删掉,导致必须重新格式化hadoop。因此,我们手动指定了目录

 

配置完成后,我们对NameNode进行格式化操作

$ cd bin

$ hdfs namenode -format

 

开启所有的服务

$ ./sbin/start-dfs.sh

 

见证奇迹的时刻

$ jps

访问下localhost:50070

 

PS: 配置了伪分布式模式后,单机模式中的例子无法正常运行。会提示找不到input文件夹,是因为伪分布式模式,hadoop会读取hdfs中的文件,我们还没有把input put进hdfs,所以。当然,如果还想运行单机模式,我们可以把伪分布式模式的配置文件的配置去掉即可。还有第二次运行单机模式的时候,我们需要把output 文件夹删掉再运行,因为hadoop不会自动覆盖output文件夹

 

配置的过程中,可能每个人的机器有所差异,可能还是会遇到一些问题。例如文件夹的权限呀,JDK的环境变量路径配置有误,配置文件少一个符号或字母等等等。看下命令行的日志,及时解决吧····

 

 

这就是Hadoop基本环境的搭建,不敢写了(下一篇再写),能坚持看到这里的人已经很有毅力了,下一篇我会继续写如何在伪分布式模式下运行例子,并且介绍一下YARN的配置

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值