安装JDK
Hadoop是一个基于Java编程语言开发的分布式计算框架,而JDK(Java Development Kit)是Java开发的核心工具包,包含了Java编译器、运行时环境和各种Java开发工具。
Hadoop需要依赖JDK环境的主要原因如下:
(1)Java编写:Hadoop是用Java编写的,因此在运行Hadoop的各个组件时,需要Java编译器将Java源代码编译成可执行的字节码文件。而JDK提供了Java编译器(javac)以及其他构建工具,用于将Java代码编译成可执行的字节码。
(2)平台独立性:一个重要的优势是Java的平台独立性,即可以在不同操作系统上运行相同的Java程序。JDK提供了Java虚拟机(JVM),它可以在不同操作系统上解释和执行Java字节码,从而实现了Hadoop在多个平台上的运行。
(3)Hadoop API与Java API交互:Hadoop提供了Java API用于开发基于Hadoop的应用程序。这些API是用Java编写的,因此在应用程序开发中使用Hadoop API时,需要依赖JDK环境。
(4)生态系统工具支持:除了Hadoop本身,Hadoop生态系统中的其他工具和库也通常使用Java编写。这些工具和库可能与Hadoop进行交互或依赖于Hadoop的核心功能,因此需要JDK环境的支持。
执行以下命令,下载JDK1.8安装包。
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
执行以下命令,解压下载的JDK1.8安装包。
tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz
执行以下命令,移动并重命名JDK包。
mv java-se-8u41-ri/ /usr/java8
执行以下命令,配置Java环境变量。
echo 'export JAVA_HOME=/usr/java8' >> /etc/profile
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/profile
source /etc/profile
执行以下命令,查看Java是否成功安装。
java -version
安装Hadoop
执行以下命令,下载Hadoop安装包。本示例安装hadoop-3.3.0版本。
wget --no-check-certificate https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/hadoop-3.3.0.tar.gz
执行以下命令,解压Hadoop安装包至/opt/hadoop。
tar -zxvf hadoop-3.3.0.tar.gz -C /opt/
mv /opt/hadoop-3.3.0 /opt/hadoop
执行以下命令,配置Hadoop环境变量。
echo 'export HADOOP_HOME=/opt/hadoop/' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/bin' >> /etc/profile
echo 'export PATH=$PATH:$HADOOP_HOME/sbin' >> /etc/profile
source /etc/profile
执行以下命令,修改配置文件yarn-env.sh和hadoop-env.sh。
echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/yarn-env.sh
echo "export JAVA_HOME=/usr/java8" >> /opt/hadoop/etc/hadoop/hadoop-env.sh
执行以下命令,测试Hadoop是否安装成功。
hadoop version
配置Hadoop
修改Hadoop配置文件 core-site.xml。执行以下命令开始进入编辑页面。
vim /opt/hadoop/etc/hadoop/core-site.xml
在 节点内插入如下内容。
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop/tmp</value>
<description>location to store temporary files</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
修改Hadoop配置文件 hdfs-site.xml。执行以下命令开始进入编辑页面。
vim /opt/hadoop/etc/hadoop/hdfs-site.xml
在 节点内插入如下内容。
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/tmp/dfs/data</value>
</property>
修改start-dfs.sh和stop-dfs.sh文件。
在/opt/hadoop/sbin目录下找到start-dfs.sh和stop-dfs.sh两个文件。
在文件顶部添加以下内容:
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
修改start-yarn.sh和stop-yarn.sh文件。
在/opt/hadoop/sbin目录下找到start-yarn.sh和stop-yarn.sh两个文件
在文件顶部添加以下内容:
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
配置SSH免密登录
执行以下命令,创建公钥和私钥。点击回车键
ssh-keygen -t rsa
执行以下命令,将公钥添加到authorized_keys文件中。
cd .ssh
cat id_rsa.pub >> authorized_keys
启动Hadoop
执行以下命令,初始化namenode 。
hdfs namenode -format
依次执行以下命令,启动Hadoop。
start-dfs.sh
start-yarn.sh
执行jps命令查看已启动的进程,若显示以下进程,表明Hadoop启动成功。
打开浏览器访问IP:8088 和 IP:9870查看Hadoop的Web页面
测试mapreduce
在hdfs根目录下建一个目录test
hadoop fs -mkdir /test
hadoop fs -ls /
把测试文件README.txt从本地上传到hdfs的test目录下。
cd /opt/hadoop
hadoop fs -put README.txt /test
hadoop fs -ls /test
运行示例程序wordcount,计算结果存入/out目录。
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.0.jar wordcount /test /out
在/out目录下查看结果。
hadoop fs -ls /out