hadoop学习记录(代码片段)

一加六 一加六     2022-12-07     674

关键词:

Hadoop学习

虚拟机安装

第一步:创建新的虚拟机

第二步:选择“自定义向导”

第三步:

第四步:选择操作系统的类型

第五步:安装及位置

第六步:cpu及核心数 建议最少2核

第七步:内存 建议最少4G

第八步:网络类型选择桥接或NAT都可(建议NAT模式)

创建好了虚拟机 图中CPU核心和内存都是为简化流程没有改

安装一台centos7并克隆两台共三台机器

linux网络配置

1.修改主机名称
将克隆的2、3主机分别改名为hadoop02、hadoop03
Vi /etc/hostname

2.主机名和ip映射配置

此处设置IP时注意

Host文件配置 三台虚拟机之间通信名称代替ip

2.网络参数配置 配置静态ip

3.测试网卡配置
若修改vmware默认初始网段,出现无法ping通外网在上图虚拟网络编辑器还原默认配置,使用还原后的网段即可.

SSH服务配置 免密登录

1.生成私匙 和公匙

将共匙 加入authorized_keys 文件(如没有touch创建该文件) 实现自我登录
cat id_rsa.pub >> authorized_keys

复制共匙到hadoop02和hadoop03 实现免密登录

防火墙配置

firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --zone=public --add-port=50075/tcp --permanent
firewall-cmd --zone=public --add-port=8088/tcp --permanent
hdfs
9000 50070 50010
yarn
8030 8031 8032 8088
journalnode
8485
zookeeper
2181 2888 3888
放开端口需重载防火墙配置
firewall-cmd --reload
查看一下开放的端口
firewall-cmd --zone=public --list-ports

常用的端口如下

Jdk安装

上传

解压

重命名

配置环境变量


验证安装完成

Hadoop安装和集群配置

上传

解压

配置环境变量


需要注意的是配置环境变量的时候若有两个path 一定要记得两个都要在前面加$符号
验证安装成功

主节点配置

core-site.xml 配置 此地fs需注意value值开头需添加hdfs 非高可用
官网core-default

高可用ha配置

<configuration>
 <property>
   <name>fs.defaultFS</name>
   <value>hdfs://ns1</value>
 </property>
 <property>
   <name>hadoop.tmp.dir</name>
   <value>/export/data/hadoop/tmp</value>
 </property>
 <property>
   <name>ha.zookeeper.quorum</name>
   <value>ha001:2181,ha002:2181,ha003:2181</value>
 </property>
 <!--ipc超时重试次数和间隔-->
 <property>
  <name>ipc.client.connect.max.retries</name>
  <value>100</value>
 </property>
 <property>
   <name>ipc.client.connect.retry.interval</name>
   <value>10000</value>
 </property>
 <property>
   <name>ipc.client.connect.timeout</name>
   <value>20000</value>
 </property>
</configuration>

Hdfs-site.xml文件配置 此处dfs需注意value前无需添加hdfs

官网hdfs-default

高可用ha配置

<?xml version="1.0" encoding="UTF-8"?>href="configuration.xsl"?>
<configuration>
  <!--三台节点-->
<property>
   <name>dfs.replication</name>
   <value>3</value>
  </property>
  <!--元数据信息位置-->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/export/data/hadoop/name</value>
  </property>
  <!--数据位置-->
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/export/data/hadoop/data</value>
  </property>
 <!--开启WEB-HDFS-->
  <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
  </property>
  <!--ha集群名称-->
  <property>
    <name>dfs.nameservices</name>
    <value>ns1</value>
  </property>
  <!--两台namenode名称-->
  <property>
    <name>dfs.ha.namenodes.ns1</name>
    <value>nn1,nn2</value>
  </property>
