【Hadoop】安装Apache Hadoop

一、环境介绍

本篇博客介绍手工安装Apache Hadoop的过程,建立VMware上建立三台Linux虚拟机,每台硬盘20G,内存1G。

1. 环境版本

操作系统:CentOS 6.7

Java版本:jdk-7u79-linux-x64.tar

Hadoop版本:hadoop-2.7.5

2. 主机规划

192.168.56.101 master

192.168.56.102 slave1

192.168.56.103 slave2

master上运行NameNode和ResourceManager进程。其他两台做slave,运行DataNode和NodeManager进程。

二、安装前准备

默认已经安装了三台Linux虚拟机。第1、2步使用root用户执行,3、4步使用grid用户执行。

1. 分别在三台机器上建立grid用户

#创建grid用户,指定主目录

useradd -d /home/grid -m grid

#把grid用户加入root组

usermod -a -G root grid

#修改grid用户密码

passwd grid

2. 分别修改三台机器的hosts文件,用作域名解析

vi /etc/hosts

#添加如下内容

192.168.56.101 master

192.168.56.102 slave1

192.168.56.103 slave2

3. 分别在三台机器上安装Java(默认Java安装包已上传到grid用户的/home/grid下)

(1)解压安装包

#切换到grid主目录

cd /home/grid

#解压

tar -zxvf jdk-7u79-linux-x64.tar.gz

(2)配置java环境变量

vi /home/grid/.bash_profile

#添加如下内容:

export JAVA_HOME=/usr/java/jdk1.7.0_79/

export PATH=$JAVA_HOME/bin:$PATH

(3)生效配置的环境变量

 . .bash_profile

(4)测试配置是否成功

java -version

#出现如下内容,说明配置成功

java version "1.7.0_79"

OpenJDK Runtime Environment (rhel-2.5.5.4.el6-x86_64 u79-b14)

OpenJDK 64-Bit Server VM (build 24.79-b02, mixed mode)

4. 配置互信(SSH免密登陆)

(1)三台机器均执行

# 进入grid用户主目录

cd /home/grid

# 生成密钥对,一路按回车

ssh-keygen -t rsa

(2)在master上执行

# 进入.ssh

cd .ssh

# 把本机的公钥追加到自身的~/.ssh/authorized_keys文件中

ssh-copy-id 192.168.56.101

# 将authorized_keys文件复制到第二台机器上

scp /home/grid/.ssh/authorized_keys 192.168.56.102:/home/grid/.ssh/

(3)在slave1上执行

cd ~/.ssh/

ssh-copy-id 192.168.56.102

scp /home/grid/.ssh/authorized_keys 192.168.56.103:/home/grid/.ssh/

(4)在slave2上执行

cd ~/.ssh/

ssh-copy-id 192.168.56.103

# 此时authorized_keys文件中已包含所有三台主机的公钥,将它复制其他两台机器

scp /home/grid/.ssh/authorized_keys 192.168.56.101:/home/grid/.ssh/

scp /home/grid/.ssh/authorized_keys 192.168.56.102:/home/grid/.ssh/

(5)验证

#如无需密码成功登陆其他机器,则说明配置完成,下面演示登陆master

ssh master

至此,免密登陆配置完成!

 

三、安装配置Hadoop

以下均使用grid用户,在master主机上完成

1. 安装包上传到目录/home/grid下,上传过程略

#切换到grid用户主目录

cd /home/grid

#解压安装包

tar -zxvf hadoop-2.7.5.tar.gz

2. 建立目录

cd ~/hadoop-2.7.5

mkdir tmp

mkdir hdfs

mkdir hdfs/data

mkdir hdfs/name

3. 设置环境变量

vi ~/.bash_profile

#添加如下内容

export HADOOP_HOME=/usr/hadoop/hadoop-2.7.5

export PATH=$PATH:$HADOOP_HOME/bin

4. 生效环境变量

. ~/.bash_profile

5. 修改配置文件

以下要添加的内容,均添加在文件中的<configuration> </configuration>之间。

(1)Hadoop全局配置文件core-site.xml

vi ~/hadoop-2.7.5/etc/hadoop/core-site.xml

#添加如下内容

<property>

    <name>fs.defaultFS</name>

    <value>hdfs://192.168.56.101:9000</value>

</property>

<property>

    <name>hadoop.tmp.dir</name>

    <value>file:/home/grid/hadoop-2.7.5/tmp</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>131072</value>

</property>

(2)HDFS配置文件hdfs-site.xml

vi ~/hadoop-2.7.5/etc/hadoop/hdfs-site.xml

#添加如下内容

<property>

    <name>dfs.namenode.name.dir</name>

    <value>file:/home/grid/hadoop-2.7.5/hdfs/name</value>

</property>

<property>

    <name>dfs.datanode.data.dir</name>

    <value>file:/home/grid/hadoop-2.7.5/hdfs/data</value>

</property>

<property>

    <name>dfs.replication</name>

    <value>2</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>192.168.56.101:9001</value>

</property>

<property>

<name>dfs.namenode.servicerpc-address</name>

<value>192.168.56.101:10000</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

(3)YARN配置文件yarn-site.xml

vi ~/hadoop-2.7.5/etc/hadoop/yarn-site.xml

#添加如下内容    

