如何在Ubuntu 18.04&16.04 LTS上设置Hadoop
ApacheHadoop3.1与之前的稳定3.0版本相比,它有明显的改进——任何错误修复。这个版本在HDFS和MapReduce上有很多改进。本教程将在Ubuntu 18.04、16.04 LTS和LinuxMint系统上安装和配置Hadoop 3.1.2 单节点集群。本文已经用Ubuntu 18.04lts进行了测试。
步骤1–准备工作
Java是在任何系统上运行Hadoop的主要需求,因此请确保在系统上安装了Java。
步骤2–为Haddop创建用户
我们建议为Hadoop工作创建一个普通(或root)帐户。使用以下命令创建帐户。
adduser hadoop
创建帐户后,还需要将基于密钥的ssh设置为自己的帐户。为此,请执行以下命令。
su - hadoop ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys chmod 0600 ~/.ssh/authorized_keys
现在,使用Hadoop user将SSH连接到本地主机。这不应该要求输入密码,但第一次将提示将RSA添加到已知主机列表中。
ssh localhost exit
第3步-下载Hadoop源文件
在此步骤中,使用下面的命令下载Hadoop3.1源文件。我们也可以选择备用以提高下载速度。
cd ~ wget http://www-eu.apache.org/dist/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz tar xzf hadoop-3.1.2.tar.gz mv hadoop-3.1.2 hadoop
步骤4–设置Hadoop伪分布式模式
4.1。设置Hadoop环境变量
设置Hadoop使用的环境变量。编辑[~/.bashrc]文件并在文件末尾添加以下值。
export HADOOP_HOME=/home/hadoop/hadoop export HADOOP_INSTALL=$HADOOP_HOME export HADOOP_MAPRED_HOME=$HADOOP_HOME export HADOOP_COMMON_HOME=$HADOOP_HOME export HADOOP_HDFS_HOME=$HADOOP_HOME export YARN_HOME=$HADOOP_HOME export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
然后,在当前运行环境中应用更改
**source ~/.bashrc**
现在编辑 $HADOOP_HOME/etc/hadoop/hadoop-env.sh文件并设置 JAVA_HOME环境变量。根据系统上的安装更改JAVA路径。此路径可能因操作系统版本和安装源而异。因此,请确保使用正确的路径。
vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
更新以下内容:
export JAVA_HOME=/usr/lib/jvm/java-11-oracle
4.2。安装Hadoop配置文件
Hadoop有许多配置文件,需要根据Hadoop基础设施的要求进行配置。让我们从基本Hadoop单节点集群设置的配置开始。首先,转到下面的位置
cd $HADOOP_HOME/etc/hadoop
编辑core-site.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration>
编辑hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value> </property> <property> <name>dfs.data.dir</name> <value>file:///home/hadoop/hadoopdata/hdfs/datanode</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> </configuration>
4.3。格式化Namenode
现在使用以下命令格式化namenode,确保存储目录
hdfs namenode -format
输出示例
WARNING: /home/hadoop/hadoop/logs does not exist. Creating. 2018-05-02 17:52:09,678 INFO namenode.NameNode: STARTUP_MSG: /************************************************************ STARTUP_MSG: Starting NameNode STARTUP_MSG: host = theitroad/127.0.1.1 STARTUP_MSG: args = [-format] STARTUP_MSG: version = 3.1.2 ... ... ... 2018-05-02 17:52:13,717 INFO common.Storage: Storage directory /home/hadoop/hadoopdata/hdfs/namenode has been successfully formatted. 2018-05-02 17:52:13,806 INFO namenode.FSImageFormatProtobuf: Saving image file /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 using no compression 2018-05-02 17:52:14,161 INFO namenode.FSImageFormatProtobuf: Image file /home/hadoop/hadoopdata/hdfs/namenode/current/fsimage.ckpt_0000000000000000000 of size 391 bytes saved in 0 seconds . 2018-05-02 17:52:14,224 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0 2018-05-02 17:52:14,282 INFO namenode.NameNode: SHUTDOWN_MSG: /************************************************************ SHUTDOWN_MSG: Shutting down NameNode at theitroad/127.0.1.1 ************************************************************/
步骤5–启动Hadoop集群
让我们使用Hadoop提供的脚本启动Hadoop集群。只需导航到 $HADOOP_HOME/sbin 目录并逐个执行脚本。
cd $HADOOP_HOME/sbin/
现在执行 start-dfs.sh脚本。
./start-dfs.sh
再执行 start-yarn.sh脚本。
./start-yarn.sh
步骤6-在浏览器中访问Hadoop服务
Hadoop NameNode在默认端口9870上启动。
浏览器访问
http://svr1.theitroad.com:9870/
现在访问端口8042以获取有关集群和所有应用程序的信息
http://svr1.theitroad.com:8042/
访问端口9864以获取有关Hadoop节点的详细信息。
http://svr1.theitroad.com:9864/
步骤7-测试Hadoop单节点设置
7.1.使用以下命令生成所需的HDFS目录。
bin/hdfs dfs -mkdir /user bin/hdfs dfs -mkdir /user/hadoop
7.2.使用以下命令将本地文件系统/var/log/httpd中的所有文件复制到hadoop分布式文件系统
bin/hdfs dfs -put /var/log/apache2 logs
7.3.在浏览器中打开下面的URL,即可浏览Hadoop分布式文件系统。我们将在列表中看到一个apache2文件夹。单击要打开的文件夹名,我们将在其中找到所有日志文件。
http://svr1.theitroad.com:9870/explorer.html#/user/hadoop/logs/
7.4-现在将hadoop分布式文件系统的日志目录复制到本地文件系统。
bin/hdfs dfs -get logs /tmp/logs ls -l /tmp/logs/