一、Hadoop简介
Hadoop是一个由Apache基金会开发的分布式系统基础架构,主要解决海量数据的存储(HDFS)和分析(MapReduce)问题。它具有高可靠性、高扩展性、高效性、高容错性等特点,是目前大数据领域最核心的生态系统基础。
二、环境准备
在开始安装Hadoop之前,我们需要准备以下环境:
- 操作系统:Linux(推荐Ubuntu或CentOS)
- Java环境:JDK 1.8或以上版本
- SSH配置:确保可以无密码登录
- 硬件要求:
- 至少4GB内存(生产环境建议16GB以上)
- 至少20GB磁盘空间
三、安装步骤
1. 安装Java
# 更新软件包列表
sudo apt-get update# 安装OpenJDK 8
sudo apt-get install openjdk-8-jdk# 验证安装
java -version
2. 创建Hadoop用户
# 创建hadoop用户组和用户
sudo addgroup hadoop
sudo adduser --ingroup hadoop hadoop# 给hadoop用户sudo权限
sudo usermod -aG sudo hadoop
3. 配置SSH无密码登录
# 切换到hadoop用户
su - hadoop# 生成SSH密钥
ssh-keygen -t rsa -P ""# 将公钥添加到授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys# 测试SSH连接
ssh localhost
4. 下载并安装Hadoop
# 下载Hadoop(以3.3.0版本为例)
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz# 解压到/usr/local目录
sudo tar -xzvf hadoop-3.3.0.tar.gz -C /usr/local/# 更改文件夹所有权
sudo chown -R hadoop:hadoop /usr/local/hadoop-3.3.0# 创建符号链接
sudo ln -s /usr/local/hadoop-3.3.0 /usr/local/hadoop
5. 配置环境变量
编辑~/.bashrc
文件,添加以下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
使环境变量生效:
source ~/.bashrc
四、Hadoop配置
1. 配置hadoop-env.sh
编辑$HADOOP_HOME/etc/hadoop/hadoop-env.sh
:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
2. 配置core-site.xml
编辑$HADOOP_HOME/etc/hadoop/core-site.xml
:
<configuration><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop/tmp</value></property>
</configuration>
3. 配置hdfs-site.xml
编辑$HADOOP_HOME/etc/hadoop/hdfs-site.xml
:
<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:///usr/local/hadoop/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:///usr/local/hadoop/dfs/data</value></property>
</configuration>
4. 配置mapred-site.xml
编辑$HADOOP_HOME/etc/hadoop/mapred-site.xml
:
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
5. 配置yarn-site.xml
编辑$HADOOP_HOME/etc/hadoop/yarn-site.xml
:
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name><value>org.apache.hadoop.mapred.ShuffleHandler</value></property>
</configuration>
五、启动Hadoop集群
1. 格式化HDFS
hdfs namenode -format
2. 启动HDFS
start-dfs.sh
3. 启动YARN
start-yarn.sh
4. 验证服务
使用jps
命令查看运行的Java进程,应该能看到以下服务:
- NameNode
- DataNode
- ResourceManager
- NodeManager
- SecondaryNameNode
六、测试Hadoop
1. 创建HDFS目录
hdfs dfs -mkdir /input
2. 上传测试文件
hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /input
3. 运行MapReduce示例
hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar grep /input /output 'dfs[a-z.]+'
4. 查看结果
hdfs dfs -cat /output/*
七、常见问题解决
- Java环境问题:
- 确保JAVA_HOME正确配置
- 确保Java版本为1.8或以上
- SSH连接问题:
- 确保ssh服务已安装并运行
- 确保authorized_keys权限为600
- HDFS格式化问题:
- 如果多次格式化,需要删除tmp目录下的所有文件
- 端口冲突问题:
- 检查9000、50070、8088等端口是否被占用
八、总结
通过以上步骤,我们成功完成了Hadoop的单节点安装和配置。对于生产环境,还需要考虑多节点集群配置、高可用性设置、性能调优等更复杂的配置。Hadoop作为大数据生态系统的基石,掌握其安装和基本使用是进入大数据领域的重要第一步。
希望这篇指南能帮助你顺利搭建Hadoop环境,为后续的大数据开发和分析工作打下坚实基础!