简介
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为海量的数据提供了计算。
环境说明
角色 | 主机名 | IP | 功能 | 存储分区 |
Master | controller | 192.168.128.166 | NameNode|Secondarynamenode|JobTracker | /data |
Slave | compute | 192.168.128.165 | DataNode|TaskTracker | /data |
Hadoop部署
部署Hadoop需要Master与所有Salve主机实现无秘密访问登录,即配置免秘钥登录,相关配置见:http://www.cnblogs.com/Dev0ps/p/8259099.html
修改主机名并且加入hosts文件:
192.168.128.166 controller
192.168.128.165 compute
安装java环境:
[root@controller ~]# yum install -y java
[root@controller jvm]# vim /etc/profile
添加以下java环境
#set java environment
JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
[root@controller jvm]# source /etc/profile
[root@controller ~]# cd /usr/local/
[root@controller local]# wget http://mirrors.shuosc.org/apache/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
[root@controller local]# tar xf hadoop-2.6.5.tar.gz
[root@controller local]# cd hadoop-2.6.5/etc/hadoop/
修改hadoop-env.sh
[root@controller hadoop]# vim hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64
修改core-site.xml
[root@controller hadoop]# vim core-site.xml
<configuration>
<!-- 设置提供HDFS服务的主机名和端口号,即NameNode运行的节点 -->
<property>
<name>fs.default.name</name>
<value>hdfs://controller:9000</value>
<final>true</final>
</property>
<!-- 指定hadoop运行时产生文件的存储路径 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description>A base for other temporary directories</description>
</property>
</configuration>
修改hdfs-site.xml
[root@controller hadoop]# vim hdfs-site.xml
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/usr/local/hadoop/name</value>
<final>true</final>
</property>
<property>
<name>dfs.data.dir</name>
<value>/usr/local/hadoop/data</value>
<final>true</final>
</property>
<!-- 设置hdfs中文件保存的份数,伪分布式设为1 -->
<property>
<name>dfs.replication</name>
<value>1</value>
<final>true</final>
</property>
</configuration>
修改mapred-site.xml
[root@controller hadoop]# vim mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>192.168.128.166:9001</value>
<final>true</final>
</property>
</configuration>
配置环境变量
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export HADOOP_COMMON_LIB_NATIVE_DIR=/usr/local/hadoop/lib/native
export HADOOP_OPTS=-Djava.library.path=/usr/local/hadoop/lib
格式化hdsf
hdfs namenode –format
启动服务
[root@controller hadoop]# /usr/local/hadoop/sbin/start-all.sh
访问hadoop的管理界面:
HDFS管理界面:http://xxxx:50070
MR管理界面:http://xxxx:8088