hadoop 伪分布式搭建
环境
- CentOS 7
- jdk 1.8
- hadoop 3.3.6
1. 准备
- 准备环境所需包
- 上传所有压缩包到服务器
2. 安装jdk
shell
# 解压jdk到/usr/local目录下
tar -xvf jdk-8u431-linux-x64.tar.gz -C /usr/local
先不着急配置java环境变量,后面和hadoop一起配置
3. 安装hadoop
shell
# 解压hadoop到/usr/local目录下
tar -xvf hadoop-3.3.6.tar.gz -C /usr/local
4. 配置hadoop
进入目录 /usr/local/hadoop-3.3.6/sbin
,修改如下文件
-
mapred-site.xml
xml<configuration> <property> <!-- 指定mapreduce 编程模型运行在yarn上--> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
-
core-site.xml
xml<configuration> <!-- 指定hadoop运行时产生文件的存储路径--> <property> <name>hadoop.tmp.dir</name> <value>file:/usr/local/hadoop-3.3.6/tmp</value> <description>Abase for other temporary directories.</description> </property> <!--hdfs namenode的通信地址--> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9000</value> </property> <!--该用户将作为所有 Hadoop 服务的运行身份--> <property> <name>hadoop.http.staticuser.user</name> <value>root</value> </property> </configuration>
-
hdfs-site.xml
xml<configuration> <!--指定HDFS储存数据的副本数目,默认情况下为3份--> <property> <name>dfs.replication</name> <value>1</value> </property> <!--name node 存放 name table 的目录--> <property> <name>dfs.namenode.name.dir</name> <value>file:/usr/local/hadoop-3.3.6/tmp/dfs/name</value> </property> <!--DataNode 在本地磁盘存放数据块(block)的位置--> <property> <name>dfs.datanode.data.dir</name> <value>file:/usr/local/hadoop-3.3.6/tmp/dfs/data</value> </property> <!--设置监控页面的端口及地址--> <property> <name>dfs.http.address</name> <value>0.0.0.0:50070</value> </property> </configuration>
-
yarn-site.xml
xml<configuration> <!-- Site specific YARN configuration properties --> <property> <!-- 指定mapreduce 编程模型运行在yarn上 --> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
修改编辑开始和关闭脚本,进入目录/usr/local/hadoop/hadoop-3.3.6/sbin
,修改文件如下
注:所有添加内容,都是在文件最开头的 #/usr/bin/env bash 下
-
cmd
HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
-
cmd
HDFS_DATANODE_USER=root HADOOP_SECURE_DN_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
-
cmd
YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
-
cmd
YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
修改hadoop-env环境变量,进入目录/usr/local/hadoop-3.3.6/etc/hadoop
,打开 hadoop-env.sh
文件追加内容如下
cmd
export JAVA_HOME=/usr/local/jdk1.8.0_431
export HADOOP_CONF_DIR=/usr/local/hadoop-3.3.6/etc/hadoop
5. 编辑环境变量
shell
# 打开环境变量文件
vim /etc/profile
文件末尾追加内容
shell
# Java
export JAVA_HOME=/usr/local/jdk1.8.0_431
export MAVEN_HOME=/usr/local/apache-maven-3.9.0
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
# Hadoop
export HADOOP_HOME=/usr/local/hadoop-3.3.6/
export PATH=$PATH:${JAVA_HOME}/bin:${MAVEN_HOME}/bin:${HADOOP_HOME}/bin
执行命令,使其生效
shell
source /etc/profile
6. SSH免密登录设置
shell
# 本地连接本地
ssh localhost
# 退出
exit
# 进入root目录
cd ~/.ssh
# 执行命令,三次回车
ssh-keygen -t rsa
cat id_rsa.pub >> authorized_keys
7.启动
shell
cd /usr/local/hadoop/hadoop-3.3.6/etc/hadoop
# 初始化
hadoop namenode -format
# 启动hadoop
./start-all.sh
# 查看进程
jps
不出意外,结果如下
text
12720 ResourceManager
15072 Jps
14002 NameNode
14754 NodeManager
14389 SecondaryNameNode
14173 DataNode
用浏览器访问地址:http://[服务器IP]:50070,http://[服务器IP]:8088