IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> hadoop集群搭建 -> 正文阅读

[大数据]hadoop集群搭建

几年前搞过一段时间hadoop,现在又要开始搞了,发现环境都不会搭建了。写个博客记录下搭建过程。

1、创建虚拟机及规划

下面是我本地的环境信息

机器名IP操作系统
hadoop1192.168.68.120CentOS7
hadoop2192.168.68.121CentOS7
hadoop3192.168.68.122CentOS7
  • 修改机器名:
hostnamectl set-hostname [机器名]
# hostnamectl set-hostname   hadoop1
  • 修改IP信息:

    /etc/sysconfig/network-scripts/ifcfg-ens33文件中配置IP信息。主要修改如下几项。

IPADDR="192.168.68.120" # IP地址
PREFIX="24"             # 子网掩码位数,也可以设置为 NETMASK=255.255.255.0
GATEWAY="192.168.68.1"  # 网关

规划

hadoop1hadoop2hadoop3
HDFSNameNode、DataNodeDataNodeSecondaryNameNode、DataNode
YARNNodeManagerNodeManagerResourceManager、NodeManager
otherJobHistoryServer

我们首先创建个名的hadoop用户,后续所有操作如无特别说明,均是在hadoop用户下执行.

adduser hadoop   # 创建hadoop用户
passwd hadoop    # 设置hadoop用户密码,回车后输入hadoop用户密码

2、设置各主机之间免密登录

1、在每台主机hosts文件中添加IP与主机名的映射关系
  • 在每台主机/etc/hosts文件中添加如下内容。

    /etc/hosts文件hadoop用户没有权限,所以修改这个文件要用root用户操作。

    192.168.68.120  hadoop1
    192.168.68.121  hadoop2
    192.168.68.122  hadoop3
    
2、设置互信(每台主机都执行)
  • 在每台主机生成ssh公钥私钥,将公钥拷贝到所有主机(包括自己)。

    ssh-keygen -t rsa   #这里需要连续4个回车
    ssh-copy-id hadoop1
    ssh-copy-id hadoop2
    ssh-copy-id hadoop3
    

    在这里插入图片描述

3、安装JDK和hadoop

需要的软件是jdk和hadoop,我本次使用的是jdk-11.0.10_linux-x64_bin.tar.gzhadoop-3.2.3.tar.gz

我本地软件安装位置在/home/hadoop/software

这里的操作都是在hadoop1上执行,最后会拷贝到hadoop2、hadoop3上

1、上传软件包
  • 创建安装目录software目录(分别在所有节点上创建)

    mkdir /home/hadoop/software
    
  • 上传软件包

    jdk-11.0.10_linux-x64_bin.tar.gzhadoop-3.2.3.tar.gz上传到/home/hadoop/software目录中

    在这里插入图片描述

2、安装Java,设置环境变量
  • 解压java、hadoop
#在/home/hadoop/software目录中执行
 tar -zxvf jdk-11.0.10_linux-x64_bin.tar.gz  # 解压jdk
 tar -zxvf hadoop-3.2.3.tar.gz               # 解压hadoop
  • 设置java环境变量

    ~/.bashrc文件中添加如下内容

    JAVA_HOME=/home/hadoop/software/jdk-11.0.10
    CLASSPATH=.:$JAVA_HOME/lib
    PATH=$PATH:$JAVA_HOME/bin
    export JAVA_HOME CLASSPATH PATH
    
    
    export HADOOP_HOME=/home/hadoop/software/hadoop-3.2.3
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    

    执行如下命令使环境变量生效

    source ~/.bashrc
    
3、配置文件修改

3.1 修改/home/hadoop/software/hadoop-3.2.3/etc/hadoop/core-site.xml


        <!-- 指定HDFS中NameNode的地址,这里也就是指定了NameNode在hadoop1这个节点上-->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://hadoop1:9000</value>
        </property>

        <!-- 指定Hadoop运行时产生文件的存储目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/hadoop/software/hadoop-3.2.3/data/tmp</value>
        </property>

