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

南城、每天都要学习呀 南城、每天都要学习呀     2023-04-02     608

关键词:

前言

记录我在学习大数据技术中的学习笔记

目录

前言

一、Hadoop介绍

二、Hadoop发行版介绍

三、Hadoop核心架构发展历史

四、Hadoop三大核心组件介绍

五、Hadoop集群安装部署

a、伪分布式集群安装部署

1.下载hadoop安装包

2.设置静态ip

 3、修改主机名

 4.关闭防火墙

5.ssh 免密登录

 6.安装jdk

7. 上传Hadoop安装包

8.解压Hadoop安装包

9.配置环境变量

 10.修改配置文件

 11.格式化hdfs

 12.修改启动脚本,添加用户信息

 13.启动集群

14.查看集群是否启动成功

​编辑15. 配置windos中ip映射

 ​编辑 16.停止集群

b、分布式集群安装

1.准备三台机器

2.修改三台机器中的hosts文件

3.同步三台机器的时间

4.主节点实现免密登录其他从节点

5.解压Hadoop安装包

6.修改Hadoop配置信息

7.纷发Hadoop文件夹

8、格式化hdfs

9.启动集群

10.关闭集群

c、Hadoop的客户端节点


一、Hadoop介绍

Hadoop适合海量数据分布式存储和分布式计算

Hadoop的作者是Doug Cutting ,Hadoop这个作者的孩子给他的毛绒象玩具起的名字

二、Hadoop发行版介绍

Apache Hadoop:官方版本,开源

Cloudera Hadoop(CDH):商业版本,对官方版本做了一些优化,提供收费的技术支持,提供界面操作,方便集群运维管理

HortonWorks(HDP):开源,提供界面操作,方便运维管理

建议在实际工作中搭建大数据平台时选择CDH或者HDP,方便运维管理

三、Hadoop核心架构发展历史

Hadoop1.x

MapReduce(分布式计算),HDFS(分布式存储)

Hadoop2.x

MapReduce,Others,YARN(资源管理),HDFS

Hadoop3.x

MapReduce,Others,YARN,HDFS

四、Hadoop三大核心组件介绍

Hadoop主要包含三大组件:HDFS+MapReduce+YARN

HDFS负责海量数据的分布式存储

MapReduce是一个计算模型,负责海量数据的分布式计算

YARN主要负责集群资源的管理和调度

五、Hadoop集群安装部署

a、伪分布式集群安装部署

伪分布式集群安装:使用一台Linux机器【建议在后续学习阶段使用伪分布式集群】

1.下载hadoop安装包

这里我使用的是hadoop3.2.0这个版本,下面是官网下载链接

https://archive.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gzhttps://archive.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz

2.设置静态ip

vi /etc/sysconfig/network-scripts/ifcfg-ens33

 3、修改主机名

零时设置
hostname 主机名

永久设置
vi /etc/hostname

 4.关闭防火墙

零时关闭
systemctl stop firewalld
查看防火墙状态
systemctl status firewalld
永久关闭
systemctl disable firewalld

5.ssh 免密登录

ssh-keygen -t rsa

一直回车就行 

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

登录时就不需要密码了

 6.安装jdk

找到自己下载的jdk安装包,并通过Xshell上传至Linux中,解压jdk安装包

tar -zxvf jdk-8u202-linux-x64.tar.gz

 重命名一下

mv jdk-8u202-linux-x64.tar.gz jdk1.8

配置环境

vi /etc/profile

 在文件最后添加(后面的路径根据自己jdk所在位置)

xport JAVA_HOME=/data/soft/jdk1.8
export PATH=.:$JAVA_HOME/bin:$PATH

 重新加载一下,使环境变量生效

source /etc/profile

测试是否配置成功

java -version

7. 上传Hadoop安装包

8.解压Hadoop安装包

tar -zxvf hadoop-3.2.0.tar.gz

9.配置环境变量

vi /etc/profile

在文件最后面添加

 10.修改配置文件

cd /data/soft/hadoop-3.2.0/etc/hadoop
vi hadoop-env.sh

 在文件末尾添加

export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
vi core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://主机名:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>存放日志的路径</value>
   </property>
</configuration>

vi hedf-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>副本数</value>
    </property>
</configuration>

 

vi mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>指定执行引擎</value>
    </property>
</configuration>

 

vi yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>指定mapreduce计算框架</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>
</configuration>

 

vi workers

 将所有内容删除,改成自己的主机名

 11.格式化hdfs

