Ubuntu16.04上搭建Hadoop2.7.2的单机模式和伪分布式模式

  hadoop的单机模式和伪分布式模式可以说是学习hadoop的入门搭建环境,主要通过简单环境的搭建,对hadoop的MapReduce和HDFS有一个基础的认识。为分布式集群的搭建和学习起到引领的作用。

  对于搭建所需的平台和软件如下:Ubuntu16.04、Hadoop2.7.2、java、sshd。以上软件都是到目前为止最新的版本。以下由于只是单机学习的目的,不考虑系统使用上的安全性,因此直接使用root用户进行操作,不再新建用户。

一、安装

  1、Ubuntu16.04安装:我们通常使用虚拟机安装linux系统,可以选择VMware或者virtualbox,通过个人使用后感觉virtualbox更轻量一些,同时汉化也比较好,个人偏爱virtualbox一些。Ubuntu系统可在官网自行下载。Ubuntu官网下载地址:http://www.ubuntu.com/download/desktop。具体安装不在详述。唯一要说明的就是在使用virtualbox安装linux系统后需要设置共享文件夹,最后需要执行命令mount -t vboxsf shared /mnt/shared,其中shared文件夹为你在windows系统下建立的需要与linux系统共享的文件夹,而/mnt/shared为linux系统下选定的可以挂载的目录。

  2、java安装:Ubuntu16.04默认安装后并不安装java,由于hadoop是java语言写的,需要使用java的运行环境,因此必须要先安装java。在终端中使用"sudo su -"命令切换到root用户,再使用"apt-get install openjdk-9-jre-headless"安装最新的java包。

  3、sshd安装:同样,Ubuntu16.04默认安装后并不安装sshd。使用命令"apt-get install openssh-server"安装。安装后使用"ps aux | grep sshd"命令查看sshd是否启动,如果有如下信息"root      7093  0.0  0.2  65612  6116 ?        Ss   22:22   0:00/usr/sbin/sshd -D",表明sshd已启动,如果没有启动,则使用命令"/etc/init.d/ssh start"启动sshd进程。

  4、hadoop安装:在hadoop官网:http://www.apache.org/dyn/closer.cgi/hadoop/common/选择最新版本的hadoop下载,截止到目前,最新稳定版本为Hadoop2.7.2。将下载的hadoop放到windows共享文件夹shared中,就可以在linux的/mnt/shared目录中看到hadoop了,使用命令"cp -a /mnt/shared/hadoop-2.7.2.tar.gz /home/manyu"将hadoop拷贝到目录/home/manyu下。通过"tar -xvzf hadoop-2.7.2.tar.gz"解压文件到当前目录。由于linux系统软件安装在/usr/local目录下,所以使用命令"mv hadoop-2.7.2 /usr/local"将hadoop移动到/usr/local目录下。后者直接在解压时指定解压的目录为/usr/local,命令如下"tar -xvzf hadoop-2.7.2.tar.gz -C /usr/local"。

二、配置

  在安装完hadoop后使用命令"./bin/hadoop",会有如下提示,需要我们先配置JAVA_HOME。使用vim的话,请用"apt-get install vim"命令安装。


  编辑文件"vim etc/hadoop/hadoop-env.sh"中定义的JAVA_HOME参数。首先通过命令"update-alternatives --config java"查看java的安装路径为/usr/lib/jvm/java-9-openjdk-amd64/bin/java。因此在配置文件中设置java安装的根目录如下:export JAVA_HOME=/usr/lib/jvm/java-9-openjdk-amd64。在使用命令"./bin/hadoop"后出现如下提示说明配置成功:


  至此,前期准备已基本完成,下面我们先进行单机模式的测试,再进行伪分布式模式的配置测试。

  1、单机模式

  默认情况下,hadoop配置为运行在非分布式模式下的,作为一个单独的java进程。这对于调试是非常有用的。操作如下:

  $ mkdir input

  $ cd input

  $ echo "hello world" > test1.txt

  $ echo "hello hadoop" > test2.txt

  $ cd ..

  $ ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount input output

  执行如上命令后如下所示:


可以看到hadoop已经执行,执行结束后通过命令"cat output/*"查看结果如下:


