前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Debian下安装配置 Hadoop 3.1.3 集群

Debian下安装配置 Hadoop 3.1.3 集群

作者头像
Debian中国
发布2020-01-21 17:09:24
1.3K0
发布2020-01-21 17:09:24
举报
文章被收录于专栏:Debian中国Debian中国

在这篇文章里,我将在 VMWare 里面虚拟四台 Debian 虚拟机,一个做master,三个slave。这四台主机的 hostname 分别是 master、slave1、slave2、slave3。下面的 JDK 和 Hadoop 安装配置操作都是使用普通用户 hadoop 来执行,并非 root。

集群环境准备

1. 静态网络的配置

编辑/etc/network/interfaces文件,注释自动获取IP,并添加下面内容

代码语言:javascript
复制
# static IP address
auto ens33
iface ens33 inet static
address 192.168.20.101
netmask 255.255.255.0
gateway 192.168.20.2
dns-nameservers 192.168.20.2
dns-nameservers 114.114.114.114
2. 修改/etc/hosts文件,添加如下内容
代码语言:javascript
复制
# Hadoop
192.168.20.101  master
192.168.20.102  slave1
192.168.20.103  slave2
192.168.20.104  slave3
3. openssh-server安装和vim的安装
代码语言:javascript
复制
sudo apt-get install openssh-server vim
4. 生成ssh密钥
代码语言:javascript
复制
# 分别在不同的主机上执行`ssh-keygen`命令

# master
ssh-keygen -t rsa -C "master"

# slave1
ssh-keygen -t rsa -C "slave1"

# slave2
ssh-keygen -t rsa -C "slave2"

# slave3
ssh-keygen -t rsa -C "slave3"
5. 免密码登录

在每台主机上执行:

代码语言:javascript
复制
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-copy-id -i ~/.ssh/id_rsa.pub slave3
6. 创建用户和用户组

在每台主机上执行:

代码语言:javascript
复制
useradd -m -s /bin/bash hadoop 

JDK 安装与配置

1. 手动安装JDK

解压jdk安装包到/usr/lib/jvm/。如果/usr/lib下没有jvm文件夹,则先创建jvm,执行sudo mkdir /usr/lib/jvm。然后创建jdk软链接:

代码语言:javascript
复制
sudo ln -sf /usr/lib/jvm/jdk1.8.0_202 /usr/lib/jvm/jdk
2. JDK环境变量的配置
  • 新建/etc/profile.d/jdk.sh文件,并添加以下内容,
代码语言:javascript
复制
# JDK environment settings
export JAVA_HOME=/usr/lib/jvm/jdk
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATh=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
  • JAVA环境的验证
代码语言:javascript
复制
$ java -version
java version "1.8.0_202"
Java(TM) SE Runtime Environment (build 1.8.0_202-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.202-b08, mixed mode)

把 jdk 安装包和 jdk.sh 分别拷贝到集群中的每台主机上。

Hadoop 安装与配置

Hadoop 安装

1. 解压hadoop安装包到/opt,修改 hadoop-3.1.3 的拥有者:

代码语言:javascript
复制
sudo chown -R hadoop:hadoop /opt/hadoop-3.1.3

2. 创建hadoop软链接

代码语言:javascript
复制
sudo ln -sf /opt/hadoop-3.1.3 /opt/hadoop

3. 在hadoop下创建logshdfs/name、hdfs/data 文件夹

代码语言:javascript
复制
mkdir /opt/hadoop/logs
mkdir -p /opt/hadoop/hdfs/name
mkdir -p /opt/hadoop/hdfs/data

4. hadoop环境变量的配置

新建文件/etc/profile.d/hadoop.sh ,并添加以下内容:

代码语言:javascript
复制
# Hadoop environment settings
export HADOOP_HOME=/opt/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

刷新profile变量

代码语言:javascript
复制
# 使profile生效
source /etc/profile 
Hadoop文件配置

配置文件都在etc/hadoop/文件夹下

1. hadoop-env.sh

代码语言:javascript
复制
# jdk环境变量 (因为要远程调用 ${java_home}找不到变量)
export JAVA_HOME=/usr/lib/jvm/jdk

2. workers

代码语言:javascript
复制
# 添加所有slave机器的hostname
slave1
slave2
slave3

3. core-site.xml

代码语言:javascript
复制
<configuration>

  <!-- hdfs的位置 -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://master:9000</value>
  </property>

  <!-- hadoop运行时产生的缓冲文件存储位置 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/hadoop/tmp</value>
  </property>

</configuration>

4. hdfs-site.xml

代码语言:javascript
复制
<configuration>

  <!-- hdfs 数据备份数量 -->
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>

  <!-- hdfs namenode上存储hdfs名字空间元数据 -->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/opt/hadoop/hdfs/name</value>
  </property>

  <!-- hdfs datanode上数据块的物理存储位置 -->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/opt/hadoop/hdfs/data</value>
  </property>

</configuration>

5. mapred-site.xml

代码语言:javascript
复制
<configuration>

  <!--  mapreduce运行的平台 默认local本地模式 -->
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>

  <!--  mapreduce web UI address -->
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>master:19888</value>
  </property>

</configuration>

6. yarn-site.xml

代码语言:javascript
复制
<configuration>
  <!-- Site specific YARN configuration properties -->

  <!--  yarn 的 hostname -->
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>

  <!--  yarn Web UI address -->
  <property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>${yarn.resourcemanager.hostname}:8088</value>
  </property>

  <!--  reducer 获取数据的方式 -->
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>

</configuration>

/opt/hadoop-3.1.3hadoop.sh打包scp到每台电脑上,然后重复Hadoop安装步骤

Hadoop 的验证

  • 首先格式化 hdfs
代码语言:javascript
复制
hdfs namenode -format
  • 启动与关闭 jobhistoryserver
代码语言:javascript
复制
mr-jobhistory-daemon.sh start historyserver
mr-jobhistory-daemon.sh stop historyserver
  • 启动与关闭 yarn
代码语言:javascript
复制
start-yarn.sh
stop-yarn.sh
  • 启动与关闭 hdfs
代码语言:javascript
复制
start-dfs.sh
stop-dfs.sh
  • 一键启动与关闭
代码语言:javascript
复制
start-all.sh
stop-all.sh
  • 验证
代码语言:javascript
复制
$ jps
13074 SecondaryNameNode
14485 Jps
10441 JobHistoryServer
12876 NameNode
13341 ResourceManager

访问Web UI

Daemon

Web Interface

Notes

NameNode

http://192.168.20.101:9870

Default HTTP port is 9870.

Resourcemanager

http://192.168.20.101:8088

Default HTTP port is 8088.

MapReduce JobHistory Server

http://192.168.20.101:19888

Default HTTP port is 19888.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 集群环境准备
    • 1. 静态网络的配置
      • 2. 修改/etc/hosts文件,添加如下内容
        • 3. openssh-server安装和vim的安装
          • 4. 生成ssh密钥
            • 5. 免密码登录
              • 6. 创建用户和用户组
              • JDK 安装与配置
                • 1. 手动安装JDK
                  • 2. JDK环境变量的配置
                  • Hadoop 安装与配置
                    • Hadoop 安装
                      • Hadoop文件配置
                      • Hadoop 的验证
                      相关产品与服务
                      大数据
                      全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档