<!--nn1的通信地址-->
    <!--RPC通信地址-->
    <property>
      <name>dfs.namenode.rpc-address.ns1.nn1</name>
      <value>ha001:9000</value>
    </property>
    <!--http通信地址-->
    <property>
      <name>dfs.namenode.http-address.ns1.nn1</name>
      <value>ha001:50070</value>
    </property>
  <!--nn2的通信地址-->
    <!--RPC通信地址-->
    <property>
      <name>dfs.namenode.rpc-address.ns1.nn2</name>
      <value>ha002:9000</value>
    </property>
    <!--http通信地址-->
    <property>
      <name>dfs.namenode.http-address.ns1.nn2</name>
      <value>ha002:50070</value>
    </property>
  <!--NAMENODE的元数据在journalnode的存放位置-->
    <property>
      <name>dfs.namenode.shared.edits.dir</name>
      <value>qjournal://ha001:8485;ha002:8485;ha003:8485/ns1</value>
    </property>
  <!--指定journal在本地磁盘的存放位置-->
    <property>
      <name>dfs.journalnode.edits.dir</name>
      <value>/export/data/hadoop/journaldata</value>
    </property>
  <!--开启namenode失败自动切换-->
    <property>
      <name>dfs.ha.automatic-failover.enabled</name>
      <value>true</value>
    </property>
    <property>
      <name>dfs.client.failover.proxy.provider.ns1</name>
      <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
     </property>
  <!--隔离机制自动切换时登录第二台namenode -->
    <property>
      <name>dfs.ha.fencing.methods</name>
      <value>
         sshfence
         shell(/bin/true)
      </value>
    </property>
    <property>
      <name>dfs.ha.fencing.ssh.private-key-files</name>
      <value>/root/.ssh/id_rsa</value>
    </property>
    <property>
      <name>dfs.ha.fencing.ssh.connect-timeout</name>
      <value>30000</value>
    </property>
 
  <!--journal连接配置-->
    <property>
      <name>dfs.qjournal.start-segment.timeout.ms</name>
      <value>20000</value>
    </property>
    <property>
      <name>dfs.qjournal.select-input-streams.timeout.ms</name>
      <value>20000</value>
    </property>
    <property>
      <name>dfs.qjournal.write-txns.timeout.ms</name>
      <value>20000</value>
    </property>
</configuration>

Mapred-site.xml文件配置

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <property>
	<name>mapreduce.map.memory.mb</name>
	<value>3072</value>
  </property>
  <property>
	<name>mapreduce.reduce.memory.mb</name>
	<value>6144</value>
  </property>
  <property>
	<name>mapreduce.map.java.opts</name>
	<value>-Xmx3072m</value>
  </property>
  <property>
	<name>mapreduce.reduce.java.opts</name>
	<value>-Xmx6144m</value>
  </property>
</configuration>

官网mapred-site

yarn-site.xml文件配置

资源管理器负责配置调控CPU,内存,磁盘等分配和使用
分为节点资源管理和任务资源分配
单节点推荐内存设置如下(主要为系统预留)

每个container则根据任务需要设置最大最小分配资源

<?xml version="1.0"?>
<configuration>
<!--是否将对容器实施物理内存限制-->
  <property>
     <name>yarn.nodemanager.pmem-check-enabled</name>
     <value>true</value>
  </property>
<!--是否将对容器实施虚拟内存限制-->
  <property>
     <name>yarn.nodemanager.vmem-check-enabled</name>
     <value>true</value>
  </property>
<!--物理核心和虚拟核心比率-->
  <property>
     <name>yarn.nodemanager.vmem-pmem-ratio</name>
     <value>2.1</value>
  </property>
<!--将逻辑处理器(例如超线程)视为核心-->
  <property>
     <name>yarn.nodemanager.resource.count-logical-processors-as-cores</name>
     <value>false</value>
  </property>
<!--scheduler给每个容器可分配资源-->
  <!------表示每个container的最大物理内存------->
  <property>
     <name>yarn.scheduler.maximum-allocation-mb</name>
     <value>3072</value>
  </property>
  <property>
     <name>yarn.scheduler.minimum-allocation-mb</name>
     <value>256</value>
  </property>
  <!------表示每个container的最大CPU核心数------->
  <property>
     <name>yarn.scheduler.maximum-allocation-vcores</name>
     <value>3</value>
  </property>
  <property>
     <name>yarn.scheduler.minimum-allocation-vcores</name>
     <value>1</value>
  </property>
