Hadoop 伪分布式模式安装

Hadoop简介

Hadoop由Apache基金会开发的分布式系统基础架构,是利用集群对大量数据进行分布式处理和存储的软件框架。用户可以轻松地在Hadoop集群上开发和运行处理海量数据的应用程序。Hadoop有高可靠,高扩展,高效性,高容错等优点。Hadoop 框架最核心的设计就是HDFS和MapReduce。HDFS为海量的数据提供了存储,MapReduce为海量的数据提供了计算。此外,Hadoop还包括了Hive,Hbase,ZooKeeper,Pig,Avro,Sqoop,Flume,Mahout等项目。

Hadoop的运行模式分为3种:本地运行模式伪分布运行模式完全分布运行模式

  1. 本地模式(local mode)

    这种运行模式在一台单机上运行,没有HDFS分布式文件系统,而是直接读写本地操作系统中的文件系统。在本地运行模式(local mode)中不存在守护进程,所有进程都运行在一个JVM上。单机模式适用于开发阶段运行MapReduce程序,这也是最少使用的一个模式。

  2. 伪分布模式

    这种运行模式是在单台服务器上模拟Hadoop的完全分布模式,单机上的分布式并不是真正的分布式,而是使用线程模拟的分布式。在这个模式中,所有守护进程(NameNode,DataNode,ResourceManager,NodeManager,SecondaryNameNode)都在同一台机器上运行。因为伪分布运行模式的Hadoop集群只有一个节点,所以HDFS中的块复制将限制为单个副本,其secondary-master和slave也都将运行于本地主机。此种模式除了并非真正意义的分布式之外,其程序执行逻辑完全类似于完全分布式,因此,常用于开发人员测试程序的执行。本次实验就是在一台服务器上进行伪分布运行模式的搭建。

  3. 完全分布模式

    这种模式通常被用于生产环境,使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode运行的主机,Datanode运行的主机,以及SecondaryNameNode运行的主机。在完全分布式环境下,主节点和从节点会分开。

实验环境

Linux Ubuntu 14.04

安装步骤

创建一个新用户及用户组

此步为可选项,建议用户创建一个新用户及用户组,后续的操作基本都是在此用户下来操作。但是用户亦可在自己当前非root用户下进行操作。

  1. 创建一个用户,名为zhangyu,并为此用户创建home目录,此时会默认创建一个与zhangyu同名的用户组。

    sudo useradd -d /home/zhangyu -m zhangyu
  2. 为zhangyu用户设置密码
    sudo passwd zhangyu
  3. 将zhangyu用户的权限,提升到sudo超级用户级别
    sudo usermod -G sudo zhangyu
  4. 切换到zhangyu用户完成后续操作
    su zhangyu

配置SSH免密码登陆

SSH免密码登陆需要在服务器执行以下命令,生成公钥和私钥对

注意:此时会有多处提醒输入在冒号后输入文本,这里主要是要求输入ssh密码以及密码的放置位置。在这里,只需要使用默认值,按回车即可。

ssh-keygen -t rsa

此时ssh公钥和私钥已经生成完毕,且放置在~/.ssh目录下。切换到~/.ssh目录下;在~/.ssh目录下,创建一个空文本,名为authorized_keys;并将存储公钥文件的id_rsa.pub里的内容,追加到authorized_keys中。

cd ~./.ssh
touch ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

下面执行ssh localhost测试ssh配置是否正确(一次使用ssh访问,会提醒是否继续连接 )

ssh localhost

如果控制台打印出欢迎语句说明ssh免密码登录配置成功,后续再执行ssh localhost时,就不用输入密码了。

Hadoop 的安装

安装前的准备工作

首先创建两个目录:apps和data。两个目录的作用分别为:/apps目录用来存放安装的框架,/data目录用来存放临时数据、HDFS数据、程序代码或脚本。

sudo mkdir /apps
sudo mkdir /data

并为/apps和/data目录切换所属的用户为zhangyu及用户组为zhangyu

sudo chown -R zhangyu:zhangyu /apps
sudo chown -R zhangyu:zhangyu /data

