点开此文章,说明你对Hadoop至少有一点点的兴趣,那么就让我们一起来学习Hadoop的相关知识吧。我也会在接下来的文章推送中分享我学习Hadoop的相关笔记,愿与大家一起进步!
1、Hadoop是什么?
Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
——-摘自【百度百科】
2、Hadoop能做什么?
Hadoop适合应用于大数据存储和大数据分析的应用,适合于服务器几千台到几万台的集群运行,支持PB级的存储容量。
Hadoop典型应用有:搜索、日志处理、推荐系统、数据分析、视频图像分析、数据保存等。
3、Hadoop的特点
a、高可靠性。Hadoop 按位存储和处理数据的能力值得人们信赖。
b、高扩展性。Hadoop 是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。
c、高效性。Hadoop 能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
d、高容错性。Hadoop 能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。
e、低成本。Hadoop 是开源的,项目的软件成本因此会大大降低。
4、Hadoop环境搭建之伪分布式安装
这是最后的实验成果:
开发版本:Hadoop Apache 2.4.1
开发环境:CentOS 6.4
1)准备Linux环境
1.1、网络配置—-> 主机名,ip地址,域名映射
a、先用ifconfig查看目前的活跃网卡,然后修改网卡的ip地址配置setup配置ip地址(简易图形界面)或者vi /etc/sysconfig/networking/devices/ifcfg-eth0 配置文件来修改ip地址;
b、vi /etc/sysconfig/network 本机的主机名
c、vi /etc/hosts 集群中的主机域名映射表
1.2、系统配置 —-> sudoers加入普通用户,以便于利用sudo指令、时间配置,启动级别配置,防火墙配置
a、service iptables stop 关闭防火墙服务
b、chkconfig iptables off关闭防火墙自启动
c、service iptables status检查防火墙关闭情况
d、chkconfig iptables –list 查看防火墙自启动情况
2)安装JDK
2.1上传alt+p 后出现sftp窗口,然后put d:\xxx\yy\ll\jdk-7u_65-i585.tar.gz
2.2解压jdk
#创建文件夹 mkdir /home/hadoop/app
#解压 tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app
2.3 将java添加到环境变量中
vim /etc/profile
#在文件最后添加
export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585
export PATH=$PATH:$JAVA_HOME/bin
#刷新配置
source /etc/profile
3)安装hadoop2.4.1
先上传hadoop的安装包到服务器上去/home/hadoop/
注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
伪分布式需要修改5个配置文件:
第一个:hadoop-env.sh
第二个:core-site.xml
第三个:hdfs-site.xml hdfs-default.xml
第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
第五个:yarn-site.xml
3.2 将hadoop添加到环境变量
vim /etc/proflie
export JAVA_HOME=/home/hadoop/app/jdk1.7.0_65
export HADOOP_HOME=/home/hadoop/app/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:
$HADOOP_HOME/sbin
source /etc/profile
3.3 格式化namenode(是对namenode进行初始化)
hdfs namenode -format (hadoop namenode -format)
3.4 启动hadoop
先启动HDFS sbin/start-dfs.sh
再启动YARN sbin/start-yarn.sh
3.5 验证是否启动成功
使用jps命令验证 如上图所示。
5、安装过程中遇到的问题
1)按照教程步骤完成后,到最后启动阶段,无法启动服务,如下图:
进一步尝试:在core-site.xml文件中使用主机名时无法启动nameNode服务,但使用127.0.0.1时可以。
解决方案:自定义的主机名中不能有下划线。(查了好多资料才找到,也没有说明原因)
2)主机名修改好后,终于可以启动了,但是问题又来了,当启动了NameNode服务时,DataNode服务没有启动。
进一步尝试:重启,又一次格式化,DataNode服务启动了,但是NameNode服务没有启动(内心奔溃了)
出错原因:由于两次或两次以上的格式化,导致NameNode和DataNode的clusterID不同
解决方案:修改clusterID,要查看clusterID,需要找到core-site.xml的hadoop.tem.dir节点下对应文件
强烈建议:当有问题时,记得去查看日志文件在/app/hadoop-2.4.1/logs 文件夹下查看。
6、说明
1)由于本人Linux的知识掌握不是很扎实,学习起来稍微有点费劲,但是搭好Hadoop的这个环境以后,感觉基本的Linux操作已经稍有熟悉;
2)最最最关键的一点:免费分享我学习的教程,在公众号后台回复“Hadoop学习”即可获取Hadoop学习的全套教程。此套教程,是由传智讲师为周末班的Hadoop学生所讲,讲解很详细,有视频、有文档、有软件,很不错的教程。
也可关注我的微信公众号『TyronToCoder』,一起交流学习。