<!--单个节点可用资源-->
  <!------表示该节点可使用的物理内存------->
  <property>
     <name>yarn.nodemanager.resource.memory-mb</name>
     <value>2400</value>
  </property>
  <!------表示该节点可使用的CPU核心数------->
  <property>
     <name>yarn.nodemanager.resource.cpu-vcores</name>
     <value>2</value>
  </property>
  
<!--resourcemanager地址-->
  <property>
     <name>yarn.resourcemanager.hostname.rm1</name>
     <value>ha001</value>
  </property>
  <property>
     <name>yarn.resourcemanager.hostname.rm2</name>
     <value>ha002</value>
  </property>
<!--指定zookeeper集群地址-->
  <property>
     <name>yarn.resourcemanager.zk-address</name>
     <value>ha001:2181,ha002:2181,ha003:2181</value>
  </property>
  <property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
  </property>

 <!--开启resourcemanager高可用-->
  <property>
     <name>yarn.resourcemanager.ha.enabled</name>
     <value>true</value>
  </property>
<!--指定cluster ID-->
  <property>
     <name>yarn.resourcemanager.cluster-id</name>
     <value>yrc</value>
  </property>
  <property> 
     <name>yarn.resourcemanager.ha.rm-ids</name>
     <value>rm1,rm2</value>
  </property>
</configuration>

yran常用参数参考

Slaves文件配置


将主节点内容分发到子节点
分发profile配置

同步分发、export下的文件

zookeeper安装并配置

1.下载并解压

配置环境变量

配置zoo.cfg

添加myid文件


Ha-01输入值1,ha-02输入值为2,ha-03输入值为3

Hadoop模块

common 公共模块
HDFS 文件存储
YARN 资源管理
MapReduce 计算框架

Hadoop集群启动测试

1.启动各个节点的z

学习记录combinefileinputformat类(代码片段)

基本摘自网上给自己做一记录,如有错误请斧正CombineFileInputFormat是一个抽象类。Hadoop提供了两个实现类CombineTextInputFormat和CombineSequenceFileInputFormat。其继承关系如下:InputFormat--->FileInputFormat------>CombineFileInputFormatCombineTe 查看详情

hadoop学习笔记--hbase相关操作指令(代码片段)

文章目录引言0.HBase的启动与停止1.创建表2.删除表3.表的其他操作3.1修改表结构3.2查看表结构3.3显示所有用户定义的表3.4查询表是否存在3.5查询表是否可用3.6查询表中记录数4.插入数据4.1插入单条数据4.2插入多行数据5.删除数据5.1... 查看详情

大数据学习笔记~hadoop基础篇(代码片段)

前言记录我在学习大数据技术中的学习笔记目录前言一、Hadoop介绍二、Hadoop发行版介绍三、Hadoop核心架构发展历史四、Hadoop三大核心组件介绍五、Hadoop集群安装部署a、伪分布式集群安装部署1.下载hadoop安装包2.设置静态ip 3、修... 查看详情

学习记录combinefileinputformat类(代码片段)

...记录,如有错误请斧正CombineFileInputFormat是一个抽象类。Hadoop提供了两个实现类CombineTextInputFormat和CombineSequenceFileInputFormat。其继承关系如下:InputFormat--->FileInputFormat------>CombineFileInputFormatCombineTextInputFormat的使用:仅输入一个... 查看详情

hadoop记录-flink测试(代码片段)

1.启动集群bin/start-cluster.sh2.jps查看进程3.打开网页端(192.168.66.128:8081)4.造数据:nc-lk90005.执行./bin/flinkrunexamples/streaming/SocketWindowWordCount.jar--port9000   查看详情

学习笔记hadoop——hadoop基础操作(代码片段)

文章目录一、Hadoop安全模式1.1、HDFS启动日志分析1.2、Safemode进入方式二、Hadoop集群基本信息三、HDFS常用Shell操作3.1、HDFS文件系统3.2、常用Shell命令-appendToFile3.3、常用Shell命令-cat3.4、常用Shell命令-copyFromLocal|put3.5、常用Shell命令-cp3... 查看详情