可以看到执行结果是正确的。即有一个单词hadoop、一个单词world、两个单词hello。至此单机模式验证完毕。

2、伪分布式模式

  hadoop可以在单节点上运行伪分布式模式,首先进行hadoop的配置文件的设置。

  配置文件"etc/hadoop/core-site.xml":

  <configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:9000</value>
    </property>
  </configuration>
  配置文件"etc/hadoop/hdfs-site.xml":

  <configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
  </configuration>
  接下来配置ssh:首先编辑"vim /etc/ssh/sshd_config",取消"AuthorizedKeysFile      %h/.ssh/authorized_keys"选项的注释,如下图所示:


  接下来设置自动登陆,操作如下:

  $ ssh-keygen

  之后一路回车使用系统提供的默认值即可。

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

  接下来通过"ssh localhost"命令验证登陆,第一次需要输入“yes”,之后就可以直接免密码登陆。如下图所示:


  当输入"exit"时可退出登陆,如上图所示,显示"Connectino to localhost closed."

  接下来在本地启动MapReduce任务。首先格式化文件系统

  $ ./bin/hdfs namenode -format

  看到如下标红的部分就表示格式化文件系统成功。


  启动NameNode守护进程和DataNode守护进程。

  $ ./sbin/start-dfs.sh

  接下来使用jps命令来查看节点守护进程启动情况,当敲入jps后发现需要安装openjdk-8-jdk-headless和openjdk-9-jdk,因此我们使用apt-get安装这两个安装包。安装后:

  $ jps

 

  我们可以使用浏览器查看 NameNode节点,在浏览器中输入:http://localhost:50070/


  接下来创建hdfs文件系统的目录:

  $ ./bin/hdfs dfs -mkdir /user

  $ ./bin/hdfs dfs -mkdir /user/root

  然后我们将之前input文件夹拷贝到hdfs文件系统中:

  $ ./bin/hdfs dfs -put input /user/root

  我们可以使用如下命令查看,是否将input文件夹拷贝到了hdfs文件系统中:

  ./bin/hdfs dfs -ls /user/root/input/*
  以上操作如下图所示:


  接下来让我们将当前文件系统中的input和output文件夹删除:

  $ rm -rf input output

  再运行hadoop命令:

  $ ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount input output

  同样检查输出文件,将hdfs文件系统中的输出复制到本地文件系统,命令如下:

  $ ./bin/hdfs dfs -get /user/root/output ouput

  $ cat output/*

  或者直接查看hdfs文件系统中的输出结果,而不用先复制到本地文件系统中,命令如下:

  $ ./bin/hdfs dfs -cat output/*

  可看到运行结果与之前单机模式时相同。当你做完测试,记得关闭服务,使用如下命令:

  $ ./sbin/stop-dfs.sh

 3总结

  以上都是最简单的单机模式和伪分布式模式的配置,希望对大家有那么一点的帮助。


  参考:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html

本页内容版权归属为原作者,如有侵犯您的权益,请通知我们删除。

FastDFS合并存储策略 - 2016-07-25 14:07:35

FastDFS提供了合并存储功能的实现,所有的配置都在tracker.conf文件之中,具体摘录如下: trunk功能启动与配置:通过tracker.conf文件启动与配置,个配置项如下: use_trunk_file = false#是否启用trunk存储 slot_min_size = 256#trunk文件最小分配单元 slot_max_size = 16MB#trunk内部存储的最大文件,超过该值会被独立存储 trunk_file_size = 64MB#trunk文件大小 trunk_creat
论机器人的环境感知与智主运动 –兼谈基于微分几何的人工智能 标签(空格分隔): 人工智能 计算机视觉 自主移动 微分流形 Ricci流 版权声明:本文为作者原创文章,未经作者允许不得转载。 前言 人工智能是分主观与客观的,是硬币的两个方面, 客观智能是世界的本质描述,是物理的是数学的, 主观智能是来自于客观智能,是哲学的是宗教的。 抛开物理与数学只讲方法是走不远的,如无本之木、无源之水, 单讲物理与数学只会得到一个静默纷扰的世界,无乐无诗无书无画。 序言 什么是智能,这是一个令人思绪飞扬的问题,本文的内容

理解镜像、容器和存储驱动 - 2016-07-23 19:07:52

理解镜像、容器和存储驱动 为了更有效地使用存储驱动,你必须理解Docker如何创建和存储镜像。接下来,需要理解容器是如何使用这些镜像的。最后,你需要一个对镜像和容器操作者都需要的技术简介。   镜像和图层layers 每一个Docker镜像都参考了一系列的只读层,这些层代表着文件系统的区别。层级是从底层开始,逐一建立组成容器的root文件系统。下面的图显示了Ubuntu镜像有4层: Docker的存储驱动是负责堆放这些层级并且提供一个统一的视图。 当你创建一个新的容器,你会在底层栈上加入一个新的、稀疏的、
Flume简介 Flume安装 1. 解压 flume安装包到 /itcast/ 目录下 tar -zxvf /*flume安装包*/ /itcast/ 2. 修改 flume配置文件: 2.1 flume-env.sh 修改文件名称: mv flume-env.sh.template flume-env.sh 添加 java_home ,保证 flume 所使用的jdk和hdfs是一样的(可以使用 echo JAVA_HOME 查看当前机器所使用的javaHome所在路径) 2.2 编写agent配置文
注:本文为自用,随时更新。 一.系统环境 Windows7、Ecplise 4.4.0,Hadoop2.7.2 Hadoop安装教程请看: Hadoop2.7.2安装教程 此处需要注意的是:你的hadoop运行在远程的虚拟机上,但是你的windows上也需要有hadoop的运行环境,这样eclipse才能进行远程调试,所按照上面教程安装完虚拟机上的hadoop,还需要下载同样版本的Hadoop加压到windows上即可,还需要配置相应的环境变量,拷贝winutil.exe.hadoop.dll等文件到ha
2、spark wordCount程序深度剖析 标签: spark 一、Eclipse(scala IDE)开发local和cluster (一). 配置开发环境 要在本地安装好java和scala。  由于spark1.6需要scala 2.10.X版本的。推荐 2.10.4,java版本最好是1.8。所以提前我们要需要安装好java和scala并在环境变量中配置好。 下载scala IDE for eclipse安装 连接: http://scala-ide.org/download/sdk.html
1、spark 部署 标签: spark 0 apache spark项目架构 spark SQL -- spark streaming -- MLlib -- GraphX 0.1 hadoop快速搭建,主要利用hdfs存储框架 下载hadoop-2.6.0,解压,到etc/hadoop/目录下 0.2 快速配置文件 cat core-site.xml configuration property name fs.defaultFS /name value hdfs://worker1:9000 /va

