本帖最后由 安之啊 于 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,我使用的jdk是jdk-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,再次查看就可以看到如下内容 测试一下,发现已经不要输入密码了。如下图:
选择 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启动完成如下:
中途会询问是否要链接,我们直接yes回车就ok了。这个时候我们查看进程可以看见
另外我们可以通过访问 http://hadoop:50070 这个hadoop是主机名,50070是默认的端口,访问结果如下
最后停止的命令是在sbin的目录下的stop-dfs.sh ps:在安装的过程中可能会碰到各种各样的错,请各位老铁去百度看看,或者私聊我。 勒是雾都!!
|