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

任务内容

在只安装Linux系统的服务器上,安装Hadoop2.6.0伪分布模式。

开始:

1..首先来配置SSH免密码登陆

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

ssh-keygen -t rsa

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

zhangsan@b6b1577cfbc8:/apps$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/zhangsan/.ssh/id_rsa):
Created directory '/home/zhangsan/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/zhangsan/.ssh/id_rsa.
Your public key has been saved in /home/zhangsan/.ssh/id_rsa.pub.
The key fingerprint is:
b3:00:c6:75:86:d6:8b:17:45:c6:7d:a1:74:aa:16:a7 zhangsan@b6b1577cfbc8
The key's randomart image is:
+--[ RSA 2048]----+
|      .oo++.. o. |
|   . .ooo....+.  |
|    +. . o. +.   |
|   . .. o  =     |
|      ..S E      |
|       . +       |
|        .        |
|                 |
|                 |
+-----------------+
zhangyu@b6b1577cfbc8:/apps$

此时ssh公钥和私钥已经生成完毕,且放置在~/.ssh目录下。可以看到~/.ssh目录下的文件

zhangsan@b6b1577cfbc8:~/.ssh$ ll ~/.ssh/
总用量 16
drwx------  2 zhangsan zhangsan 4096 11月  1 06:37 ./
drwxr-xr-x 51 zhangsan zhangsan 4096 11月  1 06:37 ../
-rw-------  1 zhangsan zhangsan 1675 11月  1 06:37 id_rsa
-rw-r--r--  1 zhangsan zhangsan  402 11月  1 06:37 id_rsa.pub
zhangsan@b6b1577cfbc8:~/.ssh$

 下面在~/.ssh目录下,创建一个空文本,名为authorized_keys

touch ~/.ssh/authorized_keys

 将存储公钥文件的id_rsa.pub里的内容,追加到authorized_keys中

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

下面执行ssh localhost测试ssh配置是否正确

ssh localhost

一次使用ssh访问,会提醒是否继续连接

zhangyu@b6b1577cfbc8:~/.ssh$ ssh localhost
The authenticity of host 'localhost (127.0.0.1)' can't be established.
ECDSA key fingerprint is 72:63:26:51:c7:2a:9e:81:24:55:5c:43:b6:7c:14:10.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
Welcome to Ubuntu 14.04.2 LTS (GNU/Linux 3.16.0-23-generic x86_64)
 * Documentation:  https://help.ubuntu.com/
Last login: Tue Nov  1 06:04:05 2016 from 192.168.1.179
zhangyu@b6b1577cfbc8:~$
zhangyu@b6b1577cfbc8:~$ exit
注销
Connection to localhost closed.
zhangyu@b6b1577cfbc8:~/.ssh$

2.创建两个目录

mkdir /apps
mkdir /data

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

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

注:用户和用户组可根据自己需要变化

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

3.配置HDFS

到网上下载jdk,本例使用的是jdk-7u75-linux-x64

同时下载hadoop,本例版本是hadoop-2.6.0-cdh5.4.5

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

mkdir -p /data/hadoop1

4.安装jdk

将/data/hadoop1目录下jdk-7u75-linux-x64.tar.gz 解压缩到/apps目录下。

tar -xzvf /data/hadoop1/jdk-7u75-linux-x64.tar.gz -C /apps

 其中,tar -xzvf 对文件进行解压缩,-C 指定解压后,将文件放到/apps目录下。

下面将jdk1.7.0_75目录重命名为java,执行:

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

5.修改环境变量

   修改系统环境变量或用户环境变量。我们在这里修改用户环境变量。

vim ~/.bashrc  

输入上面的命令,打开存储环境变量的文件。空几行,将java的环境变量,追加进用户环境变量中。

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

输入Esc, 进入vim命令模式,输入 :wq !进行保存。

让环境变量生效。

source ~/.bashrc 

执行source命令,让java环境变量生效。执行完毕后,可以输入java,来测试环境变量是否配置正确。如果出现下面界面,则正常运行

zhangyu@6ebe6fe49149:~$ java  
用法: java [-options] class [args...]  
           (执行类)  
   或  java [-options] -jar jarfile [args...]  
           (执行 jar 文件)  
