最近听了一个关于大数据的大牛的经验分享,在分享的最后大牛给我们一个他之前写好的关于大数据和地理应用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
<!-- 指定HDFS老大(namenode)的通信地址 -->
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/duanxz/tmp</value>
</property>

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

第二个文件hdfs-site.xml

hdfs-site.xml
<!-- 设置hdfs副本数量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</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已经成功

停止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 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)

下面是我的截图:

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

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

Hadoop安装全教程 Ubuntu14.04+Java1.8.0+Hadoop2.7.6的更多相关文章

  1. GNU Radio安装教程: Ubuntu14.04 + uhd3.10.0 + gnuradio3.7.10.1

    1. 更新和安装依赖项 在编译安装uhd和gnuradio之前,确保已安装所需依赖项.Ubuntu系统运行: sudo apt-get update 安装UHD和GNURadio所需依赖项: On U ...

  2. Legacy安装win7和Ubuntu14.04双系统

    Legacy安装win7和Ubuntu14.04双系统 安装环境 Legacy启动模式(传统引导) 笔记本已安装win7 硬盘启动顺序为: U盘 硬盘 光驱 安装方法 制作U盘启动盘 在Ubuntu官 ...

  3. DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录

    DL服务器主机环境配置(ubuntu14.04+GTX1080+cuda8.0)解决桌面重复登录 前面部分是自己的记录,后面方案部分是成功安装驱动+桌面的正解 问题的开始在于:登录不了桌面,停留在重复 ...

  4. Cloudera Manager安装之Cloudera Manager安装前准备(Ubuntu14.04)(一)

    其实,基本思路跟如下差不多,我就不多详细说了,贴出主要图. 博主,我是直接借鉴下面这位博主,来进行安装的!(灰常感谢他们!) 在线和离线安装Cloudera CDH 5.6.0  Cloudera M ...

  5. caffe+Ubuntu14.04.10 +cuda7.0/7.5+CuDNNv4 安装

    特别说明: Caffe 官网地址:http://caffe.berkeleyvision.org/ 本文为作者亲自实验完成,但仅限用于学术交流使用,使用本指南造成的任何不良后果由使用者自行承担,与本文 ...

  6. 【转】光盘和U盘安装win7和ubuntu14.04全步骤

    详细步骤见原链接:http://brianway.github.io/2016/01/18/linux-win7-ubuntu-setup-by-USBandCD/ 安装Linux步骤 1. 在win ...

  7. caffe+NVIDIA安装+CUDA-7.5+ubuntu14.04(显卡GTX1080)

    首先强调,我们实验室的机器是3.3w的机器,老板专门买来给我们搞深度学习,其中显卡是NVIDIA GeForce  GTX1080(最近新出的,装了两块),cpu是intel i7处理器3.3Ghz, ...

  8. win8.1下安装双系统ubuntu14.04.3

    一.去ubuntu官网下载长期支持版的系统,64位还是32位由物理内存而定,4G以下用32位,4G以上(包括4G)使用64位. 二.若64位的系统,下载下来的文件名应该是ubuntukylin-14. ...

  9. LAMP_源码安装全教程

    第一步:准备安装软件 httpd-2.4.7.tar.gz, apr-1.4.6.tar.gz, apr-util-1.4.1.tar.gz,mysql-5.5.tar.gz,php-5.4.tar. ...

随机推荐

  1. TOML简介 (转)

    TOML的由来 配置文件的使用由来已久,从.ini.XML.JSON.YAML再到TOML,语言的表达能力越来越强,同时书写便捷性也在不断提升. TOML是前GitHub CEO, Tom Prest ...

  2. hunnu--11548--找啊找啊找朋友

    找啊找啊找朋友 Time Limit: 1000ms, Special Time Limit:2500ms, Memory Limit:65536KB Total submit users: 14,  ...

  3. Mybatis的配置文件和映射文件详解

    一.Mybatis的全局配置文件 1.SqlMapConfig.xml是mybatis的全局配置文件,配置内容如下: properties(属性) settings(全局配置参数) typeAlias ...

  4. Hibernate的配置文件 Hibernate.cfg.xml与xxx.hbm.xml

    1.hibernate.cfg.xml配置如下: (数据库连接配置) <?xml version="1.0" encoding="UTF-8"?>& ...

  5. cocos2d-js添加道有道插屏(通过jsb反射机制)

    1.导入jar包 2.修改AndroidManifest.xml文件 添加权限:      <activity android:configChanges="keyboard|keyb ...

  6. 前端几个笔试题及答案(bd)

    1.   行内元素.块级元素和空元素(void)举例. 块级元素:<address>.<caption>.<dd>.<div>.<dl>.& ...

  7. python基础教程_学习笔记11:魔法方法、属性和迭代器

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/signjing/article/details/31417309 魔法方法.属性和迭代器 在pyth ...

  8. ME11创建信息记录 Function

    转自 http://blog.csdn.net/zeewjj/article/details/7941530  CALL FUNCTION 'ME_DIRECT_INPUT_INFORECORD' D ...

  9. Python实现简易HTTP服务器

    一.Python3 搭建简易HTTP服务器 python -m http.server 浏览器访问:http://localhost:8000 Python3 cgiserver python -m  ...

  10. LeetCode:奇偶链表【328】

    LeetCode:奇偶链表[328] 题目描述 给定一个单链表,把所有的奇数节点和偶数节点分别排在一起.请注意,这里的奇数节点和偶数节点指的是节点编号的奇偶性,而不是节点的值的奇偶性. 请尝试使用原地 ...