Hadoop安装全教程 Ubuntu14.04+Java1.8.0+Hadoop2.7.6

 

 

最近听了一个关于大数据的大牛的经验分享,在分享的最后大牛给我们一个他之前写好的关于大数据和地理应用demo。这个demo需要在Linux环境上搭建Hadoop平台。这次就简单的分享一下我关于在 
Linux虚拟机上搭建Hadoop平台的一些经验和遇到的一些问题以及问题的解决办法。

首先我们这次搭建的环境是hadoop。hadoop实现了分布式文件系统,它可以部署在一些廉价的硬件环境上,并且提供了高吞吐量来访问应用程序的数据,非常适合那些有着大数据集的应用程序。而且最重要的是,hadoop是开源的。

这次我们将要在一台计算机(虚拟机)上安装我们的hadoop实验环境。如果你还没有安装虚拟机,请百度查看VMware workstations Pro 12的安装教程。如果你还没有在虚拟机中安装Linux操作系统,请百度在VMware下安装Ubuntu或者centos的教程。

安装的模式是单机模式和伪分布模式。单机模式是在hadoop解压缩之后默认选择的最精简模式,在这个模式中,core-site.xml ,hdfs-site.xml和hadoop-env.sh中的配置信息默认为空,在安装时需要我们自己去配置填写。伪分布模式就是hadoop运行在单集群上,这个模式比单机模式多了代码调试功能,并且启用了HDFS功能而且能够和几个守护进程进行交互

本文中安装的是Ubuntu14.04LTS+java 1.8.0_101+Hadoop 2.7.6

一、Linux上JAVA环境的安装

首先在Linux上安装hadoop之前我们需要了解,hadoop是基于java开发的一款程序。所以我们需要在安装hadoop之前保证我们的Linux上有java环境。下面我们就来介绍一些如何在Linux上安装java1.8.0_101。

在安装java之前我们需要检查系统中有没有安装java,使用java -version命令来查看是否安装了java,如果安装了其他版本的java请在卸载之后安装java1.8.0。

首先我们需要在oracle官网上下载我们需要的JDK安装包,JDK就是Java Development Kit 这个开发工具中包含了java运行所必须的运行环境。你可以在这个网址中下载到本文所述的java1.8.0_101的Linux版本安装包,注意在下载安装包的时候请选择适合你的操作系统版本的位数文件进行下载(这里的操作系统指的是你的虚拟机中安装的Linux的版本,可以通过uname -a指令来查看你当前的Linux版本)

www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在完成下载之后,我们将得到一个后缀名为.tar.gz的压缩包,这时我们将这个文件解压缩到/usr/java/目录下(请在解压缩之前新建这个目录)

tar -zxvf jdk-8u101-linux-x64.tar.gz -C /usr/java/

在解压缩之后我们就可以配置我们的环境变量了

vim ~/.bashrc

#写入环境变量
export JAVA_HOME=/usr/local/java/jdk1.8.0_172
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH

在写完环境变量之后使用

source ~/.bashrc

来使环境变量生效

在配置完之后我们利用

java -version 

来查看java是否安装完毕。

二、安装ssh server 实现免密码登录

因为Hadoop需要使用ssh进行通信,所以我们需要在我们的操作系统上安装ssh。在安装之前,我们需要查看系统是否已经安装并且启动了ssh

#查看ssh安装包情况
dpkg -l | grep ssh  

#查看是否启动ssh服务
ps -e | grep ssh

如果系统中并没有ssh服务,可以使用

sudo apt-get install openssh-server 

来安装ssh服务,在安装之后使用

sudo /etc/init.d/ssh start   

开启服务。

之后再使用

ps -e | grep ssh

来查看服务是否启动。

ssh作为一个安全通信协议,自然就需要通信的时候输入密码,但是因为我们伪分布模式,所以我们将设置免密码登录。

#生成秘钥
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
#导入authorized_keys
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

#测试是否免密码登录localhost
ssh localhost

在结束之后关闭机器的防火墙 
ufw disable

三、安装Hadoop

在结束了前期的准备工作之后我们可以开始安装我们的Hadoop了

下载Hadoop 下面提供了Hadoop的下载链接

http://hadoop.apache.org/releases.html

下载binary

解压缩下载之后的文件

tar -zxvf hadoop-2.7.6 -C /usr/local/hadoop/

在解压缩之间请创建/usr/local/hadoop/目录

下面来写配置文件core-site.xml、hdfs-site.xml、hadoop-env.sh三个文件

这三个文件都在/usr/local/hadoop/hadoop-2.7.3/etc/hadoop/下,在前两个文件中的和中写入如下内容

