一、Hadoop简介
- Hadoop:一个分布式系统基础架构,适合大数据的分布式存储与计算平台。两个核心项目:HDFS、MapReduce
- HDFS:分布式文件系统,主要解决分布式的存储问题。
- MapReduce:并行计算框架,主要解决分布式的计算问题。
- Hadoop的特点:高可靠、高扩展、高性能、高容错、低成本
- Hadoop架构:
在MapReduce中一个准备提交的应用程序成为作业(job),从一个作业划分出的、运行于各计算节点的工作单位成为任务(task);
Hadoop提供的分布式文件系统(HDFS)主要负责各个节点上的数据存储,实现高吞吐率的数据读写。
Hadoop使用Master/Slave架构。
- 以HDFS角度看(一个文件会被分割成若干个默认64M的block):
主节点(只有一个): namenode。接受用户数据、维护文件系统的目录结构、管理文件与block和block与 datanode之间的关系。
从节点(若干个): datanode。存储block,为保证数据安全会有备份。
- 以MapReduce角度看:主节点(只有一个): JobTracker。接受客户提交的服务任务、将任务分配给TaskTracker执行、监控TaskTracker执行情况。
- 以HDFS角度看(一个文件会被分割成若干个默认64M的block):
从节点(有很多个); TaskTracker。执行JobTracker分配的计算任务。
二、伪分布式部署Hadoop
- 安装虚拟机(网络设置为host-only)
- 设置静态IP(使宿主机与虚拟机位于同一网段)
- 修改主机名、绑定主机名与IP
- 修改主机名:配置文件位于/etc/sysconfig/network
- 绑定主机与IP:配置文件位于/etc/hosts
- 重启
- 关闭防火墙及自动启动
- 查看防火墙状态:service iptables status
- 关闭防火墙:service iptables stop
- 查看防火墙运行级别:chkconfig | grep iptables
- 关闭防火墙自动启动:chkconfig iptables off
- 配置SSH免密码登陆
- 以rsa加密算法产生密钥:ssh-keygen -t rsa(产生的密码位于~/.shh)
- 拷贝id_rsa.pub:cp id_rsa.pub authorized_keys
- 验证(免密码登陆本机):ssh locahost
- 安装JDK
- 复制JDK到安装目录(我选择安装到/usr/local/jdk。注意与JDK环境变量,Hadoop配置中的设置保持一致)
- 对JDK安装文件添加执行权限:chmod u+x jdk…..bin
- 解压缩:./jdk…..bin
- 重命名安装目录:mv jdk…… jdk
- 添加环境变量:配置文件位于/etc/profile
- export JAVA_HOME=/usr/local/jdk
- export PATH=.:$JAVA_HOME/bin:$PATH
- 更改立即生效:source /etc/profile
- 验证:java -version
- 安装Hadoop
- 复制hadoop安装包到安装目录
- 解压hadoop安装包:tar -zxvf hadoop…..tar.gz
- 重命名安装目录:mv hadoop….. hadoop
- 添加环境变量:配置文件位于/etc/profile
- export HADOOP_HOME=/usr/local/hadoop
- export PATH=.:$HADOOP_HOME/bin:$……..(JDK环境变量)
- 修改Hadoop配置文件
- 配置文件位于:$HADOOP_HOME/config目录下
- hadoop-env.sh(第九行去掉注释,改为):export JAVA_HOME=/usr/local/jdk/
- core-site.xml(配置内容见文末)
- hdfs-site.xml(配置内容见文末)
- mapred-site.xml(配置内容见文末)
- 格式化namenode、启动Hadoop
- 格式化:hadoop namenode -format
- 启动hadoop:start-all.sh
- 验证查看JAVA进程:jps(应显示6个进程)
- 访问:http://hadoop:50070
- 访问:http://hadoop:50030
安装几点说明:
- 关闭windows下防火墙,避免网络访问的错误
- 登陆linux时以root身份登陆,避免权限问题
- 每一步设置完成后应及时验证,避免问题
- JDK,HADOOP环境变量的配置中与自己安装路径保持一致
- 配置文件内的主机名与自己的主机名保持一致
- 禁止多次格式化namenode。若已经重复格式化,清空$HADOOP_HOME/tmp文件夹
HADOOP的配置文件内容如下:
core-site.xml(注意与自己的主机名保持一致)
1 2 3 4 5 6 7 8 9 10 11 |
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop:9000</value> <description>change your own hostname</description> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration> |
hdfs-site.xml
1 2 3 4 5 6 7 8 9 10 |
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> |
mapred-site.xml(注意与自己的主机名保持一致)
1 2 3 4 5 6 7 |
<configuration> <property> <name>mapred.job.tracker</name> <value>hadoop:9001</value> <description>change your own hostname</description> </property> </configuration> |
文章摘自:http://my.oschina.net/u/1470003/blog/208651