Hadoop

Hadoop简介与安装

一. 概述

1.Hadoop是Apache提供的开源的,可靠的,可拓展的,用于分布式存储(计算)的框架

2.Hadoop除了官网提供的发行版以外,还有很多其他版本。各大厂商中比较出名的发行版:Cloudera的CDH、华为:HDP

二、发展

1、创始人:Doug CUtting(道格-卡丁)和 Mike Cafarella(麦克)

2、在2002年,Doug和Mike为了搜索引擎Nutch爬取全网10亿个网页的数据

3、在2003年,Google发表–《The Google FileSystem》(GFS)阐述了Google分布式存储的原理,并没有对外公开这个框架。

4、在2004年,doug和mike 就设计除了NDFS(NUtch Distributed FileSystem),解决了Nutch引擎的海量存储的问题

5、在2005年,Google发表了 《The Google MapREduce》 阐述了Google分布式计算思想

6、Doug和 mike 又根据这篇论文设计出了用于Nutch引擎的MapReduce

7、在Nutch引擎0.8版本的时候,Doug将NDFS和 MapReduce 分离了出来,组成了Hadoop。NDFS就被更名为HDFS

8、在2008年,Doug 加入Yahoo。Doug在 Yahoo的时候,开源了Hadoop,还设计实现了HBase(SQl)Pig等框架

9、后来,Yahoo决定将Hadoop、Pig、HBase等等全部贡献得Apache

三、Hadoop模块

Hadoop Common:基本模块。为了支持其他Hadoop模块存在的

Hadoop Distributed File System (HDFS™):分布式文件系统。存储海量数据的

Hadoop YARN:是一个用于(MapReduce分布计算的)任务调度和(集群)资源管理的框架

Hadoop MapReduce:基于YARN的进行分布式计算的框架

Hadoop Ozone 面对Hadoop进行对象存储的技术

Hadoop Submarine : 用于机器学习的引擎(2019.03出现)

四、版本(2.0和3.0都不兼容1.0,学习中统一采用2.7.1版本)

1.Hadoop1.0: 包含了HDFS和MapReduce
2.Hadoop2.0: HDFS、MapReduce、Yarn。在比较后期的版本支持Ozone
3.Hadoop3.0: 包含了Hadoop所有的模块。可以兼容2.0 (2017。12出现)

Hadoop安装版本:

单机版:MapReduce 安装包解压缩就可以使用,不需要配置。只能够使用一个模块MaoReduce。产生的数据默认存储本机上的。

伪分布式版本:HDFS、MapReduce、Yarn 利用一个节点模拟整个集群环境,则一个节点上面去启动该集群所需要的所有进程。能够使用所有的模块。

完全分布式版本:利用集群来部署hadoop

Xshell:rpm -qa | grep java 查找有关 java字符的文件

