集群环境安装与部署 Hadoop
安装 hadoop 与部署 hadoop
本文主要讲解如何在分布式集群上部署 hadoop,具体的操作如下所示。
安装 hadoop
-
第一步,在 usr 目录创建一个目录 cstor,具体的操作命令如下所示。
cd /usr sudo mkdir cstor -
第二部,进入到目录 /usr/cstor 下解压hadoop2.7.7.tar.gz文件,具体的操作命令如下所示。
cd cstor sudo tar -zxvf /media/sf_vmshare/hadoop-2.7.7.tar.gz执行上述操作后,检查以下文件是否成功解压了 hadoop-2.7.7.tar.gz 文件,查询到的信息如下所示。
leolei@leifenglin:/usr/cstor$ ls -l total 4 drwxr-xr-x 9 leolei staff 4096 Jul 19 2018 hadoop-2.7.7若文件解压成功则将解压后的文件名系应该为 hadoop,修改完成之后再次查询文件名是否修改成功,查询到的信息如下所示。
leolei@leifenglin:/usr/cstor$ sudo mv hadoop-2.7.7 hadoop leolei@leifenglin:/usr/cstor$ ls -l total 4 drwxr-xr-x 9 leolei staff 4096 Jul 19 2018 hadoopnotebook tip
- 注意,上述的命令
ls -l可以缩写为ll。 - mv 命令具有两种功能,分别是重命名和移动文件的位置。若文件在同一目录下且都不带 “/”符号,即为重命名。若 mv 的参数只要有一个带有符号“/”,则是移动文件。
- 注意,上述的命令
-
文件解压完成和改名成功后,更改 hadoop 文件的权限,修改为普通用户的权限。具体的操作命令如下所示。
sudo chown -R leolei:leolei hadoop修改完成之后查询 hadoop 文件及其子目录的权限,具体的操作命令如下所示。
leolei@leifenglin:/usr/cstor$ ls -l total 4 drwxr-xr-x 9 leolei leolei 4096 Jul 19 2018 hadoop leolei@leifenglin:/usr/cstor$ cd hadoop/ leolei@leifenglin:/usr/cstor/hadoop$ ll total 144 drwxr-xr-x 9 leolei leolei 4096 Jul 19 2018 ./ drwxr-xr-x 3 root root 4096 Oct 27 13:23 ../ drwxr-xr-x 2 leolei leolei 4096 Jul 19 2018 bin/ drwxr-xr-x 3 leolei leolei 4096 Jul 19 2018 etc/ drwxr-xr-x 2 leolei leolei 4096 Jul 19 2018 include/ drwxr-xr-x 3 leolei leolei 4096 Jul 19 2018 lib/ drwxr-xr-x 2 leolei leolei 4096 Jul 19 2018 libexec/ -rw-r--r-- 1 leolei leolei 86424 Jul 19 2018 LICENSE.txt -rw-r--r-- 1 leolei leolei 14978 Jul 19 2018 NOTICE.txt -rw-r--r-- 1 leolei leolei 1366 Jul 19 2018 README.txt drwxr-xr-x 2 leolei leolei 4096 Jul 19 2018 sbin/ drwxr-xr-x 4 leolei leolei 4096 Jul 19 2018 share/如上述的输出信息可以知道文件 hadoop 及其子目录的权限都修改为普通用户 leolei 的权限。
注意:命令
sudo chown -R leolei:leolei hadoop的参数 R 就是将整个文件及其子目录的所有文件权限都修改为普通用户。
部署HDFS
-
部署 HDFS ,在其指定文件中添加 JDK 安装目录。
首先查看 JDK 的安装目录,具体的操作命令如下所示。
leolei@leifenglin:/$ java -version openjdk version "1.8.0_362" OpenJDK Runtime Environment (build 1.8.0_362-8u372-ga~us1-0ubuntu1~18.04-b09) OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)leolei@leifenglin:/$ echo $JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64如上述的输出信息所示,可以知道 JDK 的版本为 1.8.0_362,JDK 的安装目录为 /usr/lib/jvm/java-8-openjdk-amd64。这里建议安装 Ubuntu 系统自带的 JDK。JDK 的安装方法可以参考网址https://blog.csdn.net/2301_77987130/article/details/153122819?spm=1011.2415.3001.5331进行安装。
-
编辑文件“/usr/cstor/hadoop/etc/hadoop/hadoop-env.sh”,找到如下一行:export JAVA_HOME=${JAVA_HOME},将这行内容修改为:export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64。具体信息如下所示。
... # The java implementation to use. # export JAVA_HOME=${JAVA_HOME} export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 # The jsvc implementation to use. Jsvc is required to run secure datanodes # that bind to privileged ports to provide authentication of data transfer # protocol. Jsvc is not required if SASL is configured for authentication of # data transfer protocol using non-privileged ports. ...修改完文件 hadoop-env.sh 后,保存退出。
-
指定HDFS主节点
编辑文件“/usr/cstor/hadoop/etc/hadoop/core-site.xml”,将如下内容嵌入此文件里最后两行的标签之间,配置core-site.xml文件时需要在添加一个配置,让所有节点能够访问namenode,配置如下所示:
<configuration><properties><name>hadoop.tmp.dir</name><value>/usr/cstor/hadoop/cloud</value></properties><properties><name>fs.defaultFS</name><value>hdfs://leifenglin:8020</value></properties><properties><name>dfs.namenode.rpc-bind-host</name><value>0.0.0.0</value></properties> </configuration>上述文件的配置信息配置完成之后,然后保存退出。
-
将hadoop 文件拷贝至其它集群服务器。具体的操作如下所示。
在 leifenglin 主节点上执行下列命令,将配置好的 hadoop 拷贝至slaveX。
首先创建一个当前用户下创建一个文件 machines,用于存储子节点 leifenglin1 和 leifenglin2 的节点名。先通过命令
vim machines打开文件,然后添加如下所示的信息。leifenglin1 leifenglin2然后通过以下命令将 hadoop 文件拷贝到子节点上,执行下列步骤时需要保证复制的目标目录存在才能成功复制。具体操作如下所示。
首先在子节点 leifenglin1 和 leifenglin2 上创建文件 /usr/cstor/hadoop。具体的操作如下所示。
cd /usr sudo mkdir -p cstor/hadoop cd cstor/ sudo chown -R leolei:leolei hadoop执行过上述命令后通过命令
ls -l查看文件的权限。权限修改成功之后再执行后续操作。然后开始执行以下命令开始拷贝 hadoop 文件到子节点。
leolei@leifenglin:~$ for x in `cat machines` ; do echo $x ; scp -r /usr/cstor/hadoop $x:/usr/cstor/hadoop ; done最后,分别到子节点 leifenglin1 和 leifenglin2 上检查上述创建的目录是否有完整的文件,若有,则证明 hadoop 文件拷贝成功。具体操作命令如下所示。
上一步骤的操作完成之后,发现多了一层目录 hadoop/,先将文外层文件改名为 hadoop-1,再将内层 hadoop 文件移动到 cstor/ 目录下,然后删除改名后的文件。具体的操作命令如下所示。
leolei@leifenglin1:/usr/cstor$ sudo mv hadoop hadoop-1 leolei@leifenglin1:/usr/cstor$ ls hadoop-1 leolei@leifenglin1:/usr/cstor$ sudo mv /usr/cstor/hadoop-1/hadoop/ . leolei@leifenglin1:/usr/cstor$ ls hadoop hadoop-1 leolei@leifenglin1:/usr/cstor$ cd hadoop leolei@leifenglin1:/usr/cstor/hadoop$ ls bin etc include lib libexec LICENSE.txt NOTICE.txt README.txt sbin share leolei@leifenglin1:/usr/cstor/hadoop$ cd ../hadoop-1/ leolei@leifenglin1:/usr/cstor/hadoop-1$ ls leolei@leifenglin1:/usr/cstor/hadoop-1$ cd .. leolei@leifenglin1:/usr/cstor$ ll total 16 drwxr-xr-x 4 root root 4096 Oct 27 15:02 ./ drwxr-xr-x 11 root root 4096 Oct 27 14:33 ../ drwxr-xr-x 9 leolei leolei 4096 Oct 27 14:54 hadoop/ drwxr-xr-x 2 leolei leolei 4096 Oct 27 15:02 hadoop-1/ leolei@leifenglin1:/usr/cstor$ sudo rm -rf hadoop-1/ leolei@leifenglin1:/usr/cstor$ ls hadoop子节点 leifenglin2 的操作与上述操作一致。
未完成!!!