hadoop学习笔记hdfsjavaapi(代码片段)

Hadoop学习笔记(五)HDFSJavaAPIspringboot项目操作hdfspom.xml<projectxmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:sc 查看详情

寒假记录5(代码片段)

...数据。在spark-shell 中读取HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在,请先创建),然后,统计出文件的行数;scala>valtextFile=sc.textFile("hdfs://localhost:9000/user/hadoop/test.txt")scala>textFile.count()今天才看了爬... 查看详情

hadoop学习之hadoop安装jdk安装集群启动(完全分布式)(代码片段)

...路上的点点滴滴。个人主页:Apathfinder本文专栏:Hadoop学习 前言:本文主要是对hadoop完全分布式环境安装过程中的hadoop安装以及JDK安装作详细的介绍,以及集群启动。目录正文一.整体部署情况二.JDK安装 查看详情

[博学谷学习记录]超强总结,用心分享|zookeeper(代码片段)

...管理员”,观察上方图片,大部分框架,例如hadoop、Flink、WEKA、HIVE...都是动物作为图标,而 查看详情

hadoop学习笔记二集群环境搭建(代码片段)

...行),装3台CentOS7虚拟机。    集群规划:hadoop001192.168.164.10hadoop002192.168.164.20hadoop003192.168.164.30HDFS集群NameNodeSe 查看详情

学习笔记hadoop——hadoop集群的安装与部署——配置hadoop集群(代码片段)

四、配置Hadoop集群Hadoop集群总体规划Hadoop集群安装采用下面步骤:在Master节点:上传并解压Hadoop安装包。在Master节点:配置Hadoop所需configuration配置文件。在Master节点:拷贝配置好的Hadoop安装包到其他节点。在所有... 查看详情

hadoop学习笔记hdfs单机版windows安装(代码片段)

Hadoop学习笔记(四)HDFS单机版Windows安装1、hadoop相关软件下载1、hadoop下载地址:https://archive.apache.org/dist/hadoop/common/2、windows系统运行环境winutils下载地址:https://download.csdn.net/download/Asia175 查看详情

学习笔记hadoop——hadoop集群的安装与部署(代码片段)

文章目录一、Hadoop集群部署模式二、配置固定IP2.1、虚拟机DHCP2.2、步骤三、配置ssh无密码登录3.1、SSH3.2、MS架构3.3、配置主节点无密码登录四、配置Hadoop集群4.1、上传并解压Hadoop安装包4.2、修改配置文件:hadoop-env.sh4.3、修改... 查看详情

hadoop学习hdfs(代码片段)

1、HDFS的设计HDFS是什么:HDFS即Hadoop分布式文件系统(HadoopDistributedFilesystem),以流式数据访问模式来存储超大文件,运行于商用硬件集群上,是管理网络中跨多台计算机存储的文件系统。HDFS不适合用在:要求低时间延迟数据访... 查看详情

hadoop学习笔记-2wordcount完整实例(代码片段)

...码说明创建Main.java 完整代码​运行wordcount生成jar包启动hadoop准备测试文件 运行开发工具IDEA创建Maven项目NewProject->Maven, 查看详情

大数据基石-hadoop3.x学习教程-hadoop产品了解与快速上手(代码片段)

大数据基石-HadoopHadoop3.x版本全系列教程===楼兰===文章目录一、关于Hadoop1、关于Hadoop产品2、Hadoop课程内容3、Hadoop的主要组件二、Hadoop环境搭建以及快速上手1、Linux环境搭建2、Hadoop集群搭建3、Hadoop快速上手三、... 查看详情

hadoop学习——hadoop单机运行grep实例(包含错误解决方法)(代码片段)

1.概述上一篇安装了Hadoop单机,所以今天打算先用Hadoop的mapreduce自带的Grep实例实践一下,顺带测试Hadoop是否成功安装。(不是水博客,有在努力填坑)实践开始之前,我们需要了解一下Grep实例,Grepÿ... 查看详情