在根目录执行ls -l命令,如果看到根目录下/apps和/data目录所属用户及用户组已切换为zhangyu:zhangyu,说明用户和用户组切换成功。

配置java和Hadoop环境

  1. 创建/data/hadoop1目录,用来存放相关安装工具,如jdk安装包jdk-7u75-linux-x64.tar.gz及hadoop安装包hadoop-2.6.0-cdh5.4.5.tar.gz。

    mkdir -p /data/hadoop1
  2. 切换目录到/data/hadoop1目录,使用wget命令,下载所需的hadoop安装包jdk-7u75-linux-x64.tar.gz及hadoop-2.6.0-cdh5.4.5.tar.gz。
    cd /data/hadoop1
    wget http://59.64.78.41:60000/allfiles/hadoop1/jdk-7u75-linux-x64.tar.gz
    wget http://59.64.78.41:60000/allfiles/hadoop1/hadoop-2.6.0-cdh5.4.5.tar.gz
  3. 安装jdk。将/data/hadoop1目录下jdk-7u75-linux-x64.tar.gz 解压缩到/apps目录下。(其中,tar -xzvf 对文件进行解压缩,-C 指定解压后,将文件放到/apps目录下)
    tar -xzvf /data/hadoop1/jdk-7u75-linux-x64.tar.gz -C /apps

    切换到/apps目录下, 将jdk1.7.0_75目录重命名为java

    mv /apps/jdk1.7.0_75/  /apps/java

    下面来修改环境变量:系统环境变量或用户环境变量。我们在这里修改用户环境变量。 打开存储环境变量的文件( .bashrc )。空几行,将java的环境变量,追加进用户环境变量中。

    # java
    export JAVA_HOME=/apps/java
    export PATH=$JAVA_HOME/bin:$PATH

    让环境变量立即生效

    source ~/.bashrc

    执行source命令,让java环境变量生效。执行完毕后,可以输入java,来测试环境变量是否配置正确。

  4. 安装hadoop,切换到/data/hadoop1目录下,将hadoop-2.6.0-cdh5.4.5.tar.gz解压缩到/apps目录下。
    cd /data/hadoop1
    tar -xzvf /data/hadoop1/hadoop-2.6.0-cdh5.4.5.tar.gz -C /apps/

    为了便于操作,我们也将hadoop-2.6.0-cdh5.4.5重命名为hadoop。

    mv /apps/hadoop-2.6.0-cdh5.4.5/ /apps/hadoop

    修改用户环境变量,将hadoop的路径添加到path中。先打开用户环境变量文件(.bashrc),并将Hadoop的环境变量追加到这个环境变量配置文件中。

    sudo vim ~/.bashrc
    # 将下列内容写在.bashrc文件中
    #hadoop
    export HADOOP_HOME=/apps/hadoop
    export PATH=$HADOOP_HOME/bin:$PATH

    让环境变量立即生效

    source ~/.bashrc

    验证hadoop环境变量配置是否正常,如果正常打印出Hadoop的版本信息表明配置正确。

    hadoop version

修改Hadoop自身的一些配置

编辑hadoop-env.sh 文件

切换到Hadoop的配置目录下,编辑hadoop-env.sh文件

cd /apps/hadoop/etc/hadoop
vim /apps/hadoop/etc/hadoop/hadoop-env.sh

将下面JAVA_HOME追加到hadoop-env.sh文件中。

export JAVA_HOME=/apps/java
编辑core-site.xml文件

打开core-site.xml配置文件

vim /apps/hadoop/etc/hadoop/core-site.xml

添加下面配置到<configuration>与</configuration>标签之间

<property>
    <name>hadoop.tmp.dir</name>
    <value>/data/tmp/hadoop/tmp</value>
</property>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://0.0.0.0:9000</value>
</property>

配置项说明:

  • hadoop.tmp.dir,配置hadoop处理过程中,临时文件的存储位置。这里的目录/data/tmp/hadoop/tmp需要提前创建
  • fs.defaultFS,配置hadoop HDFS文件系统的地址
