广州微信网站设计制作,免费ppt模板下载网址推荐,在线简历模板,网站程序和seo的关系作者 | chen_01_c责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于视觉中国hadoop介绍Hadoop 是 Lucene 创始人 Doug Cutting#xff0c;根据 Google 的相关内容山寨出来的分布式文件系统和对海量数据进行分析计算的基础框架系统#xff0c;其中包含 MapReduce 程序#… 作者 | chen_01_c责编 | Carol来源 | CSDN 博客封图 | CSDN付费下载于视觉中国hadoop介绍Hadoop 是 Lucene 创始人 Doug Cutting根据 Google 的相关内容山寨出来的分布式文件系统和对海量数据进行分析计算的基础框架系统其中包含 MapReduce 程序hdfs 系统等[它受到最先由 Google Lab 开发的 Map/Reduce 和 Google File System(GFS) 的启发。]Hadoop实现了一个分布式文件系统Hadoop Distributed File System简称HDFS。HDFS有高容错性的特点并且设计用来部署在低廉的low-cost硬件上而且它提供高吞吐量high throughput来访问应用程序的数据适合那些有着超大数据集large data set的应用程序。HDFS放宽了relaxPOSIX的要求可以以流的形式访问streaming access文件系统中的数据。Hadoop的框架最核心的设计HDFS 和mapreduceHDFS为海量数据提供存储MapReduce: 为海量数据提供了计算cluster:集群LB负载均衡LVS SLB HAPROXY,nginxHA高可用MHAkeepalivedhearebeatHPC、Hadoop大批量的计算辅助存储和运算什么是分布式分散的Hadoop的集群优点Hadoop是一个能够对大量数据进行分布式处理的软件框架。Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。Hadoop 是可靠的因为它假设计算元素和存储会失败因此它维护多个工作数据副本确保能够针对失败的节点重新分布处理。Hadoop 是高效的因为它以并行的方式工作通过并行处理加快处理速度Hadoop 还是可伸缩的能够处理 PB 级数据。PB级别的数据换算成GIPB1024TB1TB1024GHadoop 依赖于社区服务因此它的成本比较低任何人都可以使用。Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点高可靠性hadoop 按位存储和处理数据的能力值得人们信赖高扩展性节点比较多方便计算和分配数据。什么是节点节点是一个术语,代指一类设备.他们可以是主机pc,服务器,也可以是构成传输网络的交换机,路由器,防火墙等等.高效性Hadoop能够在节点之间动态地移动数据并保证各个节点的动态平衡因此处理速度非常快。容错性Hadoop能够自动保存数据的多个副本并且能够自动将失败的任务重新分配。raid 容错性是什么意思raid几没有容错性raid 几有容错性。低成本与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比hadoop是开源的项目的软件成本因此会大大降低注意hadoop框架开发语言java在linux上运行效果比较理想。官网http://hadoop.apache.org/关于hadoop的相关概念1、分布式存储linux存储有哪些答NFS, NAS, HDFS,MFS命名空间namespace:在分布式存储系统中分散在不同节点中的数据可能属于同一个文件为了组织众多的文件把文件可以放到不同的文件夹中文件夹可以一级一级的包含。我们把这种组织形式称为命名空间namespace。命名空间管理着整个服务器集群中的所有文件。命名空间的职责与存储真实数据的职责是不一样的。负责命名空间职责的节点称为主节点master node负责存储真实数据职责的节点称为从节点slave node。主从节点主节点负责管理文件系统的文件结构从节点负责存储真实的数据合称为主从式结构master-slaves。用户操作的时候也应该是先和主节点打交道 查询数据在那些从节点上 然后再从从节点读取数据。有的时候为了加快用户的访问速度会把整个命名空间信息都放在内存当中、当存储文件越多时我们主节点就需要越多的内存空间。打开一个文件是先加载到哪里答内存我们为什么用笔记本打不开一个2T大小的文件答内存太小2、Block在从节点存储数据时有的原始数据文件可能很大有的可能很小大小不一的文件不容易管理那么可以抽象出一个独立的存储文件单位称为块block。问题如果我的硬盘有500G现在还剩200G 但是我创建文件的时候提示我硬盘空间不足答一般情况是因为inode号不足3、容灾数据存放在集群中可能因为网络原因或者服务器硬件原因造成访问失败最好采用副本replication机制把数据同时备份到多台服务器中这样数据就安全了数据丢失或者访问失败的概率就小了。4、异地容灾答不同的地域构建一套或者多套相同的应用或者数据库起到灾难后立刻接管的作用在 hadoop 中分布式存储系统称为 HDFShadoop distributed file system。其中主节点称为名字节点namenode从节点称为数据节点datanode流程1首先客户端请求查看数据请求先访问namenode2nomenode根据你的需求告诉你数据存储在那些datanode上3客户端直接和从节点联系获取数据分布式计算对数据进行处理时我们会把数据读取到内存中进行处理。如果我们对海量数据进行处理比如数据大小是 100GB我们要统计文件中一共有多少个单词。要想把数据都加载到内存中几乎是不可能的称为移动数据。那么是否可以把程序代码放到存放数据的服务器上呢因为程序代码与原始数据相比一般很小几乎可以忽略的所以省下了原始数据传输的时间了。现在数据是存放在分布式文件系统中100GB 的数据可能存放在很多的服务器上那么就可以把程序代码分发到这些服务器上在这些服务器上同时执行也就是并行计算也是分布式计算。这就大大缩短了程序的执行时间。我们把程序代码移动数据节点的机器上执行的计算方式称为移动计算。分布式计算需要的是最终的结果程序代码在很多机器上并行执行后会产生很多的结果因此需要有一段代码对这些中间结果进行汇总。Hadoop中的分布式计算一般是由两阶段完成的。第一阶段负责读取各数据节点中的原始数据进行初步处理对各个节点中的数据求单词数。然后把处理结果传输到第二个阶段对个节点结果进行汇总产生最终结果。在hadoop中分布式计算部分称为MapReduce。MapReduce 是一种编程模型用于大规模数据集大于1TB的并行运算。概念Map映射“和Reduce(归约)”和它们的主要思想都是从函数式编程语言里借来的还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下将自己的程序运行在分布式系统上。分布式计算角色主节点作业节点jobtracker从节点任务节点tasktracker在任务节点当中运行第一阶段的代码称为map任务map task 运行第二阶段代码称为 reduce任务reduce task名词解释1hadoop : apache 开源的分布式框架2HDFShadoop的分布式文件系统3NameNode: Hadoop HDFS 元数据主节点服务器负责保存datenode文件存储元数据信息这个服务器时单点的。4 obtracker : hadoop的map/reduce调度器负责与任务节点通信分配计算任何并跟踪任务进度这个服务器也是单点的。5DataNode : Hadoop的数据节点负责存储数据6tasktracker: hadoop的调度程度负责map和reduce的任务的启动和执行hadoop集群搭建1环境配好IP关闭iptables 关闭selinux,配置hosts[root chenc01 ~]# service iptables stop
[root chenc01 ~]# setenforce 0
[root chenc01 ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
10.0.0.61 chenc01
10.0.0.62 chenc02
10.0.0.63 chenc03
2创建普通用户三台服务器上都要创建普通用户hadoop配置密码123456[root chenc01 ~]# useradd -u 8000 hadoop ; echo 123456 | passwd --stdin hadoop
更改用户 hadoop 的密码 。
passwd 所有的身份验证令牌已经成功更新。
3 设置namenode设置namenode能够无密钥登录另外两台服务器[root chenc01 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory /root/.ssh.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
f1:7c:f6:6c:81:f5:a6:2a:74:d1:f2:95:50:38:ad:6f rootchenc01.localdomain
The keys randomart image is:
--[ RSA 2048]----
| . |
| . |
| . . .|
| o.o.|
| S o o.o|
| .o.o.E |
| . . * |
| . o |
| .. |
-----------------
[root chenc01 ~]# ssh-copy-id root10.0.0.62
The authenticity of host 10.0.0.62 (10.0.0.62) cant be established.
RSA key fingerprint is 9b:57:b9:86:84:90:a4:4b:44:3e:18:9f:8a:29:6f:e5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 10.0.0.62 (RSA) to the list of known hosts.
root10.0.0.62s password:
Now try logging into the machine, with ssh root10.0.0.62, and check in:.ssh/authorized_keysto make sure we havent added extra keys that you werent expecting.[root chenc01 ~]# ssh-copy-id root10.0.0.63
The authenticity of host 10.0.0.63 (10.0.0.63) cant be established.
RSA key fingerprint is 9b:57:b9:86:84:90:a4:4b:44:3e:18:9f:8a:29:6f:e5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 10.0.0.63 (RSA) to the list of known hosts.
root10.0.0.63s password:
Now try logging into the machine, with ssh root10.0.0.63, and check in:.ssh/authorized_keysto make sure we havent added extra keys that you werent expecting.
# 测试是否能登录成功
[root chenc01 ~]# ssh 10.0.0.62
Last login: Fri Nov 29 17:15:15 2019 from 10.0.0.1
4安装jdk[root chenc01 ~]# rpm -ivh jdk-8u131-linux-x64_.rpm
Preparing... ########################################### [100%]1:jdk1.8.0_131 ########################################### [100%]
Unpacking JAR files...tools.jar...plugin.jar...javaws.jar...deploy.jar...rt.jar...jsse.jar...charsets.jar...localedata.jar...
# 修改/etc/profile
export JAVA_HOME/usr/java/jdk1.8.0_131/
export JAVA_BIN/usr/java/jdk1.8.0_131/bin/
export PATH${JAVA_HOME}/bin:$PATH
export CLASSPATH.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
# 加载
[root chenc01 ~]# source /etc/profile
# 查看java版本
[root chenc01 ~]# java -version
java version 1.8.0_131
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
问题source 在数据库里还可以用来做什么答导入5在另外两个节点安装java/jdk[root chenc02 ~]# rpm -ivh jdk-8u131-linux-x64_.rpm
Preparing... ########################################### [100%]1:jdk1.8.0_131 ########################################### [100%]
Unpacking JAR files...tools.jar...plugin.jar...javaws.jar...deploy.jar...rt.jar...jsse.jar...charsets.jar...localedata.jar...
# 修改/etc/profile
export JAVA_HOME/usr/java/jdk1.8.0_131/
export JAVA_BIN/usr/java/jdk1.8.0_131/bin/
export PATH${JAVA_HOME}/bin:$PATH
export CLASSPATH.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
# 加载
[root chenc02 ~]# source /etc/profile
# 查看java版本
[root chenc02 ~]# java -version
java version 1.8.0_131
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
6安装namenodeHadoop 安装目录/home/hadoop/hadoop-3.13 使用 root 帐号将 hadoop-3.1.3.tar.gz 上传到服务器并且放到/home/hadoop下创建dfs和tmp[root chenc01 ~]# su - hadoop
[hadoop chenc01 ~]$ mkdir -p /home/hadoop/dfs/name /home/hadoop/dfs/data /home/hadoop/tmp
[hadoop chenc01 ~]$ rz
[hadoop chenc01 ~]$ whoami
hadoop
[hadoop chenc01 ~]$ ls
dfs hadoop-3.1.3.tar.gz tmp
解压[hadoop chenc01 ~]$ tar xvf hadoop-3.1.3.tar.gz
[hadoop chenc01 ~]$ cd hadoop-3.1.3
[hadoop chenc01 hadoop-3.1.3]$ ll
total 200
drwxr-xr-x 2 hadoop hadoop 4096 2019-09-12 12:46 bin
drwxr-xr-x 3 hadoop hadoop 4096 2019-09-12 10:51 etc
drwxr-xr-x 2 hadoop hadoop 4096 2019-09-12 12:46 include
drwxr-xr-x 3 hadoop hadoop 4096 2019-09-12 12:46 lib
drwxr-xr-x 4 hadoop hadoop 4096 2019-09-12 12:46 libexec
-rw-rw-r-- 1 hadoop hadoop 147145 2019-09-04 17:31 LICENSE.txt
-rw-rw-r-- 1 hadoop hadoop 21867 2019-09-04 17:31 NOTICE.txt
-rw-rw-r-- 1 hadoop hadoop 1366 2019-09-04 17:31 README.txt
drwxr-xr-x 3 hadoop hadoop 4096 2019-09-12 10:51 sbin
drwxr-xr-x 4 hadoop hadoop 4096 2019-09-12 13:08 share
[hadoop chenc01 hadoop-3.1.3]$ cd /home/hadoop/hadoop-3.1.3/etc/hadoop/
[hadoop chenc01 hadoop]$ pwd
/home/hadoop/hadoop-3.1.3/etc/hadoop
[hadoop chenc01 hadoop]$ ls
hadoop-env.sh # java的环境变量
yarn-env.sh # 制定yarn框架的Java运行环境
slaves # 指定datanode数据存储服务器
core-site.xml # hadoop-web界面路径
hdfs-site.xml # 文件系统的配置文件
mapred-site.xml # mapreducer 任务配置文件
yarn-site.xml # yarn框架配置主要一些任务的启动位置
修改文件[hadoop chenc01 hadoop]$ vim hadoop-env.sh
exprot JAVA_HOME/usr/java/jdk1.8.0_13
[hadoop chenc01 hadoop]$ vim yarn-env.sh
JAVA_HOME/usr/java/jdk1.8.0_131
[hadoop chenc01 hadoop]$ vim slaves
chenc02
chenc03
备注这个是hadoop的核心配置这里需要配置两属性 fs.default.name 配置hadoop的HDFS系统命令位置为主机的9000端口 hadoop.tmp.dir 配置haddop的tmp目录的根位置。[hadoop chenc01 hadoop]$ vim core-site.xmlconfiguration
propertynamefs.defaultFS/namevaluehdfs://chenc01:9000/value
/propertypropertynameio.file.buffer.size/namevalue131072/value
/propertypropertynamehadoop.tmp.dir/namevaluefile:/home/hadoop/tmp/valuedescriptionAbase for other tmporary directries./description
/property
/configuration
备注HDFS主要的配置文件 dfs.http.address配置了hdfs的http的访问位置dfs.replication 配置文件的副本一般不大于从机个数。[hadoop chenc01 hadoop]$ vim hdfs-site.xmlconfiguration
property
configuration
propertynamedfs.namenode.secondary.http-address/namevaluechenc01:9000/value
/propertypropertynamedfs.namenode.name.dir/namevaluefile:/home/hadoop/dfs/name/value
/propertypropertynamedfs.datanode.data.dir/namevaluefile:/home/hadoop/dfs/data/value
/propertypropertynamedfs.replication/namevalue2/value
/propertypropertynamedfs.webhdfs.enabled/namevaluetrue/value
/property
/configuration
备注这个是mapreduce任务配置文件mapreduce.framework.name 属性下配置yarn,mapred.map.tasks和mapred.reduce.tasks 分别为map和reduce 的任务数。同时指定hadoop历史服务器hsitoryserver我们可以通过historyserver查看mapreduce的作业记录比如用了多少个map,用了多少个reduce作业启动时间作业完成时间。默认清空下hadoop历史服务器是没有启动的我们需要通过命令来启动。[hadoop chenc01 ~]$ /home/hadoop/hadoop-3.1.3/sbin/mr-jobhistory-daemon.sh start historyserver
/home/hadoop/hadoop-3.1.3/etc/hadoop/hadoop-env.sh: line 39: exprot: command not found
WARNING: Use of this script to start the MR JobHistory daemon is deprecated.
WARNING: Attempting to execute replacement mapred --daemon start instead.
WARNING: /home/hadoop/hadoop-3.1.3/logs does not exist. Creating.
[hadoop chenc01 hadoop]$ vim mapred-site.xml
configuration
propertynamemapreduce.framework.name/namevalueyarn/value
/propertypropertynamemapreduce.jobhistory.address/namevaluechenc01:10020/value
/propertypropertynamemapreduce.jobhistory.webapp.address/namevaluechenc01:19888/value
/property
/configuration
备注yarn框架的配置主要是一些任务的启动位置[hadoop chenc01 hadoop]$ vim yarn-site.xml
configuration
!-- Site specific YARN configuration properties --
proetrynameyarn.nodemanager.aux-service/namevaluemapreduce_shuffle/value
/proetryproetrynameyarn.nodemanager.uax-service.mapreduce.shuffle.class/namevalueorg.apache.hadoop.mapreduced.ShuffleHandle/value
/proetry
proetrynameyarn.resoucemanager.address/namevaluechenc01:8032/value
/proetry
proetrynameyarn.resourcemanager.shceduler.address/namevaluechenc01:8030/value
/proetry
proetrynameyarn.resourcemanager.resource-tracker.address/namevaluechenc01:8031/value
/proetryproetrynameyarn.resourcemanager.admin.address/namevaluechenc01:8033/value
/proetryproetrynameyarn.resourcemanager.webapp.address/namevaluechenc01:8088/value
/proetry
/configuration
datanode配置文件生成[hadoop chenc01 hadoop]$ scp -r /home/hadoop/hadoop-3.13 hadoopchenc02:~/
The authenticity of host chenc02 (10.0.0.62) cant be established.
RSA key fingerprint is 9b:57:b9:86:84:90:a4:4b:44:3e:18:9f:8a:29:6f:e5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added chenc02,10.0.0.62 (RSA) to the list of known hosts.
hadoopchenc02s password:
/home/hadoop/hadoop-3.13: No such file or directory
[hadoop chenc01 hadoop]$ scp -r /home/hadoop/hadoop-3.13 hadoopchenc03:~/
The authenticity of host chenc03 (10.0.0.63) cant be established.
RSA key fingerprint is 9b:57:b9:86:84:90:a4:4b:44:3e:18:9f:8a:29:6f:e5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added chenc03,10.0.0.63 (RSA) to the list of known hosts.
hadoopchenc03s password:
/home/hadoop/hadoop-3.13: No such file or directory
namenode格式化数据一般第一次的时候需要初始化之后就不需要了[hadoop chenc01 ~]$ cd /home/hadoop/hadoop-3.1.3/bin/
[hadoop chenc01 bin]$ ./hdfs namenode -format
2020-03-04 16:05:17,247 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/dfs/name/current/fsimage.ckpt_0000000000000000000 of size 393 bytes saved in 0 seconds .
2020-03-04 16:05:17,268 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid 0
2020-03-04 16:05:17,277 INFO namenode.FSImage: FSImageSaver clean checkpoint: txid 0 when meet shutdown.
2020-03-04 16:05:17,278 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at xinsz08-1/192.168.1.18
************************************************************/
查看是否生成相应的内容[hadoop chenc01 ~]$ cd /home/hadoop/dfs/
[hadoop chenc01 dfs]$ ls
data name
[hadoop chenc01 dfs]$ tree
.
├── data
└── name└── current├── fsimage_0000000000000000000├── fsimage_0000000000000000000.md5├── seen_txid└── VERSION3 directories, 4 files
配置免密要登录[hadoop chenc01 dfs]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/hadoop/.ssh/id_rsa.
Your public key has been saved in /home/hadoop/.ssh/id_rsa.pub.
The key fingerprint is:
cf:4f:4e:5e:8a:4f:7e:86:e9:f6:8c:8f:77:b9:69:50 hadoopchenc01.localdomain
The keys randomart image is:
--[ RSA 2048]----
| |
| |
| |
| E |
| S . |
| o . |
| o oo .|
| X*oo|
| .*.|
-----------------
[hadoop chenc01 dfs]$ ssh-copy-id chenc02
[hadoop chenc01 dfs]$ ssh-copy-id chenc01 # 对自己也做一次
[hadoop chenc01 dfs]$ ssh-copy-id chenc03
备注方便后期复制文件或者启动服务。因为namenode启动时候会链接到datanode上启动对应的服务。启动hdfs[hadoop chenc01 dfs]$ /home/hadoop/hadoop-3.1.3/etc/hadoop报错2020-03-04 16:16:45,394 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable解答http://dl.bintray.com/sequenceiq/sequenceiq-bin/ 下载对应版本
解压覆盖hadoop下/lib/native/
上传之后解压
[hadoop chenc01 ~]$ cd hadoop-3.1.3/lib/native/
[hadoop chenc01 native]$ ls
examples libhadoop.so libhdfs.a libnativetask.a
libhadoop.a libhadoop.so.1.0.0 libhdfs.so libnativetask.so
libhadooppipes.a libhadooputils.a libhdfs.so.0.0.0 libnativetask.so.1.0.0
[hadoop chenc01 native]$ rz
[hadoop chenc01 native]$ tar xf hadoop-native-64.tar
[hadoop chenc01 native]$ ls
examples libhadoop.so.1.0.0 libnativetask.a
hadoop-native-64.tar libhadooputils.a libnativetask.so
libhadoop.a libhdfs.a libnativetask.so.1.0.0
libhadooppipes.a libhdfs.so
libhadoop.so libhdfs.so.0.0.0
覆盖完之后重启关闭之后在启动[hadoop chenc01 ~]$ cd /home/hadoop/hadoop-3.1.3/etc/hadoop/
[hadoop chenc01 hadoop]$ ../../sbin/stop-dfs.sh
启动yarn也就是说我们要启动 分布式计算[hadoop chenc01 hadoop]$ ../../sbin/start-yarn.sh
[hadoop chenc01 hadoop]$ ../../sbin/start-all.sh
启动jobhistory[hadoop chenc01 hadoop]$ ../../sbin/mr-jobhistory-daemon.sh start historyserver
Web查看集群状态浏览器输入http://10.0.0.61:8088/cluster如果本文对你有帮助请点右下角“在看”告诉我们《原力计划【第二季】- 学习力挑战》正式开始即日起至 3月21日千万流量支持原创作者更有专属【勋章】等你来挑战推荐阅读时间复杂度的表示、分析、计算方法……一文带你看懂时间复杂度
Linux 会成为主流桌面操作系统吗
识别率惊人的 GitHub 口罩检测 | 原力计划
西二旗大厂复工记
智能合约编写之Solidity的基础特性
Javascript函数之深入浅出递归思想附案例与代码
真香朕在看了