ubuntu server18.04安装hadoop3.2.1集群

这篇文件介绍如何搭建完全分布式的hadoop集群,一个主节点,两个数据节点。

配置环境

1、系统环境

本次搭建节点服务器为本地的三个ubuntu server18.04,虚拟机配置截图如下:
在这里插入图片描述
三台机器的ip分别如下:

  • 192.168.1.113
  • 192.168.1.114
  • 192.168.1.115

2、安装java环境

apt install openjdk-8-jdk-headless

配置JAVA环境变量,在当前用户根目录下的.profile文件最下面加入以下内容:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

注:当前用户的根目录其实也就是/home/your username目录下面,如果没有看到.profile文件,直接vim即可,实际上这个文件真实文件地址是etc目录下面,这里我们不深究

使用source命令让立即生效

source .profile

可以用一下命令测试是否配置成功

echo $JAVA_HOME

3、配置host

vim /etc/hosts

添加下面内容,根据个人服务器IP配置

# 注意每个机器都要配置三个

192.168.1.113 master
192.168.1.114 slave1
192.168.1.115 slave2

4、配置免密登录

生产秘钥

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

master免密登录到slave中

# 分别对应添加另外两个节点的就行

ssh-copy-id -i ~/.ssh/id_rsa.pub master
ssh-copy-id -i ~/.ssh/id_rsa.pub slave1
ssh-copy-id -i ~/.ssh/id_rsa.pub slave2

测试免密登陆

ssh master 
ssh slave1
ssh slave2

Hadoop节点搭建

1、下载安装包,创建Hadoop目录

先配置master节点

#下载  
wget http://apache.claz.org/hadoop/common/hadoop-3.2.1/hadoop-3.2.1.tar.gz
#解压到 /usr/local 目录
sudo tar -xzvf  hadoop-3.2.1.tar.gz    -C /usr/local 
#重命名文件夹  
cd /usr/local/ 
sudo mv  hadoop-3.2.1  hadoop

下载步骤最好是直接使用迅雷下载下来,然后用winscp传进去,这样比较快,wget速度真的很慢

2、配置Master节点的Hadoop环境变量

和配置JDK环境变量一样,编辑用户目录下的.profile文件, 添加Hadoop环境变量:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

复制代码执行 source .profile 让立即生效

3、配置Master节点Hadoop配置文件

Hadoop 的各个组件均用XML文件进行配置, 配置文件都放在 /usr/local/hadoop/etc/hadoop 目录中:

  • core-site.xml:配置通用属性,例如HDFS和MapReduce常用的I/O设置等
  • hdfs-site.xml:Hadoop守护进程配置,包括namenode、辅助namenode和datanode等
  • mapred-site.xml:MapReduce守护进程配置
  • yarn-site.xml:资源调度相关配置

注意:vim复制的时候缩进比较麻烦,建议使用winscp的编辑器进行复制粘贴

a. 编辑core-site.xml文件,修改内容如下:

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
        <description>Abase for other temporary directories.</description>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

复制代码参数说明:

  • fs.defaultFS:默认文件系统,HDFS的客户端访问HDFS需要此参数
  • hadoop.tmp.dir:指定Hadoop数据存储的临时目录,其它目录会基于此路径, 建议设置到一个足够空间的地方,而不是默认的/tmp下

如没有配置hadoop.tmp.dir参数,系统使用默认的临时目录:/tmp/hadoo-hadoop。而这个目录在每次重启后都会被删除,必须重新执行format才行,否则会出错。

b. 编辑hdfs-site.xml,修改内容如下:

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <property>
        <name>dfs.name.dir</name>
        <value>/usr/local/hadoop/hdfs/name</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/usr/local/hadoop/hdfs/data</value>
    </property>
</configuration>

复制代码参数说明:

  • dfs.replication:数据块副本数
  • dfs.name.dir:指定namenode节点的文件存储目录
  • dfs.data.dir:指定datanode节点的文件存储目录

c. 编辑mapred-site.xml,修改内容如下:

<configuration>
  <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
  </property>
  <property>
    <name>mapreduce.application.classpath</name>
    <value>$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*</value>
  </property>
</configuration>

复制代码d. 编辑yarn-site.xml,修改内容如下:

<configuration>
<!-- Site specific YARN configuration properties -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>master</value>
    </property>
    <property>
        <name>yarn.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME</value>
    </property>
</configuration>

复制代码e. 编辑workers, 修改内容如下:

slave1
slave2

5、其他两个Slave节点的配置

将Master节点配置好的Hadoop打包,发送到其他两个节点:

#打包hadoop包
tar -cxf hadoop.tar.gz /usr/local/hadoop

这里要注意的是,spark自行替换为你们的用户名

scp ./hadoop.tar.gz  spark@slave1:~
scp ./hadoop.tar.gz  spark@slave2:~

复制代码在其他节点加压Hadoop包到/usr/local目录

sudo tar -xzvf hadoop.tar.gz -C /usr/local/

复制代码配置Slave1和Slaver2两个节点的Hadoop环境变量:

export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin 
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

使环境变量生效

source .profile

6、补充配置

修改三个节点的/usr/local/hadoop/etc/hadoop/hadoop-env.sh,添加下面JAVA环境变量

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

对所有文件赋值777

# /usr/local
chmod -R 777 ./hadoop/

在/hadoop/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数

#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:

#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

启动集群

1、格式化HDFS文件系统

进入Master节点的Hadoop目录,执行一下操作:

bin/hadoop namenode -format

2、启动集群

# /usr/local/hadoop/sbin
start-all.sh

可视化,替换主节点ip即可

http://192.168.1.113:9870/
http://192.168.1.113:8088/

猜你喜欢

转载自blog.csdn.net/wy_97/article/details/104792965