一、集群规划
搭建的 hadoop 集群由 3 台服务器组成,分别叫做 master,salve1 和 slave2。其中 master 作为主节点,slave1 和 slave2 作为从节点。
二、网络配置
1. 查看 3 个节点的主机名是否和规划的一致。
2. 关闭 3 个节点的防火墙并禁止开机启动。
3. 分别编辑 3 个节点的 /etc/hosts 文件,配置 IP 和域名。
三、配置 SSH 免密登录
可以去看我的另一篇文章: 配置 SSH 免密登录.
四、在 master 上安装 jdk
五、在 master 上安装 hadoop
- 上传 hadoop3.2.0 的安装包到 /opt/software 目录,并解压。
- 移动解压后的文件到 /opt/module/ 文件夹,然后把文件夹改名为hadoop
tar -zxvf hadoop-3.2.0.tar.gz -C /opt/module
mv hadoop-3.2.0 hadoop
- 在环境变量文件的最后添加以下内容:
执行 vim /etc/profile,在最下边添加一下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后刷新环境变量:
source profile
- 使用 hadoop version 验证是否安装成功。
六、配置 master 上的 hadoop
hadoop 的配置文件都在 /usr/local/hadoop/etc/hadoop 目录中
-
编辑 slaves 文件,设置集群的子节点。删除 localhost,添加 slave1 和 slave2。
hadoop3.0之后的版本没有slaves文件了,改名为workers了。所以安装hadoop3.X版本的需要编辑workers文件。
-
编辑 hadoop-env.sh 文件,修改 JAVA_HOME 为 jdk 的安装目录。
-
编辑 yarn-env.sh 文件,找到JAVA_HOME的配置,删除掉注释,修改 JAVA_HOME 为 jdk 的安装目录。
注意:hadoop3.0之后的版本不需要配置 -
编辑 core-site.xml 文件,在configuration标签中添加,完整内容如下:
<configuration>
<!-- 修改默认的文件系统,默认为本地文件系统,修改为hdfs
指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<!-- 建立一个数据文件夹
指定Hadoop运行时产生的文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop/hdfs</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
</configuration>
- 编辑 hdfs-site.xml 文件,在configuration标签中添加,完整内容如下:
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hdfs://master:50090</value>
</property>
</configuration>
- 编辑 yarn-site.xml 文件,完整内容如下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
- 重命名 mapred-site.xml.template 文件为 mapred-site.xml,并编辑。完整内容如下:
注意:hadoop3.0以后就不需要改名字了,直接在mapred-site.xml文件里添加配置信息就可以了
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
七、配置 slave
- 把 master 安装好的文件复制给 slave
使用 scp -r /opt/module/jdk/ root@slave1:/opt/module/ 命令拷贝 jdk 文件夹给 slave1。
使用 scp -r /opt/module/jdk/ root@slave2:/opt/module/ 命令拷贝 jdk 文件夹给 slave2。
使用 scp -r /opt/module/hadoop/ root@slave1:/opt/module/ 命令拷贝 hadoop 文件夹给 slave1。
使用 scp -r /opt/module/hadoop/ root@slave2:/opt/module/ 命令拷贝 hadoop 文件夹给 slave2。
使用 scp /etc/profile root@slave1:/etc/profile 命令拷贝 profile 文件给 slave1。
使用 scp /etc/profile root@slave2:/etc/profile 命令拷贝 profile 文件夹 slave2。
- 配置 slave
分别在 slave1 和 slave2 上刷新环境变量,然后验证 jdk 和 hadoop 是否安装成功。
八、格式化 hadoop
在master节点上 进入hadoop下的bin目录执行 hdfs namenode -format 格式化主节点。
如果成功会看到 successfully formatted. 提示信息,需要耐心寻找。
注意:格式化操作如果成功,绝对不能执行第二次。
如果没有说明格式化失败,需要删除 3 个节点上的 /usr/local/hadoop 文件夹,然后回到第五步重新开始操作。
九、hadoop 的启动和关闭
注意:格式化成功后我们就可以使用 hadoop 集群了。关闭电脑之前,一定先关闭启动的集群,否则可能导致集群损坏,需要重新安装。无论是启动命令还是关闭命令都只需要在 master 执行即可。
启动命令
- 使用 start-dfs.sh 启动 hdfs 功能。
- 使用 start-yarn.sh 启动 yarn 功能。
- 分别在 3 个节点执行 jps 命令查看进程。和图片保持一致说明启动成功,没有任何错误。否则关闭集群,并删除 3 个节点的 /usr/local/hadoop 文件夹。然后回到第五步重新开始操作。
关闭命令
- 使用 stop-dfs.sh 关闭 hdfs 功能。
- 使用 stop-yarn.sh 关闭 yarn 功能。
传送门:
使用root用户配置的hadoop集群启动报错:ERROR: Attempting to operate on hdfs namenode as root.
Hadoop启动警告:WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… usi.
下一篇: 安装zookeeper流程.