共计 5522 个字符,预计需要花费 14 分钟才能阅读完成。
这里搭建的是 3 个节点的完全分布式,即 1 个 nameNode,2 个 dataNode,分别如下:
CentOS-master nameNode 192.168.11.128
CentOS-node1 dataNode 192.168.11.131
CentOS-node2 dataNode 192.168..11.132
1. 首先创建好一个 CentOS 虚拟机,将它作为主节点我这里起名为 CentOS-master,起什么都行,不固定要求
2.VMware 中打开虚拟机,输入 Java -version,检查是否有 JDK 环境,不要用系统自带的 openJDK 版本,要自己安装的版本
3. 输入 systemctl status firewalld.service,若如图,防火墙处于 running 状态,则执行第 4 和第 5 步,否则直接进入第 6 步
4. 输入 systemctl stop firewalld.service,关闭防火墙
5. 输入 systemctl disable firewalld.service,禁用防火墙
6. 输入 mkdir /usr/local/Hadoop 创建一个 hadoop 的文件夹
7. 将 hadoop 的 tar 包放到刚创建好的目录
8. 进入 hadoop 目录,输入 tar -zxvf hadoop-2.7.3.tar.gz 解压 tar 包
9. 输入 vi /etc/profile,配置环境变量
10. 加入如下内容,保存并退出
HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3/
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
11. 输入 . /etc/profile,使环境变量生效
12. 任意目录输入 hado,然后按 Tab,如果自动补全为 hadoop,则说明环境变量配的没问题,否则检查环境变量哪出错了
13. 创建 3 个之后要用到的文件夹,分别如下:
mkdir /usr/local/hadoop/tmp
mkdir -p /usr/local/hadoop/hdfs/name
mkdir /usr/local/hadoop/hdfs/data
14. 进入 hadoop 解压后的 /etc/hadoop 目录,里面存放的是 hadoop 的配置文件,接下来要修改这里面一些配置文件
15. 有 2 个.sh 文件,需要指定一下 JAVA 的目录,首先输入 vi hadoop-env.sh 修改配置文件
16. 将原有的 JAVA_HOME 注释掉,根据自己的 JDK 安装位置,精确配置 JAVA_HOME 如下,保存并退出
export JAVA_HOME=/usr/local/java/jdk1.8.0_102/
17. 输入 vi yarn-env.sh 修改配置文件
18. 加入如下内容,指定 JAVA_HOME,保存并退出
export JAVA_HOME=/usr/local/java/jdk1.8.0_102
19. 输入 vi core-site.xml 修改配置文件
20. 在 configuration 标签中,添加如下内容,保存并退出,注意这里配置的 hdfs:master:9000 是不能在浏览器访问的
<property>
<name> fs.default.name </name>
<value>hdfs://master:9000</value>
<description> 指定 HDFS 的默认名称 </description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
<description>HDFS 的 URI</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
<description> 节点上本地的 hadoop 临时文件夹 </description>
</property>
21. 输入 vi hdfs-site.xml 修改配置文件
22. 在 configuration 标签中,添加如下内容,保存并退出
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/hdfs/name</value>
<description>namenode 上存储 hdfs 名字空间元数据 </description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/hdfs/data</value>
<description>datanode 上数据块的物理存储位置 </description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description> 副本个数,默认是 3, 应小于 datanode 机器数量 </description>
</property>
23. 输入 cp mapred-site.xml.template mapred-site.xml 将 mapred-site.xml.template 文件复制到当前目录,并重命名为 mapred-site.xml
24. 输入 vi mapred-site.xml 修改配置文件
25. 在 configuration 标签中,添加如下内容,保存并退出
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description> 指定 mapreduce 使用 yarn 框架 </description>
</property>
26. 输入 vi yarn-site.xml 修改配置文件
27. 在 configuration 标签中,添加如下内容,保存并退出
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
<description>指定resourcemanager 所在的 hostname</description>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>
NodeManager 上运行的附属服务。
需配置成mapreduce_shuffle,才可运行 MapReduce 程序
</description>
</property>
28. 输入 vi slaves 修改配置文件
29. 将 localhost 删掉,加入如下内容,即 dataNode 节点的主机名
node1
node2
30. 将虚拟机关闭,再复制两份虚拟机,重命名为如下,注意这里一定要关闭虚拟机,再复制
31. 将 3 台虚拟机都打开,后两台复制的虚拟机打开时,都选择“我已复制该虚拟机”
32. 在 master 机器上,输入 vi /etc/hostname,将 localhost 改为 master,保存并退出
33. 在 node1 机器上,输入 vi /etc/hostname,将 localhost 改为 node1,保存并退出
34. 在 node2 机器上,输入 vi /etc/hostname,将 localhost 改为 node2,保存并退出
35. 在三台机器分别输入 vi /etc/hosts 修改文件,其作用是将一些常用的网址域名与其对应的 IP 地址建立一个关联,当用户在访问网址时,系统会首先自动从 Hosts 文件中寻找对应的 IP 地址
36. 三个文件中都加入如下内容,保存并退出,注意这里要根据自己实际 IP 和节点主机名进行更改,IP 和主机名中间要有一个空格
192.168.11.128 master
192.168.11.131 node1
192.168.11.132 node2
37. 在 master 机器上输入 ssh-keygen -t dsa -P ” -f ~/.ssh/id_dsa 创建一个无密码的公钥,- t 是类型的意思,dsa 是生成的密钥类型,- P 是密码,’’表示无密码,- f 后是秘钥生成后保存的位置
38. 在 master 机器上输入 cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 将公钥 id_dsa.pub 添加进 keys,这样就可以实现无密登陆 ssh
39. 在 master 机器上输入 ssh master 测试免密码登陆
如果有询问,则输入 yes,回车
40. 在 node1 主机上执行 mkdir ~/.ssh
41. 在 node2 主机上执行 mkdir ~/.ssh
42. 在 master 机器上输入 scp ~/.ssh/authorized_keys root@node1:~/.ssh/authorized_keys 将主节点的公钥信息导入 node1 节点,导入时要输入一下 node1 机器的登陆密码
43. 在 master 机器上输入 scp ~/.ssh/authorized_keys root@node2:~/.ssh/authorized_keys 将主节点的公钥信息导入 node2 节点,导入时要输入一下 node2 机器的登陆密码
44. 在三台机器上分别执行 chmod 600 ~/.ssh/authorized_keys 赋予密钥文件权限
45. 在 master 节点上分别输入 ssh node1 和 ssh node2 测试是否配置 ssh 成功
46.如果 node 节点还没有 hadoop, 则master 机器上分别输入如下命令将 hadoop 复制
scp -r /usr/local/hadoop/ root@node1:/usr/local/
scp -r /usr/local/hadoop/ root@node2:/usr/local/
47. 在 master 机器上,任意目录输入 hdfs namenode -format 格式化 namenode,第一次使用需格式化一次,之后就不用再格式化,如果改一些配置文件了,可能还需要再次格式化
48. 格式化完成
49. 在 master 机器上,进入 hadoop 的 sbin 目录,输入 ./start-all.sh 启动 hadoop
50. 输入 yes,回车
51. 输入 jps 查看当前 java 的进程,该命令是 JDK1.5 开始有的,作用是列出当前 java 进程的 PID 和 Java 主类名,nameNode 节点除了 JPS,还有 3 个进程,启动成功
52. 在 node1 机器和 node2 机器上分别输入 jps 查看进程如下,说明配置成功
53. 在浏览器访问 nameNode 节点的 8088 端口和 50070 端口可以查看 hadoop 的运行状况
54. 在 master 机器上,进入 hadoop 的 sbin 目录,输入 ./stop-all.sh 关闭 hadoop
Hadoop2.3-HA 高可用集群环境搭建 https://www.linuxidc.com/Linux/2017-03/142155.htm
Hadoop 项目之基于 CentOS7 的 Cloudera 5.10.1(CDH)的安装部署 https://www.linuxidc.com/Linux/2017-04/143095.htm
CentOS 7.4 下 Hadoop 2.7.6 安装部署 https://www.linuxidc.com/Linux/2018-08/153353.htm
Hadoop2.7.2 集群搭建详解(高可用)https://www.linuxidc.com/Linux/2017-03/142052.htm
使用 Ambari 来部署 Hadoop 集群(搭建内网 HDP 源)https://www.linuxidc.com/Linux/2017-03/142136.htm
Ubuntu 14.04 下 Hadoop 集群安装 https://www.linuxidc.com/Linux/2017-02/140783.htm
CentOS 6.7 安装 Hadoop 2.7.2 https://www.linuxidc.com/Linux/2017-08/146232.htm
Ubuntu 16.04 上构建分布式 Hadoop-2.7.3 集群 https://www.linuxidc.com/Linux/2017-07/145503.htm
CentOS 7 下 Hadoop 2.6.4 分布式集群环境搭建 https://www.linuxidc.com/Linux/2017-06/144932.htm
Hadoop2.7.3+Spark2.1.0 完全分布式集群搭建过程 https://www.linuxidc.com/Linux/2017-06/144926.htm
CentOS 7.4 下编译安装 Hadoop 2.7.6 及所需文件 https://www.linuxidc.com/Linux/2018-06/152786.htm
Ubuntu 16.04.3 下安装配置 Hadoop https://www.linuxidc.com/Linux/2018-04/151993.htm
更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13
: