VirtualBox中搭建Hadoop 3.1.1完全分布式集群环境(二)CentOS7中安装及配置Hadoop

本文详细介绍了如何在VirtualBox中利用CentOS7搭建Hadoop 3.1.1完全分布式集群,包括安装OpenJDK、配置Hadoop环境、复制虚拟机、网络配置、SSH环境设置、Hadoop文件配置、启动与管理等步骤。

一、安装及配置java运行环境

1、安装OpenJDK1.8 

#安装jdk
#yum install java-1.8.0-openjdk-devel.x86_64

注:这里体验yum软件包管理工具:
(1)查找包(1)
#yum list | grep telnet-server
(2)查找包(2)
#yum search MySQL
(3)安装MySQL(在CentOS7中叫MariaDB)
#yum install mariadb-server.x86_64
(4)安装telnet
#yum install telnet.*

2、配置OpenJDK1.8运行环境 

#vi ~/.bashrc (或~/profile或/etc/profile)

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.191.b12-1.e17_6.x86_64/jre
export CLASSPATH=.:$JAVA_HOME/lib/rt.jar:$JAVA_HOME/lib/tools.jar 
export PATH=$PATH:$JAVA_HOME/bin 

二、安装及配置HADOOP运行环境

1、安装HADOOP

下载(参考curl命令:Linux curl命令详解)Hadoop3.1.1二进制发行包(参考hadoop-3.1.1.tar.gz下载页面),并解压至/home/hadoop/hadoop-3.1.1目录

#curl -O http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.1/hadoop-3.1.1.tar.gz  /home/hadoop/hadoop-3.1.1.tar.gz
#tar -xvf hadoop-3.1.1.tar.gz

2、配置HADOOP(不是必须)

#vi /etc/profile( 或/root/profile或 /root/.bashrc)
export HADOOP_INSTALL=/home/hadoop/hadoop-3.1.1
export PATH=${HADOOP_INSTALL}/bin:${HADOOP_INSTALL}/sbin:${PATH}
export HADOOP_MAPRED_HOME=${HADOOP_INSTALL}
export HADOOP_COMMON_HOME=${HADOOP_INSTALL} 
export HADOOP_HDFS_HOME=${HADOOP_INSTALL}
export YARN_HOME=${HADOOP_INSTALL}
export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_INSTALL}/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_INSTALL}/lib:${HADOOP_INSTALL}/lib/native"
#source /etc/profile

三、通过VirtualBox管理器复制上术首台虚拟机获得其他虚拟机

1、复制过程:略。

 2、网络配置:启动各虚拟机后,分别按照规划配置主机名(hn2、hn3)、网络地址(hn2:192.168.56.101)和(hn3:192.168.56.102)。主机名修改文件/etc/hostname文件(略)。配置本地域名解析文件/etc/hosts,增加配置内容如下。

                                    hn1 192.168.56.100

                                    hn2 192.168.56.101

                                    hn3 192.168.56.102

 

3、网络规划:hn1(192.168.56.100):NameNode, Secondary NameNode, ResourceManager

hn2(192.168.56.101)、hn3(192.168.56.102):DataNode, NodeManager

四、配置SSH环境

hn1中执行如下三条命令: 

#ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
#cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
#chmod 0600 ~/.ssh/authorized_keys

从hn1中分别登录hn2、hn3:

                      [root@hn1]#ssh root@192.168.56.101                          #登录hn2

                                  依次执行hn1中执行的SSH配置指令(如上,略)

                                   注:输入密码后切换至hn2,可通过hostname命令查看当前主机名

                      [root@hn2]#exit                                                             #从hn2中退出远程主机登录

                      [root@hn1]#ssh root@192.168.56.102                          #登录hn3 

                                  依次执行hn1中执行的SSH配置指令(如上,略)

                      [root@hn3]#exit                                                             #从hn3中退出远程主机登录

[root@hn1]#scp root@192.168.56.101:/root/.ssh/id_rsa.pub /root/id_rsa_hn2.pub
[root@hn1]#scp root@192.168.56.102:/root/.ssh/id_rsa.pub /root/id_rsa_hn3.pub
[root@hn1]#cat /root/id_rsa_hn2.pub >> /root/.ssh/authorized_keys
[root@hn1]#cat /root/id_rsa_hn3.pub >> /root/.ssh/authorized_keys 
[root@hn1]#scp /root/.ssh/authorized_keys root@192.168.56.101:/root/.ssh/authorized_keys
[root@hn1]#scp /root/.ssh/authorized_keys root@192.168.56.102:/root/.ssh/authorized_keys

 此时,三台机器可以互相通过SSH远程登录。

五、hadoop文件配置

参考:ClusterSetup 

 主要配置文件在${HADOOP_HOME}/etc/hadoop目录下的core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml和workers。

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hn1:9000</value>
    </property>
    <property>
        <name>Hadoop.tmp.dir</name>
        <value>/home/Hadoop/tmp</value>
    </property>
</configuration>

hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///home/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.name.dir</name>
        <value>file:///home/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>hn1:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hn1:50090</value>
    </property>
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
</configuration>

mapred-site.xml 

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>hn1:10020</value>
    </property>
    <property>
        <name>mapred.jobhistory.webapp.address</name>
        <value>hn1:19888</value>
    </property>
</configuration>

yarn-site.xml  

​
<configuration>
    <property>
        <name>yarn.nodemanager.aux-service</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hn1</value>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>file:///home/hadoop/yarn/nm</value>
    </property>
</configuration>



​

workers内容(在Hadoop2.X中是修改slaves文件)

hn2
hn3

 六、Hadoop运行环境配置

修改 ${HADOOP_HOME}/sbin目录下:start-dfs.sh、stop-dfs.sh、start-yarn.sh、stop-yarn.sh

1、在start-dfs.sh、stop-dfs.sh开头部分添加以下环境

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_NAMENODE_SECONDARYNAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

2、在start-yarn.sh、stop-yarn.sh开头部分添加以下环境 

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

七、分发Hadoop配置至其他虚拟机  

#scp ${HADOOP_HOME}/etc/hadoop/*.* root@192.168.56.101:/home/hadoop/hadoop-3.1.1/etc/hadoop/
#scp ${HADOOP_HOME}/etc/hadoop/*.* root@192.168.56.102:/home/hadoop/hadoop-3.1.1/etc/hadoop/
#scp ${HADOOP_HOME}/sbin/*.* root@192.168.56.101:/home/hadoop/hadoop-3.1.1/sbin
#scp ${HADOOP_HOME}/sbin/*.* root@192.168.56.101:/home/hadoop/hadoop-3.1.1/sbin

八、Hadoop启动及文件管理

1、文件管理

#${HADOOP_HOME}/bin/hdfs -namenode format        #启动Hadoop前必须执行语句
#${HADOOP_HOME}/bin/hdfs dfs -chmod ugo+rwx /    #给根目录授权,这里允许所有用户都可以读写执行,请根据实际设置
#${HADOOP_HOME}/bin/hdfs dfs -mkdir /user        #在根目录下创建目录文件/user
#${HADOOP_HOME}/bin/hdfs dfs -rm -f -r /user     #在根目录下删除目录文件/user
#${HADOOP_HOME}/bin/hdfs dfs -rm -f -r /user/input  #在根目录下删除目录文件/user/input
#${HADOOP_HOME}/bin/hdfs dfs -put ${HADOOP_HOME}/etc/hadoop/*.xml /user/input/ 上传文件

2、启动

${HADOOP_HOME}/sbin/start-all.sh

##启动jobhistory(对应上面mapred-site.xml文件中的10020、19888端口)
${HADOOP_HOME}/sbin/mr-jobhistory-daemon.sh start historyserver

3、关闭

${HADOOP_HOME}/sbin/stop-all.sh
${HADOOP_HOME}/sbin/mr-jobhistory-daemon.sh stop historyserver

4、查看Hadoop相关进程及与服务对应的端口号

      4.1 Hadoop相关进程查看命令jps(jps是jdk提供的一个查看当前java进程的小工具),用法:

       #jps [-help]
       #jps [-q] [-mlvV] [<hostid>]

hn1中运行jps命令后显示运行有NameNode、DataNode、SecondaryNameNode、ResourceManager、NodeManager进程;

hn2中运行jps命令后显示运行有DataNode、NodeManager进程;

hn2中运行jps命令后显示运行有DataNode、NodeManager进程。

      4.2 查看正在监听的端口号

        #netstat -ntlp

        -n表示不解析端口名字,-t表示tcp协议,-l表示显示所有监听的端口,-p表示显示该端口关联的程序名称,如需要了解更多参数细节,使用命令:netstat -h

九、管理页面

Windows7中,打开firefox(IE会报js方面错误)。以下是常用的Hadoop相关访问地址:

ResourceManager管理控制台访问地址:http://192.168.56.100:8088

HDFS访问地址:http://192.168.56.100:50070/

JobHistory访问地址:http://192.168.56.100:19888/

      访问HDFS时,如果要通过HDFS下载里面的文件,需要在Windows7的Host文件中加入hn1、hn2、hn3的IP地址解析内容,否则下载文件时Windows7中浏览器自动跳转至类似http://hn1:9864/webhdfs/.../..../XX文件的地址,因而出现下载文件错误。在Windows7 中C:\Windows\System32\drivers\etc\hosts文件中加入以下内容:

hn1 192.168.56.100

hn2 192.168.56.101

hn3 192.168.56.102

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值