Apache Hadoop是一個開源框架,用于分布式存儲以及在商用硬件上運行的計算機集群上的大數(shù)據(jù)的分布式處理。 Hadoop將數(shù)據(jù)存儲在Hadoop分布式文件系統(tǒng)(HDFS)中,并使用MapReduce完成這些數(shù)據(jù)的處理。 YARN提供用于在Hadoop集群中請求和分配資源的API。
Apache Hadoop框架由以下模塊組成:
- Hadoop Common
- Hadoop Distributed File System (HDFS)
- YARN
- MapReduce
本文介紹如何在Ubuntu 18.04上安裝Hadoop 2版本。 我們將在Pseudo Distributed Mode中的單節(jié)點集群上安裝HDFS(Namenode和Datanode),YARN,MapReduce,這是在一臺機器上進行偽分布式安裝。 每個Hadoop守護進程(如hdfs、yarn、mapreduce等)都將作為單獨的Java進程運行。
在本教程中,您將學習:
- 如何為Hadoop環(huán)境添加用戶
- 如何安裝和配置Oracle JDK
- 如何配置無密碼SSH
- 如何安裝Hadoop并配置必要的相關xml文件
- 如何啟動Hadoop集群
- 如何訪問NameNode和ResourceManager Web UI
Namenode Web用戶界面。
使用的軟件要求和約定
類別 | 使用的要求,約定或軟件版本 |
---|---|
系統(tǒng) | Ubuntu 18.04 |
軟件 | Hadoop 2.8.5, Oracle JDK 1.8 |
其他 | 以root身份或通過sudo命令以特權方式訪問Linux系統(tǒng)。 |
約定 | # – 要求使用root權限直接以root用戶或使用sudo命令執(zhí)行給定的linux命令 $ – 要求給定的linux命令作為常規(guī)非特權用戶執(zhí)行 |
添加Hadoop環(huán)境的用戶
使用以下命令創(chuàng)建新用戶和組:
# add user
linuxidc@linuxidc:~$ sudo adduser hadoop
[sudo] linuxidc 的密碼:
正在添加用戶”hadoop”…
正在添加新組”hadoop” (1001)…
正在添加新用戶”hadoop” (1001) 到組”hadoop”…
創(chuàng)建主目錄”/home/hadoop”…
正在從”/etc/skel”復制文件…
輸入新的 UNIX 密碼:
重新輸入新的 UNIX 密碼:
passwd:已成功更新密碼
正在改變 hadoop 的用戶信息
請輸入新值,或直接敲回車鍵以使用默認值
全名 []: Hadoop linuxidc
房間號碼 []:
工作電話 []:
家庭電話 []:
其它 []:
這些信息是否正確? [Y/n] Y
為Hadoop添加新用戶。
安裝和配置Oracle JDK
下載Java歸檔文件并解壓縮/ opt目錄下。
# cd /opt
# tar -xzvf jdk-8u192-linux-x64.tar.gz
或者
linuxidc@linuxidc:~/下載$ sudo tar -xzvf jdk-8u192-linux-x64.tar.gz -C /opt
要將JDK 1.8 Update 192設置為默認JVM,我們將使用以下命令:
linuxidc@linuxidc:~$ sudo update-alternatives –install /usr/bin/java java /opt/jdk1.8.0_192/bin/java 100
[sudo] linuxidc 的密碼:
linuxidc@linuxidc:~$ sudo update-alternatives –install /usr/bin/javac javac /opt/jdk1.8.0_192/bin/javac 100
安裝完成后驗證java是否已成功配置,請運行以下命令:
linuxidc@linuxidc:~$ update-alternatives –display java
linuxidc@linuxidc:~$ update-alternatives –display javac
配置無密碼SSH
使用以下命令安裝Open SSH Server并打開SSH Client:
linuxidc@linuxidc:~$ sudo apt-get install openssh-server openssh-client
使用以下命令生成公鑰和私鑰對。 終端將提示輸入文件名。 按ENTER鍵繼續(xù)。 在該復制之后,公鑰從id_rsa.pub到authorized_keys。
linuxidc@linuxidc:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hadoop/.ssh/id_rsa):
Created directory ‘/home/linuxidc/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/linuxidc/.ssh/id_rsa.
Your public key has been saved in /home/linuxidc/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:oWz3NsiiLRMdJMg7KLgQSNYQdDvXcPEszzOrWsBI3mI linuxidc@linuxidc
The key’s randomart image is:
+—[RSA 2048]—-+
|+B+o . o. |
|+ +.o = o |
|.o = + o.o |
|= = *…+. |
|o. E =+.S= |
|. . o.oo o+ |
| …o.+ |
| oo…. . |
| .+o. |
+—-[SHA256]—–+
linuxidc@linuxidc:~$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
使用以下命令驗證無密碼ssh配置:
linuxidc@linuxidc:~$ ssh localhost
安裝Hadoop并配置相關的xml文件
從Apache官方網站下載并解壓縮Hadoop 2.8.5。
linuxidc@linuxidc:~$ tar -xzvf hadoop-2.8.5.tar.gz
設置環(huán)境變量
通過設置以下Hadoop環(huán)境變量,為Hadoop用戶編輯bashrc:
nano ~/.bashrc
export HADOOP_HOME=/home/linuxidc/hadoop-2.8.5
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
export HADOOP_OPTS=”-Djava.library.path=$HADOOP_HOME/lib/native”
在當前登錄會話中獲取.bashrc。
$ source ~/.bashrc
編輯Hadoop安裝目錄中/etc/hadoop中的hadoop-env.sh文件,并進行以下更改并檢查是否要更改任何其他配置。
nano /etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_192
export HADOOP_CONF_DIR=${HADOOP_CONF_DIR:-“/home/linuxidc/hadoop-2.8.5/etc/hadoop”}
更改core-site.xml文件中的配置
使用vim編輯core-site.xml,或者您可以使用任何編輯器。 該文件位于hadoop主目錄下的/ etc / hadoop下,并添加以下條目。
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadooptmpdata</value>
</property>
</configuration>
另外,在hadoop主文件夾下創(chuàng)建目錄。
$ mkdir hadooptmpdata
hdfs-site.xml文件中的配置更改
編輯位于同一位置的hdfs-site.xml,即hadoop安裝目錄中的/ etc / hadoop,并在hadoop用戶主目錄下創(chuàng)建Namenode / Datanode目錄。
$ mkdir -p hdfs/namenode
$ mkdir -p hdfs/datanode
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hdfs/namenode</value>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hdfs/datanode</value>
</property>
</configuration>
配置更改mapred-site.xml文件
使用cp命令從mapred-site.xml.template復制mapred-site.xml,然后使用以下更改編輯位于hadoop instillation目錄下的/etc/hadoop中的mapred-site.xml。
$ cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
在yarn-site.xml配置文件中更改
使用以下條目編輯yarn-site.xml。
<configuration>
<property>
<name>mapreduceyarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
啟動Hadoop集群
首次使用之前格式化namenode。 由于HDFS用戶運行以下命令來格式化Namenode。
$ hdfs namenode -format
格式化Namenode后,使用start-dfs.sh腳本啟動HDFS。
要啟動YARN服務,您需要執(zhí)行紗線啟動腳本,即start-yarn.sh
要驗證所有Hadoop服務/守護程序是否已成功啟動,您可以使用jps命令。
/opt/jdk1.8.0_192/bin/jps
20035 SecondaryNameNode
19782 DataNode
21671 Jps
20343 NodeManager
19625 NameNode
20187 ResourceManager
現(xiàn)在我們可以在命令下檢查您可以使用的當前Hadoop版本:
$ hadoop version
或者
$ hdfs version
HDFS命令行界面
要訪問HDFS并在DFS之上創(chuàng)建一些目錄,您可以使用HDFS CLI。
$ hdfs dfs -mkdir /test
$ hdfs dfs -mkdir /hadooponubuntu
$ hdfs dfs -ls /
從瀏覽器訪問Namenode和YARN
您可以通過任何瀏覽器(如Google Chrome / Mozilla Firefox)訪問NameNode的Web UI和YARN Resource Manager。
Namenode Web UI – http://<hadoop cluster hostname/IP address>:50070
YARN資源管理器(RM)Web界面將顯示當前Hadoop集群上的所有正在運行的作業(yè)。
資源管理器Web UI- http://<hadoop cluster hostname/IP address>:8088
總結
世界正在改變目前的運作方式,大數(shù)據(jù)在這一階段發(fā)揮著重要作用。 Hadoop是一個框架,可以在處理大量數(shù)據(jù)時簡化生活。 所有方面都有改進。 未來是令人興奮的。