常见的Hadoop部署模式分为单机模式和集群模式,也称为伪分布式模式和分布式模式。 单机模式(伪分布式)模式是在一个节点上部署所有的Hadoop服务。在使用上,单机模式(伪分布式)模式跟集群模式(分布式模式)是一样的。
作为入门测试环境搭建,我们先尝试hadoop单机版部署。
安装JDK
JDK下载地址:官方下载地址
- 将下载好的jdk压缩包传到服务器上:
scp jdk-8u211-linux-x64.tar.gz devops@192.168.1.106:/home/devops/
- 解压jdk压缩包,移动到安排目录即可
tar zxvf jdk-8u211-linux-x64.tar.gzsudo cp -r jdk1.8.0_211 /usr/local/jdk
- 设置环境变量
sudo vim /etc/profileexport JAVA_HOME=/usr/local/jdkexport JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATH
- 测试 java -version
gitlib@devops:~$ java -versionjava version "1.8.0_211"Java(TM) SE Runtime Environment (build 1.8.0_211-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)
创建Hadoop账号
避免采用root账号操作hadoop,引起安全问题。
输入命令:
sudo useradd -r hadoopsudo usermod -G hadoop hadoop
查看hadoop账户:
gitlib@devops:~$ id hadoopuid=993(hadoop) gid=993(hadoop) groups=993(hadoop)
可以看到hadoop账号已经创建,并且加到hadoop组。
创建hadoop文件目录
一共创建4个文件目录:
- hadoop临时文件目录
mkdir -p /home/hadoop/tmp
- hadoop主节点(namenode)文件目录
mkdir -p /home/hadoop/hdfs/name
- hadoop数据节点(datanode)文件目录
mkdir -p /home/hadoop/hdfs/data
- hadoop日志文件目录
mkdir -p /home/hadoop/log
- 设置hadoop文件目录所有者
sudo chown -R hadoop /home/hadoop
下载hadoop
hadoop下载地址:官方下载地址
最新版为3.1.2版:
wget https://www.apache.org/dyn/closer.cgi/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
下载完成之后,解压安装包即可使用
tar zxvf hadoop-3.1.2.tar.gzsudo cp -ra hadoop-3.1.2 /usr/local/hadoop
将安装目录所有者修改为hadoop:
sudo chown -R hadoop /usr/local/hadoop
配置hadoop
hadoop的配置文件都在 etc/hadoop 目录下。
配置文件有很多,最基本要修改3个文件:hadoop-env.sh ,core-site.xml,hdfs-site.xml。
hadoop-env.sh:
修改JAVA_HOME环境变量为JDK的安装路径。
# Technically, the only required environment variable is JAVA_HOME.export JAVA_HOME=/usr/local/jdk/
core-site.xml:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://localhost:9001</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/tmp</value> </property></configuration>
设置hdfs的监听端口(一般配置为9000,我改为了9001,因为和php-fpm的默认端口冲突)和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>
设置hdfs的namenode、datanode数据存放路径以及数据块复制备份数量,默认是3,但是因为我们是单机部署,修改为1。
设置SSH免密访问本地
需要用前面创建的hadoop用户通过ssh免密访问本地,先切换到hadoop用户目录下,执行以下命令:
zhoufei@devops:~$ su hadoophadoop@devops:~$ cd ~hadoop@devops:~$ cd .ssh/# 生成密钥,全部回车,采用默认值hadoop@devops:~/.ssh$ ssh-keygen -t rsa# 将公钥拷贝到authorized_keys中hadoop@devops:~/.ssh$ cat id_dsa.pub > authorized_keys
初始化
bin/hdfs namenode -format
启动hadoop
hadoop提供了一键启动所有组件的脚本,输入命令:
/usr/local/hadoop/sbin/start-all.sh
输入jps:
hadoop@devops:~$ jps17761 NameNode17889 DataNode18083 SecondaryNameNode18532 NodeManager22474 Jps18399 ResourceManager
可以看到namenode、secondarynamenode、datanode、nodemanager、resourcemanager这三个服务已经启动。
输入命令 bin/hadoop fs -ls /,没有报错,则hadoop单机版安装成功。
(图片来源网络侵删)
发表评论
2024-08-26 10:14:38 · 来自139.202.52.245回复
2024-09-13 00:38:21 · 来自121.76.80.96回复
2024-09-13 00:45:38 · 来自123.233.131.140回复
2024-09-13 00:53:51 · 来自222.76.128.250回复
2024-09-13 01:01:47 · 来自139.204.195.5回复
2024-09-13 01:10:03 · 来自171.14.164.235回复
2024-09-13 01:18:30 · 来自36.62.241.100回复
2024-09-13 01:26:55 · 来自222.51.68.63回复
2024-09-13 01:34:52 · 来自106.80.233.201回复