bin/hdfs namenode -format

 12.修改启动脚本,添加用户信息

cd /data/soft/hadoop-3.2.0/sbin
vi start-dfs.sh

 尽量加在文件上面点,因为后面的代码会使用到这些

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
vi start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
vi stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

 13.启动集群

start-all.sh

14.查看集群是否启动成功

jps

 看到这6个进程则为启动成功

hdfs 服务 端口号 : 9870

可以通过浏览器来进行访问

主机IP:9870

 yarn 服务 端口号:8088

可以通过浏览器来访问

主机IP:8088

15. 配置windos中ip映射

在最后添加

  16.停止集群

stop-all.sh

b、分布式集群安装

使用三台Linux机器

master(主节点)

NamNode ,Secondary namenode ,Resource Manager

slave(从节点1)

DataNode ,NodeManage

slave(从节点2)

DataNode ,NodeManager

1.准备三台机器

通过克隆之前的bigdatao2,来创建第三台机器

更改第三台机器的ip地址

第二台机器的配置

更改ip

vim /etc/sysconfig/network-scripts/ifcfg-ens33

更改主机名

零时设置
hostname 主机名
永久设置
vi /etc/hostname
主机名

防火墙

零时关闭
systemctl stop firewalld
查看防火墙状态
systemctl status firewalld
永久关闭
systemctl disable firewalld

免密登录

ssh-keygen -t rsa

一直回车

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

解压jdk

tar -zxvf jdk安装包名

配置环境变量

vi /etc/profile
export JAVA_HOME=/data/soft/jdk1.8
export .:$JAVA_HOME/bin:$PATH

第三台机器的配置和第二台机器的配置是一样的 

2.修改三台机器中的hosts文件

vi /etc/hosts
192.168.10.100 bigdata01
192.168.10.101 bigdata02
192.168.10.102 bigdata03
192.168.10.103 bigdata04
192.168.10.104 bigdata05

三台机器都要修改,内容都是一样的

3.同步三台机器的时间

yum install -y netdate
ntpdata -u ntp.sjtu.edu.cn

添加到定时任务中

vi /etc/crontab
* * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn

三台机器都要执行

4.主节点实现免密登录其他从节点

先拷贝到家目录下

到主节点

scp ~/.ssh/authorized_keys bigdata02:~/

scp ~/.ssh/authorized_keys bigdata03:~/

到从节点1

cat ~/authorized_keys >> ~/.ssh/authorized_keys

到从节点2

cat ~/authorized_keys >> ~/.ssh/authorized_keys

5.解压Hadoop安装包

tar -zxvf hadoop安装包名

6.修改Hadoop配置信息

/data/soft/hadoop-3.2.0/etc/hadoop
vi hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
vi core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://主节点主机名:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>日志目录</value>
   </property>
</configuration>

 

vi hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>副本数</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>bigdata01:50090</value>
    </property>
</configuration>

vi mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>
vi yarn-site.xml
<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</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.resourcemanager.hostname</name>
		<value>指定resourcemanager节点在那个机器上执行</value>
	</property>
</configuration>

vi workers

bigdata02
bigdata03

修改启动脚本

vi start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

7.纷发Hadoop文件夹

scp -rq Hadoop文件名 bigdat02:/data/soft

scp -rq hadoop-3.2.0 bigdata03:/data/soft

8、格式化hdfs

hdfs namenode -format

9.启动集群

start-all.sh

10.关闭集群

stop-all.sh

c、Hadoop的客户端节点

在实际工作中不建议直接连接集群中的节点来操作集群,直接把集群中的节点暴露给普通开发人员是不安全的

建议在业务机器上安装Hadoop,这样就可以在业务机器上操作Hadoop机器了,此机器就称为Hadoop的客户端节点

大数据—hadoop(入门篇一)(代码片段)

...e基金会所开发的分布式系统基础架构主要解决,海量数据的存储和海量数据的分析计算问题广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈高可靠性:Hadoo 查看详情

学习笔记hadoop——hadoop基础操作——hadoop安全模式hadoop集群基本信息(代码片段)

...。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。实际操作中 查看详情

学习笔记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... 查看详情

python大数据分析学习基础篇——数据结构(代码片段)

一、函数部分1、闭包所谓闭包其实跟回调函数有有相通之处。闭包可以延长作用时间和作用域。defsay(word):defname(name):print(word,name)returnnamehi=say('你好')hi("小明")bye=say("再见")bye("小明")运行结果:... 查看详情

hadoop基础学习笔记

