Hadoop 单机环境搭建
实验环境
- 系统环境:CentOS Linux release 7.6.1810 (Core)
- JDK 版本:jdk1.8.0_291
- Hadoop 版本:hadoop-3.3.1
实验步骤
1.创建hadoop账号
为Hadoop创建一个专门的账号:
adduser hadoop
passwd hadoop
授予 hadoop 用户 root权限
chmod +w /etc/sudoers
vim /etc/sudoers
末尾添加一行:
hadoop ALL=(ALL) ALL
chmod -w /etc/sudoers
切换到Hadoop账号:
su hadoop
2.配置免密登录
生成公私钥:
ssh-keygen -t rsa
进入 ~/.ssh 目录下,将公匙写入到授权文件:
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
测试是否成功:
ssh localhost
3.安装 hadoop
下载 hadoop3.3.1 并解压
wget http://apache.claz.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
tar -zxvf hadoop-3.3.1.tar.gz
sudo mv hadoop-3.3.1 /usr/local/hadoop
配置环境变量
vim ~/.bashrc
添加如下配置:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
使配置立即生效:
source ~/.bashrc
4.创建 hadoop 文件目录
# hadoop 临时文件目录
mkdir -p /home/hadoop/tmp
# hadoop 主节点(namenode)文件目录
mkdir -p /home/hadoop/hdfs/name
# hadoop 数据节点(datanode)文件目录
mkdir -p /home/hadoop/hdfs/data
5.修改Hadoop配置
${HADOOP_HOME}/etc/hadoop/hadoop-env.sh(配置 JDK 安装路径)
export JAVA_HOME=/usr/java/jdk1.8.0_291/
${HADOOP_HOME}/etc/hadoop/core-site.xml(设置hdfs的监听端口)
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> <description>namenode的hdfs协议文件系统的通信地址</description> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/tmp</value> <description>hadoop存储临时文件的目录</description> </property> </configuration>
${HADOOP_HOME}/etc/hadoop/hdfs-site.xml(指定副本系数和临时文件存储位置)
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hdfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hdfs/data</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration>
由于搭建是单机,所以指定 dfs 的副本系数为 1
mapred-site.xml(指定 mapreduce 框架为 yarn)
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn-site.xml(配置 NodeManager 上运行的附属服务,需要配置成 mapreduce_shuffle 后才可以在 Yarn 上运行 MapReduce 程序)
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
6.启动 hadoop
进入 ${HADOOP_HOME}/bin/ 目录下,执行以下命令格式化 hadoop 文件系统:
./hdfs namenode -format
第一次启动 Hadoop 时需要进行格式化 hadoop 文件系统
启动 HDFS
./start-dfs.sh
启动 YARN,进入 ${HADOOP_HOME}/sbin/ 目录下,启动 YARN:
./start-yarn.sh
也可以选择一键启动,,进入 ${HADOOP_HOME}/sbin/ 目录下:
./start-all.sh
验证是否启动成功,执行 jps 命令查看 NodeManager 和 ResourceManager 服务是否已经启动:
jps
可以看到 NameNode、SecondaryNameNode、DataNode、NodeManager、ResourceManager 这五个服务已经启动。
检验,输入如下命令 ,若没有报错,则 hadoop 单机安装成功:
bin/hadoop fs -ls /