本文共 7037 字,大约阅读时间需要 23 分钟。
[09:10:01 root@ceshi-01 ~ $]cat /etc/system-releaseCentOS Linux release 7.6.1810 (Core)[09:10:19 root@ceshi-01 ~ $]hadoop versionHadoop 3.1.2Source code repository https://github.com/apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9aCompiled by sunilg on 2019-01-29T01:39ZCompiled with protoc 2.5.0From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9This command was run using /home/hadoop-3.1.2/share/hadoop/common/hadoop-common-3.1.2.jar
HDFS 的守护进程包括:NameNode, SecondaryNameNode, and DataNodeYARN 的守护进程包括:ResourceManager, NodeManager, and WebAppProxy如果要使用 MapReduce,则 MapReduce Job History Server 也将运行在大型集群里,他们通常运行在不同的节点上
配置文件
只读默认配置文件:core-default.xml, hdfs-default.xml, yarn-default.xml and mapred-default.xml具体节点的配置文件:etc/hadoop/core-site.xml, etc/hadoop/hdfs-site.xml, etc/hadoop/yarn-site.xml and etc/hadoop/mapred-site.xml此外您可以通过编辑 etc/hadoop/hadoop-env.sh and etc/hadoop/yarn-env.sh 设定特定的值来使用
1.关闭系统防火墙和 SELinux
setenforce 0sed -i -r "/^SELINUX=/c SELINUX=disabled" /etc/selinux/configwhich systemctl && systemctl stop firewalldwhich systemctl && systemctl disable firewalldwhich systemctl && systemctl stop iptables || service iptables stopwhich systemctl && systemctl disable iptables || chkconfig iptables off
2.所有服务器设置 hosts
192.168.30.111 ceshi-01192.168.30.112 ceshi-02192.168.30.113 ceshi-03192.168.30.114 ceshi-04192.168.30.114 ceshi-05192.168.30.114 ceshi-06
3.设置互信
## 要求 Master 节点可以免密登录到 Worker 节点和登录本机## 生成秘钥ssh-keygen##ssh-copy-id ceshi-01ssh-copy-id ceshi-02ssh-copy-id ceshi-03ssh-copy-id ceshi-04ssh-copy-id ceshi-05ssh-copy-id ceshi-06
1.下载
wget http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gztar vxzf hadoop-3.1.2.tar.gz包括以下模块: Hadoop Common:支持 Hadoop 模块的常用命令 Hadoop Distributed File System (HDFS™):一种分布式文件系统,可以提供高吞吐访问 Hadoop YARN:作业调度和集群资源管理框架 Hadoop MapReduce:基于 YARN 的系统,用于并行处理大型数据集 Hadoop Ozone:Hadoop 的对象存储 Hadoop Submarine:Hadoop 机器学习引擎
2.设置 JAVA_HOME 变量
根据自己情况修改路径
## 此文件在 Hadoop 文件夹内vim etc/hadoop/hadoop-env.shexport JAVA_HOME=/usr
3.设置 HADOOP_HOME 和 HADOOP_HDFS_HOME 变量
根据自己实际情况修改路径
echo 'export HADOOP_HOME=/home/hadoop-3.1.2/' >> /root/.bash_profile echo 'PATH=$PATH:$HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /root/.bash_profilesource /root/.bash_profileecho 'export HADOOP_HDFS_HOME=/home/hadoop-3.1.2/' >> /root/.bash_profile echo 'PATH=$PATH:$HOME/bin:HADOOP_HDFS_HOME/bin:HADOOP_HDFS_HOME/sbin' >> /root/.bash_profilesource /root/.bash_profile
4.运行命令以验证
## 此命令将显示 hadoop 脚本使用说明hadoop
1.设置 Hadoop 守护进程的环境变量
JAVA_HOME 必须设置
以下两个路径可以不修改
## In most cases, you should specify the HADOOP_PID_DIR and HADOOP_LOG_DIR directories such that they can only be written to by the users that are going to run the hadoop daemons. ## Otherwise there is the potential for a symlink attack.## 在大多数情况下,您应该指定HADOOP_PID_DIR和HADOOP_LOG_DIR目录,以便它们只能由将要运行hadoop守护程序的用户写入。否则就有可能发生符号链接攻击。cp etc/hadoop/hadoop-env.sh etc/hadoop/hadoop-env.sh.bakcat <<\EOF >>etc/hadoop/hadoop-env.sh## 设置 JAVA_HOMEexport JAVA_HOME=/usr## 存储守护程序日志文件。如果日志文件不存在,则会自动创建export HADOOP_LOG_DIR=/var/log/hadoop/## 设置守护进程的进程标识文件目录export HADOOP_PID_DIR=/tmpEOF
2.设置 Hadoop 守护进程 - core-site.xml
根据自己情况修改 NameNode URI
根据自己情况修改路径
cp etc/hadoop/core-site.xml etc/hadoop/core-site.xml.bakcat <<\EOF >>etc/hadoop/core-site.xmlEOF fs.defaultFS hdfs://192.168.30.111:9000 hadoop.tmp.dir /home/Data/nn/ io.file.buffer.size 131072
3.设置 Hadoop 守护进程 - hdfs-site.xml
修改默认副本数量
修改路径
修改块大小
cp etc/hadoop/hdfs-site.xml etc/hadoop/hdfs-site.xml.bakcat <<\EOF >>etc/hadoop/hdfs-site.xmlEOF dfs.replication 1 dfs.namenode.name.dir /home/Data/nn/ dfs.blocksize 134217728 dfs.namenode.handler.count 100 dfs.datanode.data.dir /home/Data/nd/
1.启动 HDFS 集群
## 1.第一次启动 HDFS 时,必须对其进行格式化,将新的分布式文件系统格式化为 hdfs$HADOOP_HOME/bin/hdfs namenode -format## 2.在指定节点上运行用下命令启动 HDFS NameNode$HADOOP_HOME/bin/hdfs --daemon start namenode## 3.在每个指定节点上执行以下命令启动 HDFS DataNode$HADOOP_HOME/bin/hdfs --daemon start datanode## 4.如果配置了 etc/hadoop/workers 则可以使用以下启动脚本启动所有节点的 HDFS 进程$HADOOP_HOME/sbin/start-dfs.sh
2.停止 HDFS 集群
## 1.在指定节点上执行以下命令停止 NameNode$HADOOP_HOME/bin/hdfs --daemon stop namenode## 2.在指定节点上执行以下命令停止 DataNode$HADOOP_HOME/bin/hdfs --daemon stop datanode## 3.如果设置了 etc/hadoop/workers 可以使用以下命令停止所有节点 HDFS 进程$HADOOP_HOME/sbin/stop-dfs.sh
3.登录 Web 页面查看集群信息
## NameNode Web UI:http://192.168.30.111:9870## DataNode Web UI:http://192.168.30.111:9864
4.通过 Hadoop Shell 查看和操作目录
hadoop fs -ls /hadoop fs -mkdir /test
1.修改配置文件(by nn)
## 每行一个主机名,不要有空格(此文件定义所有需要启动 DataNode 实例的主机列表)## NameDone 和 SecondaryNameNode 默认为当前主机cat <<\EOF >etc/hadoop/workersceshi-01ceshi-02ceshi-03EOF## 在顶部添加以下行vim $HADOOP_HOME/sbin/start-dfs.shHDFS_NAMENODE_USER=rootHDFS_SECONDARYNAMENODE_USER=rootHDFS_DATANODE_USER=rootHDFS_DATANODE_SECURE_USER=root## 在顶部添加以下行vim $HADOOP_HOME/sbin/stop-dfs.shHDFS_NAMENODE_USER=rootHDFS_SECONDARYNAMENODE_USER=rootHDFS_DATANODE_USER=rootHDFS_DATANODE_SECURE_USER=root
2.第一次启动 HDFS 时,必须对其进行格式化,将新的分布式文件系统格式化为 hdfs
$HADOOP_HOME/bin/hdfs namenode -format
3.使用命令启动和停止集群
## 启动所有节点的 HDFS 进程$HADOOP_HOME/sbin/start-dfs.sh## 停止所有节点 HDFS 进程$HADOOP_HOME/sbin/stop-dfs.sh ## 主节点执行启动命令 [09:14:46 root@ceshi-01 ~ $]$HADOOP_HOME/sbin/start-dfs.sh Starting namenodes on [ceshi-01] ceshi-01: WARNING: /var/log/hadoop/ does not exist. Creating. Starting datanodes ceshi-02: WARNING: /var/log/hadoop/ does not exist. Creating. ceshi-03: WARNING: /var/log/hadoop/ does not exist. Creating. Starting secondary namenodes [ceshi-01] ## 主节点查看进程 [09:45:36 root@ceshi-01 ~ $]jps 25842 NameNode 26132 DataNode 26375 SecondaryNameNode 26538 Jps ## Worker 节点查看进程 [09:16:08 root@ceshi-02 ~ $]jps 12580 Jps 12312 DataNode ## 主节点执行停止命令(执行成功后所有节点 HDFS 相关进程退出) [09:17:02 root@ceshi-01 ~ $]$HADOOP_HOME/sbin/stop-dfs.sh Stopping namenodes on [ceshi-01] Stopping datanodes Stopping secondary namenodes [ceshi-01]
4.登录 Web 页面查看集群信息
## NameNode Web UI:http://192.168.30.111:9870## DataNode Web UI:http://192.168.30.111:9864
附录:
## 获取 NameNodes 列表"${HADOOP_HDFS_HOME}/bin/hdfs" getconf -namenodes##
附录:Web 接口
Daemon Web Interface NotesNameNode http://nn_host:port/ Default HTTP port is 9870.DataNode http://nd_host:port/ Default HTTP port is 9864.
转载地址:http://wcten.baihongyu.com/