<property>

    <name>yarn.nodemanager.aux-services</name>

    <value>mapreduce_shuffle</value>

    </property>

    <property>

    <name>yarn.nodemanager.aux_services.mapreduce.shuffle.class</name>

    <value>org.apache.hadoop.mapred.ShuffleHandler</value>

    </property>

    <!-- 设置 resourcemanager在哪个节点-->

    <property>

        <name>yarn.resourcemanager.address</name>

        <value>192.168.56.101:8032</value>

    </property>

    <property>

        <name>yarn.resourcemanager.scheduler.address</name>

        <value>192.168.56.101:8030</value>

    </property>

    <property>

        <name>yarn.resourcemanager.resource-tracker.address</name>

        <value>192.168.56.101:8031</value>

    </property>

    <property>

        <name>yarn.resourcemanager.admin.address</name>

        <value>192.168.56.101:8033</value>

    </property>

    <property>

        <name>yarn.resourcemanager.webapp.address</name>

        <value>192.168.56.101:8088</value>

    </property>

    <!-- reducer取数据的方式是mapreduce_shuffle -->

    <property>

        <name>yarn.nodemanager.resource.memory-mb</name>

        <value>1024</value>

    </property>

(4)MapReduce配置文件mapred-site.xml

#需要修改文件名称

cd ~/hadoop-2.7.5/etc/hadoop/

mv mapred-site.xml.template mapred-site.xml

#修改文件

vi ~/hadoop-2.7.5/etc/hadoop/mapred-site.xml

#添加如下内容

<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

</property>

 

<property>

        <name>mapreduce.jobhistory.address</name>

        <value>192.168.56.101:10020</value>

</property>

 

<property>

        <name>mapreduce.jobhistory.webapp.address</name>

        <value>192.168.56.101:19888</value>

</property>

(5)配置slaves文件

vi ~/hadoop-2.7.5/etc/hadoop/slaves

#添加如下内容

192.168.56.102

192.168.56.103

(6)配置hadoop-env.sh文件

vi ~/hadoop-2.7.5/etc/hadoop/hadoop-env.sh

#添加如下内容

export JAVA_HOME=/home/grid/jdk1.7.0_79/

(7)配置yarn-env.sh文件

vi ~/hadoop-2.7.5/etc/hadoop/yarn-env.sh

#添加如下内容

export JAVA_HOME=/home/grid/jdk1.7.0_79/

(8)将Hadoop主目录复制到其他两台机器

scp -r ./hadoop-2.7.5 192.168.56.102:/home/grid/

scp -r ./hadoop-2.7.5 192.168.56.103:/home/grid/

6. 使用root用户分别在三台机器上修改/etc/profile,设置环境变量

vi /etc/profile

#添加如下内容

export JAVA_HOME=/home/grid/jdk1.7.0_79

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export HADOOP_HOME=/home/grid/hadoop-2.7.5

export HADOOP_COMMON_HOME=$HADOOP_HOME

export HADOOP_HDFS_HOME=$HADOOP_HOME

export HADOOP_MAPRED_HOME=$HADOOP_HOME

export HADOOP_YARN_HOME=$HADOOP_HOME

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/lib

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"

export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native

 

#生效环境变量

. /etc/profile

 7. 初始化及运行Hadoop

以下均使用grid用户在master机器上执行。

(1)初始化

hdfs namenode -format

#当出现如下信息时,表示初始化成功

18/01/02 21:56:06 INFO namenode.NameNode: STARTUP_MSG:

/************************************************************

STARTUP_MSG: Starting NameNode

STARTUP_MSG:   host = master/192.168.56.101

STARTUP_MSG:   args = [-format]

STARTUP_MSG:   version = 2.7.5

...

...

18/01/02 21:56:27 INFO common.Storage: Storage directory /home/grid/hadoop-2.7.5/hdfs/name has been successfully formatted.

18/01/02 21:56:27 INFO namenode.FSImageFormatProtobuf: Saving image file /home/grid/hadoop-2.7.5/hdfs/name/current/fsimage.ckpt_0000000000000000000 using no compression

18/01/02 21:56:28 INFO namenode.FSImageFormatProtobuf: Image file /home/grid/hadoop-2.7.5/hdfs/name/current/fsimage.ckpt_0000000000000000000 of size 321 bytes saved in 0 seconds.

18/01/02 21:56:28 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0

18/01/02 21:56:28 INFO util.ExitUtil: Exiting with status 0

18/01/02 21:56:28 INFO namenode.NameNode: SHUTDOWN_MSG:

/************************************************************

SHUTDOWN_MSG: Shutting down NameNode at master/192.168.56.101

************************************************************/

(2)启动Hadoop

A.启动命令

cd /home/grid/hadoop-2.7.5

sbin/start-all.sh

#关闭命令为stop-all.sh

B.验证

在各个机器上执行jps命令,当有以下进程时说明启动成功。

#master机器SecondaryNameNode、ResourceManager、NameNode三个进程

8637 Jps

8219 SecondaryNameNode

8373 ResourceManager

8005 NameNode

#slave机器DataNode、NodeManager两个进程

4438 DataNode

4645 Jps

4545 NodeManager

下次启动Hadoop时,无需初始化,只需执行启动命令。实际上Hadoop系统建议启动命令分两步,先执行start-dfs.sh,在执行start-yarn.sh启动YARN。

至此,Apache Hadoop安装配置完成!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值