菜鸟的博客

纵有疾风起,人生不言弃。

导航

Hadoop伪分布模式安装

一、实验目的

1、了解Hadoop的3种运行模式

2、熟练掌握Hadoop伪分布模式安装流程

3、培养独立完成Hadoop伪分布安装的能力

二、实验过程

 

1.此步为可选项,建议用户创建一个新用户及用户组,后续的操作基本都是在此用户下来操作。但是用户亦可在自己当前非root用户下进行操作。            创建一个用户,名为zhangyu,并为此用户创建home目录,此时会默认创建一个与zhangyu同名的用户组。

sudo useradd -d /home/zhangyu -m zhangyu

为zhangyu用户设置密码,执行下面的语句

sudo passwd zhangyu

按提示消息,输入密码以及确认密码即可,此处密码设置为zhangyu

将zhangyu用户的权限,提升到sudo超级用户级别

sudo usermod -G sudo zhangyu

后续操作,我们需要切换到zhangyu用户下来进行操作。

su - zhangyu

 

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

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

ssh-keygen -t rsa

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

zhangyu@b6b1577cfbc8:/apps$ ssh-keygen -t rsa

Generating public/private rsa key pair.

Enter file in which to save the key (/home/zhangyu/.ssh/id_rsa):

Created directory '/home/zhangyu/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/zhangyu/.ssh/id_rsa.

Your public key has been saved in /home/zhangyu/.ssh/id_rsa.pub.

The key fingerprint is:

b3:00:c6:75:86:d6:8b:17:45:c6:7d:a1:74:aa:16:a7 zhangyu@b6b1577cfbc8

The key's randomart image is:

+--[ RSA 2048]----+

|      .oo++.. o. |

|   . .ooo....+.  |

|    +. . o. +.   |

|   . .. o  =     |

|      ..S E      |

|       . +       |

|        .        |

|                 |

|                 |

+-----------------+

zhangyu@b6b1577cfbc8:/apps$

此时ssh公钥和私钥已经生成完毕,且放置在~/.ssh目录下。切换到~/.ssh目录下

cd ~/.ssh

可以看到~/.ssh目录下的文件

zhangyu@b6b1577cfbc8:~/.ssh$ ll

总用量 16

drwx------  2 zhangyu zhangyu 4096 11月  1 06:37 ./

drwxr-xr-x 51 zhangyu zhangyu 4096 11月  1 06:37 ../

-rw-------  1 zhangyu zhangyu 1675 11月  1 06:37 id_rsa

-rw-r--r--  1 zhangyu zhangyu  402 11月  1 06:37 id_rsa.pub

zhangyu@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访问,会提醒是否继续连接,输入“yes"继续进行,执行完以后退出

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$

后续再执行ssh localhost时,就不用输入密码了

 

 

 

3.下面首先来创建两个目录,用于存放安装程序及数据。

sudo mkdir /apps

sudo mkdir /data

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

sudo chown -R zhangyu:zhangyu /apps

sudo chown -R zhangyu:zhangyu /data

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

切换到根目录下,执行 ls -l 命令

cd /

ls -l

可以看到根目录下/apps和/data目录所属用户及用户组已切换为zhangyu:zhangyu

drwxr-xr-x 171 root    root      4096 11月  2 01:56 ./

drwxr-xr-x 171 root    root      4096 11月  2 01:56 ../

drwxr-xr-x   4 zhangyu zhangyu   4096 11月  1 02:39 apps/

drwxr-xr-x   2 root    root      4096 11月  1 02:56 bin/

drwxr-xr-x   2 root    root      4096  4月 10  2014 boot/

drwxr-xr-x   2 zhangyu zhangyu   4096 11月  2 01:56 data/

-rw-r--r--   1 root    root    193531  8月 17 10:04 desk.jpg

 

4.配置HDFS。

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

mkdir -p /data/hadoop1

切换目录到/data/hadoop1目录,使用wget命令,下载所需的hadoop安装包jdk-7u75-linux-x64.tar.gz及hadoop-2.6.0-cdh5.4.5.tar.gz。

cd /data/hadoop1

wget http://192.168.1.150:60000/allfiles/hadoop1/jdk-7u75-linux-x64.tar.gz

wget http://192.168.1.150:60000/allfiles/hadoop1/hadoop-2.6.0-cdh5.4.5.tar.gz

 

5.安装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目录下。

切换到/apps目录下,我们可以看到目录下内容如下:

cd /apps/

ls -l

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

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

 

6.下面来修改环境变量:系统环境变量或用户环境变量。我们在这里修改用户环境变量。

sudo vim ~/.bashrc

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

#java

export JAVA_HOME=/apps/java

export PATH=$JAVA_HOME/bin:$PATH

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

让环境变量生效。

source ~/.bashrc

执行source命令,让java环境变量生效。执行完毕后,可以输入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:~$

 

 

 

7.下面安装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

 

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

sudo vim ~/.bashrc

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

#hadoop

export HADOOP_HOME=/apps/hadoop

export PATH=$HADOOP_HOME/bin:$PATH

让环境变量生效。

source ~/.bashrc

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

hadoop version

 

 

 

9.下面来修改hadoop本身相关的配置。首先切换到hadoop配置目录下。

cd /apps/hadoop/etc/hadoop

 

10.输入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

 

11.输入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://localhost:9000</value>

  </property>

这里有两项配置:

一项是hadoop.tmp.dir,配置hadoop处理过程中,临时文件的存储位置。这里的目录/data/tmp/hadoop/tmp需要提前创建。

mkdir -p /data/tmp/hadoop/tmp

 

另一项是fs.defaultFS,配置hadoop HDFS文件系统的地址。

 

12.输入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.permissions.enabled,配置hdfs是否启用权限认证

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

mkdir -p /data/tmp/hadoop/hdfs

 

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

vim /apps/hadoop/etc/hadoop/slaves

 

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

localhost

 

14.下面格式化HDFS文件系统。执行:

hadoop namenode -format

 

15.切换目录到/apps/hadoop/sbin目录下。

cd /apps/hadoop/sbin/

 

16.启动hadoop的hdfs相关进程。

./start-dfs.sh

 

这里只会启动HDFS相关进程。

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

jps

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

 

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

hadoop fs -mkdir /myhadoop1

 

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

hadoop fs -ls -R /

 

以上,便是HDFS安装过程。

20.下面来配置MapReduce相关配置。再次切换到hadoop配置文件目录

cd /apps/hadoop/etc/hadoop

 

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

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

 

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

 

23.输入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>

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

 

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

cd /apps/hadoop/sbin/

 

25.执行命令,启动yarn。

./start-yarn.sh

 

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

 

27.执行测试。

切换到/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值。当然暂时先不用考虑数据的准确性。当你看到下面流程的时候,表示程序已正常运行,hadoop环境也是没问题的。

posted on 2025-04-29 22:37  hhmzd233  阅读(16)  评论(0)    收藏  举报