### Hadoop安装与配置知识点详解
#### 一、Hadoop简介
Hadoop是一个开源软件框架,主要用于处理大规模数据集(GB至PB级)的分布式计算环境。它通过使用简单的编程模型来实现高吞吐量的数据处理任务。Hadoop的核心组成部分包括Hadoop分布式文件系统(HDFS)和MapReduce计算框架。
#### 二、安装与配置Hadoop的先决条件
##### 支持平台
- **GNU/Linux**:是Hadoop的主要开发和运行平台,经过大量测试,证明其稳定性。
- **Win32**:虽然支持作为开发平台,但并未经过充分测试,因此不适合生产环境使用。
##### 所需软件
- **Java**:必须安装Java 1.5.x及以上版本,建议使用Sun公司的官方版本。
- **SSH**:用于无密码登录管理远程Hadoop守护进程,确保`sshd`服务一直运行。
- **Cygwin**(仅Windows平台):提供必要的shell支持。
#### 三、安装Hadoop所需的额外软件
对于不同的操作系统,安装所需的软件也有所不同:
- **Ubuntu Linux**:
- SSH
- rsync
- **Windows**(通过Cygwin):
- OpenSSH (Net 类)
#### 四、下载与准备
- 下载最新的Hadoop稳定版,通常可以从Apache官网或者镜像站点获取。
- 解压后编辑`conf/hadoop-env.sh`文件,设置`JAVA_HOME`环境变量为Java安装路径。
#### 五、Hadoop集群运行模式
Hadoop支持三种运行模式,每种模式都有不同的应用场景:
##### 单机模式
- 默认配置即为单机模式,所有进程都在同一台机器上运行。
- 适用于开发调试。
- 示例操作:
- 创建输入文件夹`input`,将配置文件复制到该文件夹中。
- 运行`grep`示例程序查找指定模式的文本。
- 查看输出结果。
##### 伪分布式模式
- 在单个节点上模拟分布式的环境。
- 每个Hadoop守护进程作为单独的Java进程运行。
- 配置方法:
- 编辑`conf/hadoop-site.xml`文件,设置`fs.default.name`、`mapred.job.tracker`以及`dfs.replication`属性。
- 设置免密码SSH登录(如果需要)。
- 启动Hadoop守护进程。
##### 免密码SSH设置
- 检查是否能够无密码SSH登录到本地主机。
- 如果不行,生成密钥对并添加公钥到授权文件中。
- 命令示例:
- `ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa`
- `cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys`
#### 六、完全分布式模式
- 实现真正的分布式部署,涉及多台物理服务器。
- 需要进行更复杂的配置和网络设置。
- 配置步骤与伪分布式模式类似,但需要考虑更多的网络和安全因素。
#### 七、启动Hadoop集群
- 使用`bin/start-all.sh`脚本来启动Hadoop守护进程。
- 可以通过访问NameNode和JobTracker的Web界面监控集群状态。
- Web界面地址:
- NameNode: http://localhost:50070/
- JobTracker: http://localhost:50030/
#### 八、文件操作
- 将文件从本地文件系统复制到HDFS中:
- `bin/hadoop fs -put <local_file> <hdfs_directory>`
- 查看HDFS中的文件列表:
- `bin/hadoop fs -ls <hdfs_directory>`
- 从HDFS中读取文件:
- `bin/hadoop fs -cat <hdfs_file>`
#### 总结
本文档提供了Hadoop安装与配置的基本指南,涵盖了从环境搭建到不同运行模式的启动流程。对于初学者来说,这是一个很好的起点,通过实践可以加深对Hadoop的理解,并为后续更复杂的应用场景打下基础。