很多朋友对于深入大数据:Hadoop基础教程(第一天:Hadoop简介及伪分布式环境搭建)和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
官方网址:http://hadoop.apache.org/
Apache的Hadoop是一个开源的、可靠的、可扩展的系统架构,可利用分布式架构来存储海量数据,以及实现分布式的计算。
Hadoop的两个作用:①存储海量数据 ②计算海量数据
Hadoop允许使用简单的编程模型在计算机集群中对大型数据集进行分布式处理。可以从单个服务器扩展到数千台机器,每个机器都提供本地计算和存储,而不是依靠硬件来提供高可用性。此外,Hadoop集群的高可用性也非常良好,因为框架内的机制是可以够自动检测和处理故障。
Hadoop版本说明
第一代Hadoop称为Hadoop1.0,分别是0.20.x,0.21.x和0.22.x
第二代Hadoop称为Hadoop2.0,分别是0.23.x和2.x。
2.0版本完全不同于Hadoop 1.0,是一套全新的架构,加入了Yarn资源协调管理框架。
Hadoop1.0和Hadoop2.0简要架构图
Yarn 资源调度框架——>实现对资源的细粒度封装(cpu,内存,带宽),此外,还可以通过yarn协调多种不同计算框架(MR,Spark)。
Hadoop伪分布式安装
下载地址:
http://hadoop.apache.org/releases.html
注意:
source表示源码
binary表示二级制包(安装包)
安装模式
单机模式:不能使用HDFS,只能使用MapReduce,所以单机模式最主要的目的是在本机调试mapreduce代码
伪分布式模式:用多个线程模拟多台真实机器,即模拟真实的分布式环境。
完全分布式模式:用多台机器(或启动多个虚拟机)来完成部署集群。
安装步骤:
0.关闭防火墙
执行:service iptables stop 这个指令关闭完防火墙后,如果重启,防火墙会重新建立,所以,如果想重启后防火墙还关闭,
需额外执行:chkconfig iptables off
1.配置主机名
执行:vim /etc/sysconfig/network
注意:主机名里不能有下滑线,或者特殊字符 #$,不然会找不到主机导致无法启动
这种方式更改主机名需要重启才能永久生效,因为主机名属于内核参数。
如果不想重启,可以执行:hostname hadoop01。但是这种更改是临时的,重启后会恢复原主机名。
所以可以结合使用。先修改配置文件,然后执行:hostname hadoop01 。可以达到不重启或重启都是主机名都是同一个的目的
2.配置hosts文件
执行:vim /etc/hosts
(要安装1.7以上的jdk)
3.配置免秘钥登录
在hadoop01节点执行:
执行:ssh-keygen
然后一直回车
生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下
然后把公钥发往远程机器,比如hadoop01向hadoop01发送
执行:ssh-copy-id root@hadoop01
此时,hadoop02节点就是把收到的hadoop秘钥保存在
/root/.ssh/authorized_keys 这个文件里,这个文件相当于访问白名单,凡是在此白明白存储的秘钥对应的机器,登录时都是免密码登录的。
当hadoop01再次通过ssh远程登录hadoop01时,发现不需要输入密码了。
在hadoop02节点执行上述上述步骤,让hadoop02节点连接hadoop01免密码登录
4.配置自己节点登录的免密码登录
如果是单机的伪分布式环境,节点需要登录自己节点,即hadoop01要登录hadoop01
但是此时是需要输入密码的,所以要在hadoop01节点上
执行:ssh-copy-id root@hadoop01
5.安装和配置jdk
执行: vi /etc/profile
2)在尾行添加
#set java environment
JAVA_HOME=/usr/local/src/java/jdk1.7.0_51
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME PATH CLASSPATH
保存退出
3)source /etc/profile 使更改的配置立即生效
4)java -version 查看JDK版本信息。如显示1.7.0证明成功。
6.上传和解压hadoop安装包
执行:tar -xvf hadoop……
目录说明:
bin目录:命令脚本
etc/hadoop:存放hadoop的配置文件
lib目录:hadoop运行的依赖jar包
sbin目录:启动和关闭hadoop等命令都在这里
libexec目录:存放的也是hadoop命令,但一般不常用
7.配置hadoop-env.sh 这个文件里写的是hadoop的环境变量,主要修改hadoop的java_home路径
切换到 etc/hadoop目录
执行:vim hadoop-env.sh
修改java_home路径和hadoop_conf_dir 路径
然后执行:source hadoop-env.sh 让配置立即生效
8.修改core-site.xml
在etc/hadoop目录下
执行:vim core-site.xml
(改完配置文件后,记得要在hadoop-2.7.1目录下创建一个tmp目录,mkdir tmp)
配置如下:
9.修改 hdfs-site .xml
配置如下:
10.修改 mapred-site.xml
这个文件初始时是没有的,有的是模板文件,mapred-site.xml.template
所以需要拷贝一份,并重命名为mapred-site.xml
执行:cp mapred-site.xml.template mapred-site.xml
配置如下:
11.修改yarn-site.xml
配置如下:
12.配置slaves文件
13.配置hadoop的环境变量
AVA_HOME=/home/software/jdk1.8
HADOOP_HOME=/home/software/hadoop-2.7.1
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME PATH CLASSPATH HADOOP_HOME
14.格式化namenode
(在bin目录下,执行 sh hadoop namenode -format)
执行:hadoop namenode -format
如果不好使,可以重启linux
当出现:successfully,证明格式化成功
Hadoop的启动
切换到sbin目录,执行:sh start-dfs.sh 启动hadoop相关的服务
(配置完所有的之后,可以在任意目录下,启动可以用start-dfs.sh,关闭用stop-dfs.sh)
注:如果在启动时,报错:Cannot find configuration directory: /etc/hadoop
解决办法:
export HADOOP_CONF_DIR=/home/software/hadoop-2.7.1/etc/hadoop
然后执行 source hadoop-env.sh 使配置立即生效。
执行:start-yarn.sh 启动yarn相关的服务
用户评论
今天终于开始学习 Hadoop!文章写的很不错,对 Hadoop 的介绍非常清晰易懂,我以前只是知道这是一个用于处理大数据的框架,但现在了解了它的基本概念和架构。伪分布式安装也比较简单,我顺利完成了步骤。
有16位网友表示赞同!
感觉这篇入门文章还蛮不错的,把Hadoop的基本概念解释得很清楚,没有太多复杂的专业术语,适合新手学习。我本来想自己搭建环境的,但发现伪分布式有点麻烦,还是先跟着教程看看效果吧!
有7位网友表示赞同!
安装的时候遇到的问题有点多。可能是我操作不太熟练吧?文章的步骤描述还不错,但还是需要一些额外资料来解决一些细枝末节的问题。
有18位网友表示赞同!
Hadoop 的概念我一直不是很理解,这篇文章正好解释得很清晰!原来大数据处理可以分发到不同的节点上运行,效率更高啊!我之前一直认为大数据要一台超级电脑才能处理,现在看来是有更多可能性了!
有19位网友表示赞同!
伪分布式安装确实挺方便的,虽然没有真正意义上的集群效果,但已经能够进行基本的测试了。感觉以后还得多学习一下 Hadoop 的具体应用场景和操作方法。
有11位网友表示赞同!
文章讲解得很好,把Hadoop的关键概念都提到了,例如 MapReduce 等,我之前看过一些介绍,但这里面更详细,理解更透彻了。这个伪分布式安装方式对入门确实很友好!
有12位网友表示赞同!
我对 Hadoop 很有兴趣,一直在想学习一下,终于看到了这篇文章,正好可以帮我入门了!不过我觉得文章中关于hadoop的应用场景可以再多介绍一些例子,这样能更清楚地了解它的价值。
有13位网友表示赞同!
伪分布式安装确实有些鸡肋,感觉完全没有集群的效果。而且文档中说需要修改配置文件,但修改后重启服务也没反应,可能是我操作有问题?
有10位网友表示赞同!
我觉得这篇文章比较适合想对Hadoop有个大概了解的读者,入门还不错。不过对于想要深入学习Hadoop的人来说,这篇博客还是不够全面。建议可以添加一些更专业的知识点,比如:不同类型的 Hadoop 集群部署、数据安全等等。
有16位网友表示赞同!
总感觉这篇博客只是停留在概念层面,没有提供太多实践性内容。我更想了解具体的Hadoop使用案例和操作技巧,比如如何设计一个MapReduce应用程序,如何管理Hadoop集群等
有9位网友表示赞同!
对大数据的理解一直比较肤浅,这篇博客的介绍让我对 Hadoop 有了初步认识。文章写的通俗易懂,入门学习非常方便!但关于hadoop的未来发展趋势以及面临的挑战,可以多做一些探讨。
有16位网友表示赞同!
写文章的人对Hadoop的讲解太基础了,对我来说基本都是废话!建议作者增加一些更深层的知识点,比如分布式文件系统 HDFS 的架构设计,YARN 的调度机制等等。
有15位网友表示赞同!
学习大数据相关技术是为了提升个人竞争力,Hadoop是必备的基础。这篇博客内容比较全面,把从概念到安装都涵盖了,非常容易理解!我已经迫不及待尝试搭建自己的 Hadoop 集群了!
有18位网友表示赞同!
感觉伪分布式安装的体验不够真实,想要真正感受Hadoop集群的强大性能,还需要搭建一个完整的集群环境。希望作者后续可以分享一些关于 Hadoop 集群部署和运维的经验和技巧。
有6位网友表示赞同!
这篇博客对于刚接触hadoop的人来说是非常棒的入门教程!从hadoop的基础概念到伪分布式安装,都得到了很好的解释,阅读起来也比较轻松!
有11位网友表示赞同!
文章很好地介绍了 Hadoop 的基本概念和架构,我也了解了一些它的优势。但是,我更想了解 Hadoop 与其他大数据技术的差异和关系,例如 Spark 和 Flink,有没有一些对比分析?
有10位网友表示赞同!
总的来说这是一篇不错的入门教程!让我对 Hadoop 有了一个初步的了解,伪分布式安装也很容易上手。但希望作者后续可以分享更多高级级别的内容,比如不同类型的hadoop集群部署、数据安全等等。
有10位网友表示赞同!