其中选项包括:  
    -d32      使用 32 位数据模型 (如果可用)  
    -d64      使用 64 位数据模型 (如果可用)  
    -server   选择 "server" VM  
                  默认 VM 是 server,  
                  因为您是在服务器类计算机上运行。  
    -cp <目录和 zip/jar 文件的类搜索路径>  
    -classpath <目录和 zip/jar 文件的类搜索路径>  
                  用 : 分隔的目录, JAR 档案  
                  和 ZIP 档案列表, 用于搜索类文件。  
    -D<名称>=<值>  
    设置系统属性  
    -verbose:[class|gc|jni]  
    启用详细输出  
    -version      输出产品版本并退出  
    -version:<值>  
    需要指定的版本才能运行  
    -showversion  输出产品版本并继续  
    -jre-restrict-search | -no-jre-restrict-search  
    在版本搜索中包括/排除用户专用 JRE  
    -? -help      输出此帮助消息  
    -X            输出非标准选项的帮助  
    -ea[:<packagename>...|:<classname>]  
    -enableassertions[:<packagename>...|:<classname>]  
    按指定的粒度启用断言  
    -da[:<packagename>...|:<classname>]  
    -disableassertions[:<packagename>...|:<classname>]  
    禁用具有指定粒度的断言  
    -esa | -enablesystemassertions  
    启用系统断言  
    -dsa | -disablesystemassertions  
    禁用系统断言  
    -agentlib:<libname>[=<选项>]  
    加载本机代理库 <libname>, 例如 -agentlib:hprof  
    另请参阅 -agentlib:jdwp=help 和 -agentlib:hprof=help  
    -agentpath:<pathname>[=<选项>]  
   按完整路径名加载本机代理库  
   -javaagent:<jarpath>[=<选项>]  
   加载 Java 编程语言代理, 请参阅 java.lang.instrument  
   -splash:<imagepath>  
   使用指定的图像显示启动屏幕  
   有关详细信息, 请参阅 http://www.oracle.com/technetwork/java/javase/documentation/index.html。  
   zhangyu@6ebe6fe49149:~$ 

6.安装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 

7.修改用户环境变量

将hadoop的路径添加到path中。先打开用户环境变量文件

vim ~/.bashrc  

将以下内容追加到环境变量~/.bashrc文件中。

#hadoop  
export HADOOP_HOME=/apps/hadoop  
export PATH=$HADOOP_HOME/bin:$PATH 

让环境变量生效。

source ~/.bashrc

验证hadoop环境变量配置是否正常

hadoop version

8.修改hadoop本身相关的配置

输入vim /apps/hadoop/etc/hadoop/hadoop-env.sh,打开hadoop-env.sh配置文件。

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

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

export JAVA_HOME=/apps/java 

输入vim /apps/hadoop/etc/hadoop/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文件系统的地址。

创建目录/data/tmp/hadoop/tmp

mkdir -p /data/tmp/hadoop/tmp

输入vim /apps/hadoop/etc/hadoop/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 

 输入vim /apps/hadoop/etc/hadoop/slaves,打开slaves配置文件。

vim /apps/hadoop/etc/hadoop/slaves

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

localhost 

9.格式化HDFS文件系统

hadoop namenode -format  

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

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

这里只会启动HDFS相关进程

输入jps查看HDFS相关进程是否已经启动。

jps 

我们可以看到相关进程,都已经启动。

 下面可以再进一步验证HDFS运行状态。先在HDFS上创建一个目录。

hadoop fs -mkdir /myhadoop1 

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

hadoop fs -ls -R / 

以上,便是HDFS安装过程。

10.配置MapReduce相关配置

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

mv /apps/hadoop/etc/hadoop/mapred-site.xml.template  /apps/hadoop/etc/hadoop/mapred-site.xml  

输入vim /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任务处理所使用的框架。

输入vim /apps/hadoop/etc/hadoop/yarn-site.xml,打开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>  

这里的配置是指定所用服务,默认为空。

下面来启动计算层面相关进程,切换到hadoop启动目录,执行命令,启动yarn。

cd /apps/hadoop/sbin/

./start-yarn.sh

输入jps,查看当前运行的进程。

11.执行测试

切换到/apps/hadoop/share/hadoop/mapreduce目录下然后,在该目录下跑一个mapreduce程序,来检测一下hadoop是否能正常运行

cd /apps/hadoop/share/hadoop/mapreduce


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

这个程序是计算数学中的pi值。当然暂时先不用考虑数据的准确性。当你看到下面流程的时候,表示程序已正常运行,hadoop环境也是没问题的。

至此,Hadoop 伪分布模式已经安装完成

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值