...志信息监控目录告警和日志信息监控实验一:查看大数据平台日志信息         实验任务一:查看大数据平台主机日志步骤一:查看内核及公共消息日志(/var/log/messages)。步骤二:查看计划任务日志/... 查看详情

大数据讲课笔记3.1hadoop安装准备(代码片段)

文章目录零、学习目标一、导入新课二、新课讲解(一)Hadoop集群拓扑1、集群拓扑2、角色分配(二)虚拟机安装(三)虚拟机克隆1、克隆类型(1)完整克隆(2)链接克隆2、克隆步骤(... 查看详情

hadoop学习笔记hdfs基础命令(代码片段)

HDFS基础命令lshdfsdfs-ls/ls-Rhdfsdfs-ls-R/mkdirhdfsdfs-mkdir-p/hao/okputhdfsdfs-put/root/a.txt/dir1moveFromLocalhdfsdfs-moveFromLocal/root/hao.txt/gethdfsdfs-get/dir2/dir22/a.txt./mvhdfsdfs-mv/dir1/a.txt/ 查看详情

python大数据分析学习基础篇——初识python(代码片段)

1、代码注释方法(1)在一行中,“#”后的语句不被执行,表示被注释。(2)如果要进行大段的注释,可以使用3个单引号(‘’‘)或者三个双引号(“”“)将注释内容包围。2、用缩进表... 查看详情

hadoop学习笔记之hadoop基础(代码片段)

一、虚拟机的防火墙开关1查看防火墙状态:systemctlstatusfirewalld2、关闭防火墙:systemctlstopfirewalld3、开机防火墙不启动:systemctldisablefirewalld二、查看虚拟机当前的ip地址第一种方法:ifconfig-a第二种方法:ipaddrwin... 查看详情

python大数据分析学习基础篇——spyder和numpy(代码片段)

...2、变量浏览变量是代码执行过程中暂时停留在内存中的数据&# 查看详情

计算机基础学习笔记:操作系统篇之硬件结构,cpucache基础概念(代码片段)

三、CPUCache的数据结构和读取过程本文知识来源小林Coding阅读整理思考,原文链接请见该篇文章Cache结构CPUCache是由很多个CacheLine组成的,CacheLine是CPU从内存读取数据的基本单位,而CacheLine是由各种**标志(Tag)... 查看详情

学习笔记尚硅谷hadoop大数据教程笔记

...、使用和编写代码不在我考虑的范围内。一、Hadoop入门大数据的特点:Volume(大量)Velocity(高速)Variety 查看详情

学习笔记尚硅谷hadoop大数据教程笔记

...、使用和编写代码不在我考虑的范围内。一、Hadoop入门大数据的特点:Volume(大量)Velocity(高速)Variety 查看详情

python大数据分析学习基础篇——异常与函数(代码片段)

...正常执行过程中出现的一些异常情况,如语法错误、数据除零错误、从未定义的变量上取值等;而try/finall语句则主要用于监控错误的环节。尽管作用不同,但是在编程实践中通常把他们结合在一起,Python中try/excep... 查看详情

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

三、HDFS常用Shell操作3.1、HDFS文件系统HDFSShell指的是可以使用类似shell的命令来直接和Hadoop分布式文件系统(HDFS)进行交互。使用命令:bin/hadoopfs<args>bin/hdfsdfs<args>参数中的路径使用scheme://authority/path的格式... 查看详情

尚硅谷大数据hadoop教程-笔记01入门(代码片段)

视频地址:尚硅谷大数据Hadoop教程(Hadoop3.x安装搭建到集群调优)尚硅谷大数据Hadoop教程-笔记01【入门】尚硅谷大数据Hadoop教程-笔记02【HDFS】尚硅谷大数据Hadoop教程-笔记03【MapReduce】尚硅谷大数据Hadoop教程-笔记04【Ya... 查看详情

夜斗大数据之java篇:迭代器(代码片段)

Java基础学习打卡:day03笔记:动力节点packagecom.hit.demo8;importjava.util.ArrayList;importjava.util.Collection;importjava.util.HashSet;importjava.util.Iterator;/**关于集合遍历/迭代专题**/publicclassCollectionTe 查看详情

夜斗大数据之java篇:迭代器(代码片段)

Java基础学习打卡:day03笔记:动力节点packagecom.hit.demo8;importjava.util.ArrayList;importjava.util.Collection;importjava.util.HashSet;importjava.util.Iterator;/**关于集合遍历/迭代专题**/publicclassCollectionTe 查看详情