3.修改/home/hadoop/software/hadoop-3.2.3/etc/hadoop/hdfs-site.xml

		<!-- 指定HDFS中NameNode的web端访问地址,这里的节点要和core-site的节点对应起来-->
  		<property>
            <name>dfs.namenode.http-address</name>
			<value>hadoop1:9870</value>
		</property>
		<!-- 指定secondary节点主机配置 ,这里也就是指定了secondary节点在hadoop3-->
        <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>hadoop3:50090</value>
        </property>

3.修改/home/hadoop/software/hadoop-3.2.3/etc/hadoop/yarn-site.xml

    	<property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>

        <!-- 指定YARN的ResourceManager的地址,也就是指定resourcemanager所在的节点 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>hadoop3</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_MAPRED _HOME</value>
		</property>
        <!-- 日志聚集功能使能 -->
        <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
        </property>
        <!-- 日志保留时间设置7天 -->
        <property>
            <name>yarn.log-aggregation.retain-seconds</name>
            <value>604800</value>
        </property>
		<property> 
 			<name>yarn.log.server.url</name> 
 			<value>http://hadoop1:19888/jobhistory/logs</value>
		</property>

修改/home/hadoop/software/hadoop-3.2.3/etc/hadoop/mapred-site.xml

	<property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 历史服务器端地址,也就是指定了历史服务器节点 -->
	<property>
 		<name>mapreduce.jobhistory.address</name>
 		<value>hadoop1:10020</value>
	</property>
	<!-- 历史服务器 web 端地址 -->
	<property>
 		<name>mapreduce.jobhistory.webapp.address</name>
 		<value>hadoop1:19888</value>
	</property>

修改/home/hadoop/software/hadoop-3.2.3/etc/hadoop/workers

hadoop1
hadoop2
hadoop3
4、将上述内容分别拷贝至hadoop2、hadoop3
scp -r /home/hadoop/software/jdk-11.0.10   hadoop2:/home/hadoop/software/
scp -r /home/hadoop/software/jdk-11.0.10   hadoop3:/home/hadoop/software/
scp -r /home/hadoop/software/hadoop-3.2.3   hadoop2:/home/hadoop/software/
scp -r /home/hadoop/software/hadoop-3.2.3   hadoop3:/home/hadoop/software/
scp ~/.bashrc hadoop2:~/
scp ~/.bashrc hadoop3:~/

如果在执行这一步之前已经使用hdoop用户登录了hadoop2或者hadoop3,为了使上面拷贝的环境变量生效,需要在hadoop2,hadoop3上分别执行

source ~/.bashrc命令

4、启动服务

1、执行初始化命令

hadoop1节点上执行

hdfs namenode -format #只在namenode节点执行

在这里插入图片描述

看到上面这句就表示执行成功。

2、启动hadoop集群

在hadoop1节点上执行如下命令

start-dfs.sh # 需要在namenode节点上执行

在这里插入图片描述

分别在每台主机执行jps命令检查进程是否启动正常

在这里插入图片描述

同时也可以通过web界面进行访问http://192.168.68.120:9870/dfshealth.html#tab-overview

在这里插入图片描述

3、启动yarn。

在hadoop3 节点上实行如下命令

start-yarn.sh  #注意这个需要在yarn所在节点启动(`yarn-site.xml`中`yarn.resourcemanager.hostname`属性指定)。

再次通过检查每台主机进程是否启动正常

在这里插入图片描述

也可以通过web界面进行访问http://192.168.68.122:8088/cluster

在这里插入图片描述

4、启动历史服务器.

在hadoop1节点上执行如下命令。(通过mapred-site.xml配置文件中指定)

mapred --daemon start historyserver   

在这里插入图片描述


到这里,整个hadoop集群就已经搭建完成了。

默认配置

hadoop很多配置都有默认配置。具体可以通过官网文档查看。具体位置Index of /docs (apache.org),在这里找到对应版本。
在这里插入图片描述

各个服务组件逐一启动/停止

(1)分别启动/停止 HDFS 组件

hdfs --daemon start/stop namenode/datanode/secondarynamenode

(2)启动/停止 YARN

yarn --daemon start/stop resourcemanager/nodemanager
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-09 12:46:25  更:2022-05-09 12:46:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:55:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码