A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 安之啊 于 2017-11-17 17:34 编辑

Hadoop分布式文件系统搭建

Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodityhardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。
HDFS是一个高度容错性的系统,适合部署在廉价的机器上。
HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。
HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。
HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。
HDFS是Apache Hadoop Core项目的一部分。
HDFS有着高容错性(fault-tolerant)的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streamingaccess)文件系统中的数据。

以上是百度对hdfs的一个说明,简单来说。Hdfs就是一个分布式文件存储系统,容错性高,适合大数据应用,而且对硬件需求不高。

简单介绍了关于Hdfs的概念,那么我们怎么搭建这个分布式文件存储系统呢?今天主要是单机的,因为电脑太渣,虚拟机启动太多会爆炸。单机的分布式文件存储系统就叫做伪分布式了。

首先先去官网上看看,官方的安装向导:
http://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.html
这个官方的描述里面有These machines typically run a GNU/Linuxoperating system (OS)这么一句话,告诉我们需要安装在linux上,接着又来了一句HDFS is built using the Java language; 明确的告诉我们,hdfs是使用java语言的,那么我们肯定需要jdk了。
         所以废话不多说,先安装个linux(这个的过程我就写出来了,度娘上很多),linux我选用的系统是centos6.5。在安装了jdk,我使用的jdkjdk-8u144-linux-x64.tar,具体的安装过程也不一一赘述了,无非就是解压tar –zxvf,在然后就是配置jdk的环境变量
终端输入vim ~/.bash_profile,在该文件最后加入
exportJAVA_HOME=/usr/local/java/jdk1.8.0_144
exportPATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
如下图
然后在source ~/.bash_profile,就OK,然后输入java version就能看到如下图
在做完这个操作之后,我们还需要去修改ssh改成免密登录,这一步主要是为了方便hdfs文件系统之间通信的方便,不需要我们在手动输入密码.官方描述如下:
详细的配置,首先在终端输入ssh-keygen -t rsa,然后一直回车,然后终端会告诉你
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa 生成了一些文件,我们进入这个目录下面看到(注意.ssh是个隐藏文件夹)
然后我们在终端输入cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys,再次查看就可以看到如下内容
测试一下,发现已经不要输入密码了。如下图:

接下来我们就需要去搭建hdfs的环境了,先去官网上下载cdhjar包,网址如下:http://archive.cloudera.com/cdh5/cdh/5/
选择 Hadoop-2.6.0-cdh5.13.0.tar.gz进行下载,如下图

然后在linux下解压,解压之后的目录结构如下图:

官方文档上说,我们解压之后需要去etc/Hadoop/Hadoop-env.sh 修改下文件
所以我们先到这个目录下,目录如下
然后找到并编辑Hadoop-env.sh,修改java_home,如下图
接下来,需要配置一些其他的配置文件,如下图,我们出来配置这两个属性之外,还需要额外配置一个属性,下面详细配置一下

首先我们需要编辑etc/hadoop/core-site.xml 里面加上两个属性
访问的路径
<property>
        <name>fs.defaultFS</name>
        <value>hdfs://localhost:8020</value>
</property>
临时文件的目录指定
<property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/tmp</value>
</property>
如下图:下图临时文件有误,主要参照上面的代码
接下来编辑etc/hadoop/hdfs-site.xml里的属性,详细如下
<property>        <name>dfs.replication</name>        <value>1</value>    </property>
如下

以上的所有配置的命令如下

到此止呢,配置基本已配置完了,那么如何启呢,官方,我需要先去格式化一下namenode
首先到bin目hdfs namenode format ,注意只需行一次,不然会把数据格式化掉。格式化之后如下: 在在初始化之后,可能会出 解决方案参考:http://blog.csdn.net/lu_dashi/article/details/41654835 然后切到sbin目录执start-dfs.sh完成如下: 中途会询问是否要接,我直接yesok了。候我们查程可以看 另外我们可以通过访问 http://hadoop:50070 hadoop是主机名,50070是默的端口,访问结果如下 最后停止的命令是在sbin的目下的stop-dfs.sh ps:在安装的程中可能会碰到各种各各位老去百度看看,或者私聊我。 勒是!!

4 个回复

倒序浏览
666666666666
回复 使用道具 举报
666666666666666
回复 使用道具 举报
666666666666
回复 使用道具 举报
6 6 66   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马