[root@tedu ~]# rpm -qa | grep java
tzdata-java-2016j-1.el6.noarch
java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
[root@tedu ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
[root@tedu ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
[root@tedu ~]# java -version
-bash: /usr/bin/java: 没有那个文件或目录

Hadoop的安装

jdk版本使用1.8及以上

jdk下载地址:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

hadoop下载地址:https://hadoop.apache.org/release/2.7.1.html

1.检查是否存在Java

[root@tedu ~]# java -version 

存在,删除
[root@tedu ~]# rpm -qa | grep java     [rpm:查找命令  -qa:所有文件  grep:按字符查找]
tzdata-java-2016j-1.el6.noarch
java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64

删除:
[root@tedu ~]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64
[root@tedu ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el6_8.x86_64
检查:
[root@tedu ~]# java -version
-bash: /usr/bin/java: 没有那个文件或目录

文件传输插件:

[root@tedu software]# yum -y install lrzsz		#下载插件

[root@tedu software]# rz						#打开文件传输的图形可视化界面

在home下创建software文件夹用于存放jdk

解压
[root@tedu software]# tar -xvxf jdk-8u251-linux-x64.tar.gz
删除:
[root@tedu software]# rm -rf jdk-8u251-linux-x64.tar.gz

linux压缩和解压缩命令

tar												  gz命令
 解包:tar zxvf filename.tar						解压1:gunzip filename.gz
 打包:tar czvf filename.tar dirname				解压2:gzip -d filename.gz

.tar.gz 和 .tgz
解压:tar zxvf filename.tar.gz
压缩:tar zcvf filename.tar.gz dirname
压缩多个文件:tar zcvf filename.tar.gz dirname1 dirname2 dirname3.....
bz2命令
解压1:bzip2 -d filename.bz2
解压2:bunzip2 filename.bz2
压缩:bzip2 -z filename
    .tar.bz2

解压:tar jxvf filename.tar.bz2
压缩:tar jcvf filename.tar.bz2 dirname
bz命令
解压1:bzip2 -d filename.bz
解压2:bunzip2 filename.bz
​     .tar.bz
:tar jxvf filename.tar.bz
z命令
  解压:uncompress filename.z
  压缩:compress filename
​    .tar.z
 解压:tar zxvf filename.tar.z
压缩:tar zcvf filename.tar.z dirname
zip命令

  解压:unzip filename.zip
  压缩:zip filename.zip dirname
jdk配置文件修改
cd /etc
[root@tedu etc]# vim profile        

done

unset i
unset -f pathmunge

#java enviroment 					#写入数据(4行)
export JAVA_HOME=/home/software/jdk1.8.0_251			#自己定义
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH  
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

保存退出

jdk安装完成
[root@tedu etc]# vim profile			#修改完毕

[root@tedu etc]# source /etc/profile	#让其生效
[root@tedu etc]# java -version
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

Hadoop安装

#关闭防火墙
[root@tedu etc]# service iptables stop
iptables:将链设置为政策 ACCEPT:filter                    [确定]
iptables:清除防火墙规则:                                 [确定]
iptables:正在卸载模块:                                   [确定]  #暂时关闭
[root@tedu etc]# chkconfig iptables off				#永久关闭防火墙
[root@tedu etc]# vim /etc/sysconfig/network			#修改主机名tedu
NETWORKING=yes
HOSTNAME=tedu.cn
NTPSERVERARGS=iburst

修改为:
NETWORKING=yes
HOSTNAME=hadoop01			#不要用_  和纯数字(主机名)
NTPSERVERARGS=iburst
修改完毕,使其生效
[root@tedu etc]# source /etc/sysconfig/network
修改映射(原hosts文件)
[root@tedu etc]# vim /etc/hosts
修改:
192.168.11.128  hadoop01           (虚拟机ip地址)
重启虚拟机:
[root@tedu etc]# reboot
钥匙自动生成
[root@hadoop01 ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 


将密码复制到hadooop:		搭建服务器集群或用到免密登录

[root@hadoop01 ~]# ssh-copy-id root@hadoop01			#免密登录
The authenticity of host 'hadoop01 (192.168.11.128)' can't be established.
RSA key fingerprint is 34:37:d0:00:76:2a:cf:d4:15:d4:b4:38:02:fb:23:60.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'hadoop01,192.168.11.128' (RSA) to the list of known hosts.
root@hadoop01's password: 
Now try logging into the machine, with "ssh 'root@hadoop01'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.
开始安装hadoop
[root@hadoop01 ~]# cd /home/software
[root@hadoop01 software]# ll
总用量 4
drwxr-xr-x. 7 10143 10143 4096 3月  12 14:37 jdk1.8.0_251
[root@hadoop01 software]# rz

[root@hadoop01 software]#tar -xvf hadoop-2.7.1.tar.gz
[root@hadoop01 software]# rm -rf hadoop-2.7.1.tar.gz

Hadoop文件配置

配置文件修改(可执行文件需要生效)

include和libexec C的扩展包相关

vim hadoop-env.sh

[root@hadoop01 hadoop-2.7.1]#cd etc/hadoop
[root@hadoop01 hadoop]# vim hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}	
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-"/etc/hadoop"}(动态获取)
修改为:
export JAVA_HOME=/home/software/jdk1.8.0_251
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
保存退出
生效
[root@hadoop01 hadoop]# source hadoop-env.sh

[root@hadoop01 hadoop]# vim core-site.xml

修改如下:
<configuration>
        <property>														#笔记注释
                <name>fs.defaultFS</name>	#NameNode在哪?
                <value>hdfs://hadoop01:9000</value>                     #hdfs:协议   hadoop01:IP地址映射    
        </property>														#9000:hadoop内部通信的端口号
        <property>
                <name>hadoop.tmp.dir</name>		#DataNode在哪?						#文件存储
                <value>/home/software/hadoop-2.7.1/tmp</value>			#地址
        </property>
</configuration>

[root@hadoop01 hadoop]# vim hdfs-site.xml

dfd:d  分布式  fs 文件系统 
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>  		//默认备份数量1	
        </property>
</configuration>

[root@hadoop01 hadoop]# vim mapred-site.xml

复制mapred-site.xml.template  改名为mapred-site.xml
[root@hadoop01 hadoop]# cp mapred-site.xml.template mapred-site.xml
[root@hadoop01 hadoop]# vim mapred-site.xml
<configuration>
        <property>
                <name>mapreduce.framework.name</name>  #mapreduce框架名字
                <value>yarn</value>
        </property>
</configuration>

[root@hadoop01 hadoop]# vim yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->
        <property>
                <name>yarn.resourcemanager.hostname</name>
                <value>hadoop01</value>
        </property>
        <property>		#node  节点   管理
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
</configuration>

[root@hadoop01 hadoop]# vim slaves #报节点信息的

hadoop01					#当前只有一个节点

为了方便,将hadoop配置到环境变量里面去

[root@hadoop01 hadoop]# vim /etc/profile

#java enviroment                                
export JAVA_HOME=/home/software/jdk1.8.0_251
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME PATH CLASSPATH						#固定,配置jdk是未写
#hadoop environment
export HADOOP_HOME=/home/software/hadoop-2.7.1
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

保存
生效
[root@hadoop01 hadoop]# source /etc/profile

格式化:第一次启动hadoop

[root@hadoop01 hadoop]# hadoop namenode -format
有用信息
20/07/16 06:57:25 INFO common.Storage: Storage directory /home/software/hadoop-2.7.1/tmp/dfs/name has been successfully formatted.	

启动所有可执行文件(sh)

[root@hadoop01 hadoop]# start-all.sh

查看当前进程

[root@hadoop01 hadoop]# jps
4401 DataNode
5169 Jps								#6个,成功(失败:配置出错)
4594 SecondaryNameNode
4835 NodeManager
4740 ResourceManager
4308 NameNode

可视化图形界面(服务)

在主机浏览器中输入
192.168.96.128:50070
[root@hadoop01 ~]# cd /home/software/hadoop-2.7.1

[root@hadoop01 hadoop-2.7.1]# cd etc/hadoop
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值