详解搭建Ubuntu版Hadoop集群 Hadoop是一个分布式计算框架,能够快速处理海量数据。本文将介绍如何在Ubuntu上搭建Hadoop集群。 环境准备 在开始搭建之前,我们需要准备以下环境: 3台Ubunt
Hadoop是一个分布式计算框架,能够快速处理海量数据。本文将介绍如何在Ubuntu上搭建Hadoop集群。
环境准备在开始搭建之前,我们需要准备以下环境:
- 3台Ubuntu Server,分别作为Master和两个Slave
- JDK 1.8
- Hadoop 3.3.1
Hadoop运行需要JDK的支持。我们可以通过以下命令安装JDK 1.8:
sudo apt-get update
sudo apt-get install openjdk-8-jdk
安装Hadoop
- 下载Hadoop
我们到Hadoop官网下载Hadoop 3.3.1
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
- 解压Hadoop
tar -zxvf hadoop-3.3.1.tar.gz
- 配置Hadoop环境变量
sudo nano /etc/profile
在文件结尾处添加:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
- 配置Hadoop
进入Hadoop目录并编辑配置文件:
cd hadoop-3.3.1/etc/hadoop/
sudo nano hadoop-env.sh
找到以下行,将JAVA_HOME设置为已经安装的JDK路径:
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
打开core-site.xml配置文件并添加以下内容:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
</configuration>
打开hdfs-site.xml并添加以下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/nameNode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/dataNode</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
</configuration>
打开mapred-site.xml并添加以下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
打开yarn-site.xml并添加以下内容:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
- 将Hadoop安装到Slave机器上
将Hadoop解压到Slave节点上,将master节点中的Hadoop配置文件拷贝到Slave节点上。
- 启动Hadoop
在Master节点上启动Hadoop:
start-all.sh
检查集群是否正常运行:
jps
如果输出以下信息,则表示Hadoop集群正常运行:
16209 NameNode
16354 ResourceManager
16420 SecondaryNameNode
示例1:上传文件至Hadoop集群
我们可以使用Hadoop自带的命令行工具hdfs将一个本地文件上传到Hadoop集群中。
- 在Master节点上创建输入文件夹:
hadoop fs -mkdir input
- 将本地文件上传到Hadoop集群:
hadoop fs -put /home/user/input/sample.txt input
- 查看上传的文件内容:
hadoop fs -cat input/sample.txt
输出以下内容,则表示上传成功:
Hello Hadoop!
示例2:运行Hadoop示例
Hadoop自带的wordcount示例可以帮助我们快速了解Hadoop集群的运作方式。
- 准备输入文件
在本地创建输入文件sample.txt,内容如下:
Hello Hadoop!
Hello MapReduce!
- 上传输入文件
与示例1相同,上传文件至Hadoop集群。
- 运行wordcount示例
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar wordcount input/ output/
示例会自动运行MapReduce任务并将输出文件保存至output文件夹。
- 查看输出文件
hadoop fs -cat output/part-r-00000
输出以下内容,则表示示例运行成功:
Hadoop! 1
Hello 2
MapReduce! 1