在Linux上使用Hadoop进行大数据分析,可以按照以下步骤进行:
Hadoop是用Java编写的,因此首先需要安装Java。
sudo apt update
sudo apt install openjdk-8-jdk
验证安装:
java -version
从Apache Hadoop官方网站下载最新版本的Hadoop,并解压到指定目录。
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
编辑/etc/profile
或~/.bashrc
文件,添加以下内容:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
source /etc/profile
编辑$HADOOP_HOME/etc/hadoop/core-site.xml
文件,添加以下内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
编辑$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>/usr/local/hadoop-3.3.4/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop-3.3.4/data/datanode</value>
</property>
</configuration>
编辑$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_HOME/etc/hadoop/mapred-site.xml
文件,添加以下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在第一次启动Hadoop之前,需要对HDFS进行格式化。
hdfs namenode -format
start-dfs.sh
start-yarn.sh
访问Hadoop Web界面:
http://localhost:50070
http://localhost:8088
编写一个简单的MapReduce程序,例如WordCount,然后运行它。
创建一个Java项目,编写MapReduce代码。
jar cf wordcount.jar WordCount.java
hdfs dfs -put wordcount.jar /user/hadoop/wordcount.jar
hdfs dfs -mkdir input
hdfs dfs -put /path/to/local/input.txt input/
hadoop jar /user/hadoop/wordcount.jar WordCount input output
hdfs dfs -cat output/part-r-00000
通过以上步骤,你可以在Linux上成功安装和配置Hadoop,并运行一个简单的MapReduce作业进行大数据分析。