Devstack单节点环境实战配置 - 2016-07-23 14:07:05

本实验是在VMware12下建立虚机的一个测试环境。 1 前期准备工作 真机环境win10 Linux版本 centos-everything-7.0 VMware版本 VMwareworkstations12 虚机配置如下: 8G内存 2核cpu(开启虚拟化) 网络配置为桥接模式 /boot 500M(一定要分大点不然之后会遇到问题) swap分区4G 其余的空间全部分给/分区 配置yum源,你可以保持装机自带的centos自带官方yum源,或者使用国内的给的镜像,本次试验中用的国外镜像并且使用fast
Openstack自动化部署工具, 主要用于生产环境. 一. 环境准备 这里用的是Openstack 9.0版本. Fuel Documentation 下载 Fuel for OpenStack镜像文件 , 用于安装Feul Master. 安装 Xshell , 用于远程连接. 安装 xftp , 用于从Windows主机向虚拟机传输文件. 二. 安装fuel_master节点 1. VirtualBox网络配置 管理-全局设定-网络-仅主机(Host-Only)网络 新建三张新的网卡: Host-O
本篇主要阐述通过DeveStack 去部署Openstack(mitaka),对大多数来说安装部署Openstack 来说是个痛苦的过程,尤其是 OpenStack和它依赖的一些组件在快速发展中,经常出现这个版本组件对不上那个版本 dashboard等情况。如果只是看看或者初期玩玩 OpenStack的话,使用DevStack也是个不错的办法。DevStack采用了自动化源码部署的方式,适用于开发环境的部署和Openstack开发者,单节点,小环境;这里采用的操作系统为Ubuntu14.04。 一、操作系