编辑hdfs-site,xml文件

打开hdfs-site.xml配置文件

vim /apps/hadoop/etc/hadoop/hdfs-site.xml

添加下面配置到<configuration>与</configuration>标签之间

<property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/tmp/hadoop/hdfs/name</value>
</property>
 <property>
     <name>dfs.datanode.data.dir</name>
     <value>/data/tmp/hadoop/hdfs/data</value>
 </property>
 <property>
     <name>dfs.replication</name>
     <value>1</value>
 </property>
 <property>
     <name>dfs.permissions.enabled</name>
     <value>false</value>
 </property>

配置项说明:

  • dfs.namenode.name.dir,配置元数据信息存储位置
  • dfs.datanode.data.dir,配置具体数据存储位置
  • dfs.replication,配置每个数据库备份数,由于目前我们使用1台节点,所以,设置为1,如果设置为2的话,运行会报错
  • dfs.replications.enabled,配置hdfs是否启用权限认证

另外/data/tmp/hadoop/hdfs路径,需要提前创建,所以我们需要执行

mkdir -p /data/tmp/hadoop/hdfs
编辑slaves文件

打开slaves配置文件

vim /apps/hadoop/etc/hadoop/slaves

将集群中slave角色的节点的主机名,添加进slaves文件中。目前只有一台节点,所以slaves文件内容为:

localhost

下面格式化HDFS文件系统 ,执行:

hadoop namenode -format

切换目录到/apps/hadoop/sbin目录下,启动Hadoop的hdfs相关进程

cd /apps/hadoop/sbin/
./start-dfs.sh

在终端中输入jps命令查看HDFS相关进程是否启动,如果出现Datanode,NameNode,SecondaryNameNode,Jps这些字眼,说明HDFS相关进程已经启动。

下面验证HDFS的运行状态

先在HDFS上创建一个目录

hadoop fs -mkdir /myhadoop1

执行下面命令,查看目录是否创建成功

hadoop fs -ls -R /
配置MapReduce

切换到hadoop配置文件目录

cd /apps/hadoop/etc/hadoop

将mapreduce的配置文件mapred-site.xml.template,重命名为mapred-site.xml

mv /apps/hadoop/etc/hadoop/mapred-site.xml.template  /apps/hadoop/etc/hadoop/mapred-site.xml
编辑mapred-site.xml文件
vim /apps/hadoop/etc/hadoop/mapred-site.xml

将mapreduce相关配置,添加到<configuration>标签之间

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

这里指定mapreduce任务处理所使用的框架 --> yarn

编辑yarn-site.xml文件
vim /apps/hadoop/etc/hadoop/yarn-site.xml

将yarn相关配置,添加到<configuration>标签之间

<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

启动yarn

下面来启动计算层面相关进程,切换到hadoop启动目录

cd /apps/hadoop/sbin/

执行命令,启动yarn

./start-yarn.sh

在终端中输入jps命令查看HDFS相关进程是否启动,如果出现Datanode, NameNode,SecondaryNameNode,Jps,ResourceManager,NodeManager这些字眼,说明HDFS相关进程已经启动

测试hadoop的运行

切换到/apps/hadoop/share/hadoop/mapreduce目录下

cd /apps/hadoop/share/hadoop/mapreduce

在该目录下跑一个mapreduce程序,来检测一下hadoop是否能正常运行

hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.4.5.jar pi 3 3

这个程序是计算数学中的pi值。当然暂时先不用考虑数据的准确性。

当程序能计算出Pi的值,说明hadoop已经安装配置完成。

原文地址:https://www.cnblogs.com/finlu/p/11583783.html

时间: 2024-10-29 04:39:40

Hadoop 伪分布式模式安装的相关文章

Hadoop伪分布式模式安装

<Hadoop权威指南(第2版)>来讲,伪分布式(pseude-distributed model)是指Hadoop守护进程运行在本地机器上,模拟一个小规模的集群. 这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点(NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode) Hadoop安装 参考: http://www.cnblogs.com/xs104/p/4484268.html 配置Hadoop

