• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

hadoop3环境搭建

武飞扬头像
warframework
帮助3

一、hadoop环境搭建

1、环境准备

参考文档

1.1软件准备

操作系统:centos7	hadoop版本:3.3.1	  java版本:1.8

1.2集群规划

主节点:  hadoop0 192.168.15.10
从节点1: hadoop1 192.168.15.11
从节点2: hadoop2 192.168.15.12

1.3配置主机名与IP映射(3个节点都配置)

设置主机名:

vi /etc/hostname   
#修改文件内容为hadoop0

设置主机名及IP映射:

vi /etc/hosts 
#在文件尾部添加内容,格式:IP地址 主机名(中间用空格分隔),保存退出
192.168.15.10 hadoop0
192.168.15.11 hadoop1
192.168.15.12 hadoop2

验证:

ping hadoop0
ping hadoop1
ping hadoop2

2、伪分布式hadoop集群搭建

PS:以下操作均是对hadoop主节点配置:主要配置主机名与IP映射、ssh免密钥登录等等。

2.1java环境安装

$ mv jdk1.8.0_251 /usr/local/java

$ vi /etc/profile

#自定义环境变量
export JAVA_HOME=/usr/local/java
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

$ source /etc/profile

2.2ssh免密钥登录

#如果以前配置过,可以删除,每台机器都操作一次
rm -f ~/.ssh/known_hosts
ssh-keygen
#剩下的一路回车即可
ssh-copy-id hadoop0
#根据提示输入yes以及密码,密码也可以设置为空

ssh-copy-id hadoop1
ssh-copy-id hadoop2

验证是否免密钥

$ ssh localhost
$ ssh 127.0.0.1
$ ssh hadoop0
$ ssh hadoop1
$ ssh hadoop2

2.3hadoop环境配置

PS:进入/usr/local/hadoop/etc/hadoop目录,涉及的配置文件有:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml

@1配置hadoop-env.sh

export JAVA_HOME=/usr/local/java

@2配置core-site.xml

<configuration>
    <!--hdfs的默认访问地址、端口-->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop0:8020</value>
    </property>
    <!--hdfs临时路径-->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.trash.interval</name>
        <value>1440</value>
    </property>
</configuration>
学新通

@3配置hdfs-site.xml

<configuration>
    <!--hdfs webui地址-->
    <property>
    	<name>dfs.namenode.http-address</name>
        <value>hadoop0:50070</value>
    </property>
    <!--文件副本数-->
    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    <!--是否启用hdfs权限检查:false表示关闭-->
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>
</configuration>
学新通

@4配置yarn-site.xml

<configuration>
    <!--集群master-->
    <property>
    	<name>yarn.resourcemanager.hostname</name>
        <value>hadoop0</value>
    </property>
    <!--NodeManager上运行的附属服务-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <!--关闭内存检测,虚拟机需要,不配可能会报错-->
    <property>
    	<name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <property> 
        <name>yarn.log-aggregation-enable</name> 
        <value>true</value> 
    </property>
</configuration>
学新通

@5配置mapred-site.xml(需要修改模板:cp mapred-site.xml.template mapred-site.xml)

<configuration>
    <!--local表示本地运行,classic表示经典mapreduce框架,yarn表示新的框架-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!--如果map和reduce任务访问本地库(压缩等),则必须保留原始值
		当此值为空时,设置执行环境的命令将取决于操作系统:
		Linux:LD_LIBRARY_PATH=$HADOOP_COMMON_HOME/lib/native.
		windows:PATH =%PATH%;%HADOOP_COMMON_HOME%\\bin.
	-->
    <property>
    	<name>mapreduce.admin.user.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <!--可以设置AM【AppMaster】端的环境变量,如果上面缺少配置,可能会造成mapreduce失败-->
    <property>
        <name>yarn.app.mapreduce.am.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.map.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
    <property>
        <name>mapreduce.reduce.env</name>
        <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
</configuration>
学新通

2.4格式化hadoop并启动伪分布式集群

进入到/usr/local/hadoop目录下

@1格式化(格式化操作不能重复执行。如果一定要重复格式化,带参数-force即可)

bin/hdfs namenode -format
#注意:在执行的时候会报错,是因为缺少which命令,安装即可

#执行下面命令安装
yum install -y which

@2启动伪分布式hadoop

sbin/start-all.sh
#当出现以下错误时:
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.

解决方案一( 不推荐,有时候不起作用):

vi /etc/profile
#然后向里面加入如下的内容
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

#输入如下命令使配置文件生效
source /etc/profile

解决方案二(推荐):

#ps:
#1.master,slave都需要修改start-dfs.sh,stop-dfs.sh,start-yarn.sh,stop-yarn.sh四个文件
#2.如果你的Hadoop是另外启用其它用户来启动,记得将root改为对应用户

#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

#hadoop/sbin路径下面:将start-yarn.sh、stop-yarn.sh俩个文件顶部添加以下参数
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
学新通

@3验证是否成功

jps
#当出现以下进程说明hadoop伪分布式搭建成功
NodeManager
Jps
NameNode
Secondar yNameNode
ResourceManager
DataNode

3、完全分布式hadoop集群搭建

ps:以下操作都在主节点操作

进入/usr/local/hadoop

@1停止上一步的伪分布式hadoop

sbin/stop-all.sh

@2指定nodemanager的地址,修改文件yarn-site.xml

<property>
    <description>The hostname of the RM.</description>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop0</value>
</property>

@3修改hadoop0的hadoop的一个配置文件etc/hadoop/workers

#ps:hadoop从3.3.0版本后,slaves配置文件名更名为workers
#删除原来的所有内容,修改为如下
hadoop1
hadoop2

@4拷贝至其他俩个节点

scp -rq /usr/local/hadoop hadoop1:/usr/local/
scp -rq /usr/local/hadoop hadoop2:/usr/local/

@5启动hadoop分布式集群服务

sbin/start-all.sh
#ps:在执行的时候会报错,是因为两个从节点缺少which命令,安装即可(yum install -y which)

@6验证完全分布式集群是否正常

#hadoop0主节点需要以下进程
NameNode
SecondaryNameNode
ResourceManager
JPS

#hadoop1从节点需要以下进程
NodeManager
DataNode
JPS

#hadoop2从节点需要以下进程
NodeManager
DataNode
JPS

@7 出现异常的处理办法

–slave的datanode无法启动

#查看日志,/usr/local/hadoop/logs
#清空/usr/local/hadoop下面的logs、tmp目录

#主节点master再一次执行 bin/hdfs namenode -format -force

hdfs dfsadmin -report查看datanode为空

#每个Node都执行,删除datanode配置的dfs.data.dir目录
#本次集群是配置到以下目录
rm -rf /usr/local/hadoop/tmp/*
#master再一次执行格式化
hdfs namenode -format -force

4、wordcount单词计数验证集群服务

1.创建本地文件并写入任意内容

vi a.txt
hello hadoop
hello spark
hello flink

2.上传该文件到HDFS并验证是否上传成功

hdfs dfs -put a.txt /
hadoop fs -ls /

3.提交job程序至hadoop集群

cd /usr/local/hadoop/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-3.3.1.jar wordcount /a.txt /out

4.查看计算结果

hadoop fs -ls /out
hadoop fs -cat /out/part-r-00000

5、WEBUI地址查看

5.1hdfs查看地址

#根据hdfs-site.xml配置的地址
http://hadoop0:50070

5.2yarn查看地址

#默认地址
http://hadoop0:8088

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfhcbaf
系列文章
更多 icon
同类精品
更多 icon
继续加载