MacOS部署單機版Hadoop
hadoop是一種分佈式框架,一般部署在計算機集羣(cluster)上。在沒有集羣的情況下,爲了學習和調試hadoop程序,可以在本機上部署一個單機版的hadoop框架。
hadoop下載鏈接:https://archive.apache.org/dist/hadoop/common/hadoop-3.2.0/hadoop-3.2.0.tar.gz
版本爲3.2.0
是一個.tar.gz的壓縮文件,首先,將該文件解壓縮到指定的文件夾,如這裏指定將其放在opt文件夾下:
tar -zxvf hadoop-3.2.0.tar.gz -C /opt/
這時就可以看到
baidudeMacBook-Pro:~ jiazhuang01$ ls /opt
DuGuanJiaSvc MacAptSvc hadoop-3.2.0
已經解壓到了該文件夾裏
第一步仍然是要將hadoop添加到路徑中,即將其創建變量,並且寫入PATH中:
vim /etc/profile
將如下語句添加到現有的內容後面:
export HADOOP_HOME=/opt/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin
保存好,並且source一下讓其生效:
source /etc/profile
這時看一下HADOOP_HOME,如下:
baidudeMacBook-Pro:hadoop-3.2.0 jiazhuang01$ echo $HADOOP_HOME
/opt/hadoop-3.2.0
可以看到,環境變量已經配好。下面需要改一下hadoop配置文件xml中的一些內容。
然後,進入hadoop-3.2.0文件夾,可以看到在 etc/hadoop路徑下有很多xml文件。需要對其中的幾個進行修改:分別是:
Core-site.xml
Yarn-site.xml
Mapred-site.xml
Hdfs-site.xml
修改後的內容如下(這裏參考了 http://www.hihubs.com/article/341 中的方法):
vim $HADOOP_CONF_DIR/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost/</value>
</property>
</configuration>
vim $HADOOP_CONF_DIR/hdfs-site.xml
<configuration>
<property>
<name> dfs.replication </name>
<value> 1 </value>
</property>
<configuration>
vim $HADOOP_CONF_DIR/mapred-site.xml
<configuration>
<property>
<name> mapreduce.framework.name </name>
<value> yarn </value>
</property>
<property>
<name> mapreduce.application.classpath </name>
<value> $HADOOP_HOME/share/hadoop/mapreduce/\*:$HADOOP_HOME/share/hadoop/mapreduce/lib/\* </value>
</property>
<configuration>
vim $HADOOP_CONF_DIR/yarn-site.xml
<configuration>
<property>
<name> yarn.nodemanager.aux-services </name>
<value> mapreduce_shuffle </value>
</property>
<property>
<name> yarn.nodemanager.env-whitelist </name>
<value> HADOOP_HOME,JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME </value>
</property>
<configuration>
修改好後,配置ssh免密登錄,具體方法可以參考:
https://dongkelun.com/2018/04/05/sshConf/
操作如下:
ssh-keygen -t rsa
用RSA算法加密,得到結果如下:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/jiazhuang01/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/jiazhuang01/.ssh/id_rsa.
Your public key has been saved in /Users/jiazhuang01/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:YxUsVinjo54B86DZ9+bwuz0TFzT9zV8v0rZMaGqFfn4 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| oo. . |
| = o.o . |
| o +.. . o.|
| + o. . =|
| + = .S. . + +|
| o . =. .o * = o|
| o.+ . * = o |
| ooo.* . E |
| o=+.=.. |
+----[SHA256]-----+
然後將public key導入到authorized_keys中:
baidudeMacBook-Pro:hadoop-3.2.0 jiazhuang01$ cd /Users/jiazhuang01/.ssh/
baidudeMacBook-Pro:.ssh jiazhuang01$ cat id_rsa.pub>>authorized_keys
完成後可以ssh一下localhost,看看是否可以:
baidudeMacBook-Pro:hadoop-3.2.0 jiazhuang01$ ssh localhost
Last login: Fri Jul 19 18:04:02 2019
可以了~
第一次要格式化一下:
hadoop namenode -format
下面,進入Hadoop的home目錄下,找到sbin子目錄的start-dfs.sh文件,運行:
sbin/start-dfs.sh
得到結果:
Starting namenodes on [localhost]
Starting datanodes
Starting secondary namenodes [baidudeMacBook-Pro.local]
2019-07-19 16:54:20,914 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
可以用jps(java processing status,查看JAVA進程)命令看一下結果
55952 ResourceManager
61137 Jps
60642 NameNode
11013
60742 DataNode
60879 SecondaryNameNode
可以看到建立了NameNode、DataNode以及SecondaryNameNode。
到此本機架設Hadoop就完成啦!
2019-07-19 19:06:48