新闻资讯

新闻资讯 产品更新

Hadoop3.2.1版本的环境搭建

编辑:016     时间:2020-02-12

Hadoop的三种构建方式以及使用环境:

  • 单机版适合开发调试;
  • 伪分布式适合模拟可行学习;
  • 完全分布式适用生产环境。

简介文件介绍如何构建完全分布式的hadoop扩展,一个主节点,两个数据例程。

先决条件

  1. 准备3台服务器

虚拟机物理机云上实例均可,使用本篇Openstack私有云里面的3个实例进行安装部署。

  1. 操作系统及软件版本
服务器 系统 内存 知识产权 规划 JDK 哈多普
节点1 Ubuntu 18.04.2 LTS 8G 10.101.18.21 JDK 1.8.0_222 hadoop-3.2.1
节点2 Ubuntu 18.04.2 LTS 8G 10.101.18.8 奴隶1 JDK 1.8.0_222 hadoop-3.2.1
节点3 Ubuntu 18.04.2 LTS 8G 10.101.18.24 slave2 JDK 1.8.0_222 hadoop-3.2.1
  1. 三台机器安装JDK

因为Hadoop是用Java语言编写的,所以计算机上需要安装Java环境,我在这使用JDK 1.8.0_222(推荐使用Sun JDK)

安装命令

sudo 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 复制代码

使用source命令让立即生效

source .profile 复制代码
  1. 主机配置

修改三台服务器的主机文件

vim /etc/hosts #添加下面内容,根据个人服务器IP配置 10.101.18.21 master
10.101.18.8 slave1
10.101.18.24 slave2 复制代码

免密登陆配置

  1. 生产秘钥
ssh-keygen -t rsa 复制代码
  1. 主人免密登录到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 复制代码
  1. 测试免密登陆
ssh master 
ssh slave1
ssh slave2 复制代码

Hadoop构建

我们先在Master上游下载Hadoop包,然后修改配置,随后复制到其他Slave先前稍作修改就可以了。

  1. 下载安装包,创建Hadoop目录
#下载  wget http://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 #修改hadoop的文件权限 sudo chown -R ubuntu:ubuntu hadoop-3.2.1.tar.gz #重命名文件夹  sudo mv  hadoop-3.2.1  hadoop 复制代码
  1. 配置主节点的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让立即生效

  1. 配置大师

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:资源调度相关配置

一种。编辑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:指定名称节点路由器的文件存储目录
  • 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 复制代码

配置工作人员

  1. 配置从属

将MasterMaster配置好的Hadoop打包,发送到其他两个例程:

# 打包hadoop包 tar -cxf hadoop.tar.gz /usr/local/hadoop # 拷贝到其他两个节点 scp hadoop.tar.gz ubuntu@slave1:~
scp hadoop.tar.gz ubuntu@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 复制代码

启动实力

  1. 格式化HDFS文件系统

进入主数据库的Hadoop目录,执行一下操作:

bin/hadoop namenode -format 复制代码

格式化namenode,第一次启动服务前执行的操作,以后不需要执行。

截取部分日志(看第5行日志表示格式化成功):

2019-11-11 13:34:18,960 INFO util.GSet: VM type       = 64-bit 2019-11-11 13:34:18,960 INFO util.GSet: 0.029999999329447746% max memory 1.7 GB = 544.5 KB 2019-11-11 13:34:18,961 INFO util.GSet: capacity      = 2^16 = 65536 entries 2019-11-11 13:34:18,994 INFO namenode.FSImage: Allocated new BlockPoolId: BP-2017092058-10.101.18.21-1573450458983 2019-11-11 13:34:19,010 INFO common.Storage: Storage directory /usr/local/hadoop/hdfs/name has been successfully formatted. 2019-11-11 13:34:19,051 INFO namenode.FSImageFormatProtobuf: Saving image file /usr/local/hadoop/hdfs/name/current/fsimage.ckpt_0000000000000000000 using no compression 2019-11-11 13:34:19,186 INFO namenode.FSImageFormatProtobuf: Image file /usr/local/hadoop/hdfs/name/current/fsimage.ckpt_0000000000000000000 of size 401 bytes saved in 0 seconds . 2019-11-11 13:34:19,207 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 2019-11-11 13:34:19,214 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid=0 when meet shutdown. 复制代码
  1. 启动Hadoop
sbin/start-all.sh 复制代码

启动过程遇到的问题与解决方案:

一种。错误:master:rcmd:socket:权限被拒绝

解决

执行 echo "ssh" > /etc/pdsh/rcmd_default

b。错误:未设置JAVA_HOME且找不到。

解决

修改三个基线的hadoop-env.sh,添加以下JAVA环境变量

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 复制代码
  1. 使用jps命令查看运行情况

硕士年度执行输出:

19557 ResourceManager 19914 Jps 19291 SecondaryNameNode 18959 NameNode 复制代码

从属执行执行输入:

18580 NodeManager 18366 DataNode 18703 Jps 复制代码
  1. 查看Hadoop体现状态
hadoop dfsadmin -report 复制代码

查看结果:

Configured Capacity: 41258442752 (38.42 GB)
Present Capacity: 5170511872 (4.82 GB)
DFS Remaining: 5170454528 (4.82 GB)
DFS Used: 57344 (56 KB)
DFS Used%: 0.00%
Replicated Blocks:
	Under replicated blocks: 0 Blocks with corrupt replicas: 0 Missing blocks: 0 Missing blocks (with replication factor 1): 0
	Low redundancy blocks with highest priority to recover: 0
	Pending deletion blocks: 0
Erasure Coded Block Groups: 
	Low redundancy block groups: 0
	Block groups with corrupt internal blocks: 0
	Missing block groups: 0
	Low redundancy blocks with highest priority to recover: 0
	Pending deletion blocks: 0

-------------------------------------------------
Live datanodes (2):

Name: 10.101.18.24:9866 (slave2) Hostname: slave2
Decommission Status : Normal
Configured Capacity: 20629221376 (19.21 GB) DFS Used: 28672 (28 KB) Non DFS Used: 16919797760 (15.76 GB) DFS Remaining: 3692617728 (3.44 GB) DFS Used%: 0.00%
DFS Remaining%: 17.90%
Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon Nov 11 15:00:27 CST 2019
Last Block Report: Mon Nov 11 14:05:48 CST 2019
Num of Blocks: 0


Name: 10.101.18.8:9866 (slave1) Hostname: slave1
Decommission Status : Normal
Configured Capacity: 20629221376 (19.21 GB) DFS Used: 28672 (28 KB) Non DFS Used: 19134578688 (17.82 GB) DFS Remaining: 1477836800 (1.38 GB) DFS Used%: 0.00%
DFS Remaining%: 7.16%
Configured Cache Capacity: 0 (0 B) Cache Used: 0 (0 B) Cache Remaining: 0 (0 B) Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Mon Nov 11 15:00:24 CST 2019
Last Block Report: Mon Nov 11 13:53:57 CST 2019
Num of Blocks: 0 复制代码
  1. 关闭Hadoop
sbin/stop-all.sh 复制代码

Web查看Hadoop实现状态

在浏览器输入http://10.101.18.21:9870,结果如下:


郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