【HBase基础教程】1、HBase之单机模式与伪分布式模式安装

在这篇blog中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建hbase伪分布式环境的前提是我们已经搭建好了hadoop完全分布式环境,搭建hadoop环境请参考:[Hadoop基础教程]4.Hadoop之完全分布式环境搭建 开发环境 硬件环境:Centos 6.5 服务器4台(一台为Master节点,三台为Slave节点) 软件环境:Java 1.7.0_45.Eclipse Juno Service Release 2.hadoop-1

HBase入门基础教程 HBase之单机模式与伪分布式模式安装

在本篇文章中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建HBase伪分布式环境的前提是我们已经搭建好了Hadoop完全分布式环境,搭建Hadoop环境请参考:[Hadoop入门基础教程]4.Hadoop之完全分布式环境搭建 开发环境 硬件环境:CentOS 6.5 服务器4台(一台为Master节点,三台为Slave节点) 软件环境:Java 1.7.0_45.Eclipse Juno Service Release 2.hadoop-1

hadoop伪分布式模式下安装及运行

一 . 安装JDK 查询目前系统的JDK: rpm -qa|grep jdk. 卸载JDK yum -y remove xx tar -xzvf jdk-7u80-linux-x64.tar.gz 配置环境变量: vim /etc/profile export JAVA_HOME=/opt/softwares/jdk1.7.0_80 export PATH=$PATH:$JAVA_HOME/bin source /etc/profile 验证安装 java -version 二 . 配置伪分布式

Hadoop 伪分布式上安装 HBase

hbase下载:点此链接  (P.S.下载带bin的) 下载文件放入虚拟机文件夹,打开,放在自己指定的文件夹 tar -zxf /home/tools/hbase-1.2.6-src.tar.gz -C /home/software/ 修改环境配置 gedit /etc/profile //修改环境配置 //文件中添加 export HBASE_HOME=/home/software/hbase-1.2.6 export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME

Hadoop伪分布式模式部署(接单机模式)

一.相关配置文件修改 ①修改core-site.xml: $ su -l hadoop $ cd /usr/local/hadoop/ $ sudo vi etc/hadoop/core-site.xml <configuration>     <property>         <name>fs.defaultFS</name>         <value>hdfs://localhost:9000</value>     &l

伪分布式模式的Hadoop环境搭建

一.本文说明:     本次测试在一台虚拟机系统上进行伪分布式搭建.Hadoop伪分布式模式是在单机上模拟Hadoop分布式,单机上的分布式并不是真正的伪分布式,而是使 用线程模拟分布式.Hadoop本身是无法区分伪分布式和分布式的,两种配置也很相似.唯一不同的地方是伪分布式是在单机器上配置,数据节点和名字节点均 是一个机器. 二.环境说明:      操作系统:Cent Os 6.7      hadoop版本:hadoop-2.7.2      JDK版本:jdk1.8_77     备注:

【HBase基础教程】2、HBase之完全分布式模式安装

上一篇blog我们介绍了Hbase的单机模式安装与伪分布式的安装方式,本篇blog我们将详细介绍如何搭建hbase完全分布式环境,搭建hbase完全分布式环境的前提是我们已经搭建好了hadoop完全分布式环境,搭建hadoop完全分布式环境请参考:[Hadoop基础教程]4.Hadoop之完全分布式环境搭建 开发环境 硬件环境:Centos 6.5 服务器4台(一台为Master节点,三台为Slave节点) 软件环境:Java 1.7.0_45.Eclipse Juno Service Rele

在RHEL 6.5上部署Hadoop 2.6伪分布式模式(单机)

第一步:安装JAVA 1.7               此步骤略过,太简单了,可参考这个: http://blog.sina.com.cn/s/blog_6a7cdcd40101b1j6.html   第二步:创建Haddop专用用户             虽然使用root用户也可以部署hadoop,但从系统安全及规范的角度考虑,还是建议大家创建专用的用户(本例中为hadoop,实际中可以是任意用户名),创建用户的命令: # useradd hadoop # passwd hadoop