第一个文件core-site.xml

core-site.xml
 
    <property>
        <name>fs.default.namename>
        <value>hdfs://localhost:9000value>
    property>
    <property>
        <name>hadoop.tmp.dirname>
        <value>/home/duanxz/tmpvalue>
    property>

请注意/home/duanxz/tmp文件夹要被替换为计算机当前的用户目录中的tmp文件夹没有请创建。

第二个文件hdfs-site.xml

hdfs-site.xml
 
    <property>
        <name>dfs.replicationname>
        <value>1value>
    property>

第三个文件hadoop-env.sh中找到如下行然后写入内容

# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.8.0_101
export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.6
export PATH=$PATH:/usr/local/hadoop/hadoop-2.7.6/bin

接下来在系统环境变量中写入Hadoop的环境变量 
vim /etc/environment

#在文件的结尾""之内加上
:/usr/local/hadoop/hadoop-2.7.3/bin:/usr/local/hadoop/hadoop-2.7.6/sbin

重启系统

验证Hadoop单机模式安装完成

hadoop version

看到屏幕上显示hadoop的版本号即说明单机模式已经配置完成

接下来就是启动hdfs 使用伪分布模式

第一步格式化

hadoop namenode -format

显示如下内容即成功格式化

...
...
16/09/24 23:39:53 INFO common.Storage: Storage directory /home/windghoul/tmp/dfs/name has been successfully formatted.
...
...
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at ubuntu/127.0.1.1
************************************************************/

启动hdfs

sbin/start-all.sh

显示进程

jps

看到屏幕上显示如下内容即说明hdfs已经成功

Hadoop安装全教程 Ubuntu14.04+Java1.8.0+Hadoop2.7.6_第1张图片

停止hdfs

sbin/stop-all.sh

以上命令行都需要系统路径在hadoop安装路径之下,如果在/home/username下运行,请输入完全路径。

这样我们的hadoop环境就基本搭建完毕,之后我还会写一些关于hadoop的简单应用的分享。

问题解决

Q:我在配置完文件之后在命令行中输入hadoop version并没有显示hadoop的版本号

A:请检查环境变量的配置,尤其是有没有写入hadoop的环境变量,检查/etc/environment下 
并且重启您的计算机。

Q:在格式化那里我没有正确的格式化 
A:如问题1,在格式化之前请检查hadoop单机模式有没有正确的安装并配置,检查core-site.xml文件有没有正确的配置

Q:在最后启动hdfs的时候总是提醒我输入localhost的密码 
A:如果提醒输入密码可能是tmp文件夹的拥有者权限不对,请使用chmod -R a+w /home/duanxz/tmp可能就会解决。

Q:Linux 搭建Hadoop集群执行命令start-dfs.sh报错 permission denied

A:解决方案:对文件敞开权限,对hadoop安装目录执行命令:sudo chmod a+w * 

 Q:nameNode启动不成功,启动hadoop发现namenode节点无法启动,50070端口无法访问,50030端口正常。

A:查看namenode的启动日志:duanxz@three:/usr/local/hadoop-2.7.6/logs$ more hadoop-duanxz-namenode-three.log

解决方法:为tmp目录增加权限:duanxz@three:~$ sudo chmod -R a+w tmp

Q:nameNode启动失败,日志如下:

Hadoop安装全教程 Ubuntu14.04+Java1.8.0+Hadoop2.7.6_第2张图片

是没有格式化,

hadoop namenode -format

检查namenode是否启动方法如下:

1、jps,查看是否有namenode进程

2、telnet 127.0.0.1 9000

 3、访问http://192.168.1.105:50070/

hadoop web控制台页面的端口整理:

50070:hdfs文件管理

8088:ResourceManager

8042:NodeManager

19888:JobHistory(使用“mr-jobhistory-daemon.sh”来启动JobHistory Server)

下面是我的截图:

Hadoop安装全教程 Ubuntu14.04+Java1.8.0+Hadoop2.7.6_第3张图片

Hadoop安装全教程 Ubuntu14.04+Java1.8.0+Hadoop2.7.6_第4张图片

Hadoop安装全教程 Ubuntu14.04+Java1.8.0+Hadoop2.7.6_第5张图片

 

 

 

在最后感谢网络上的几位大牛给的之前版本的安装教程

https://blog.csdn.net/windghoul/article/details/52655032

转载于:https://www.cnblogs.com/duanxz/p/4882851.html

你可能感兴趣的:(Hadoop安装全教程 Ubuntu14.04+Java1.8.0+Hadoop2.7.6)