一、Hadoop简介

Hadoop是一个由Apache基金会开发的分布式系统基础架构,主要解决海量数据的存储(HDFS)和分析(MapReduce)问题。它具有高可靠性、高扩展性、高效性、高容错性等特点,是目前大数据领域最核心的生态系统基础。

二、环境准备

在开始安装Hadoop之前,我们需要准备以下环境:

  1. 操作系统:Linux(推荐Ubuntu或CentOS)
  2. Java环境:JDK 1.8或以上版本
  3. SSH配置:确保可以无密码登录
  4. 硬件要求
  • 至少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/*

七、常见问题解决

  1. Java环境问题
  • 确保JAVA_HOME正确配置
  • 确保Java版本为1.8或以上
  1. SSH连接问题
  • 确保ssh服务已安装并运行
  • 确保authorized_keys权限为600
  1. HDFS格式化问题
  • 如果多次格式化,需要删除tmp目录下的所有文件
  1. 端口冲突问题
  • 检查9000、50070、8088等端口是否被占用

八、总结

通过以上步骤,我们成功完成了Hadoop的单节点安装和配置。对于生产环境,还需要考虑多节点集群配置、高可用性设置、性能调优等更复杂的配置。Hadoop作为大数据生态系统的基石,掌握其安装和基本使用是进入大数据领域的重要第一步。

希望这篇指南能帮助你顺利搭建Hadoop环境,为后续的大数据开发和分析工作打下坚实基础!