持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情
一、官网:hadoop.apache.org/
查看官方文档: hadoop.apache.org/docs/stable…
注意到以下:
Required software for Linux include: Java™ must be installed. Recommended Java versions are described at HadoopJavaVersions.
ssh must be installed and sshd must be running to use the Hadoop scripts that manage remote Hadoop daemons if the optional start and stop scripts are to be used. Additionally, it is recommmended that pdsh also be installed for better ssh resource management.
这个告诉我们,java必须的。ssh必须的。但是ssh一般centos都是自带的。
二、hadoop部署
1.部署在用户 hadoop
给大家推荐个人文件夹配置
| 文件夹名称 | 作用 |
|---|---|
| app | 用于 框架部署 |
| data | 存放 data |
| logs | 存放app 日志文件 |
| project | 自己开发 app |
| shell | shell |
| software | 存在安装包 |
| tmp | 临时文件 |
2.java准备
1.解压
tar -zxvf ./jdk-8u212-linux-x64.tar.gz -C ~/app/
2.软连接
ln -s jdk1.8.0_212 java
软连接好处:便于版本切换
3.配置环境变量 =》 个人
vim ~/.bashrc进入个人配置文件;系统配置文件的话就是vim /etc/profile,添加以下
export JAVA_HOME=/home/xiyi/app/java
export PATH=${JAVA_HOME}/bin:$PATH
4.生效环境变量
source ~/.bashrc
或
source /etc/profile
5.执行 java-version 验证java是否安装成功
java-version
6.如果想要更改jdk版本的话,以下谨慎操作:(卸载jdk)
- 查看jdk是否存在 java -version
- 查看安装路径 which java
- 卸载jdk rm -rf jdk安装路径(慎重)
- vim命令编辑 vim /etc/profile 删除添加的jdk配置
- 检查一下是否自带jk
rpm -qa|grep java
rpm -qa|grep jdk
rpm -qa|grep gcj
3.hadoop准备
1.解压
tar -zxvf ./hadoop-3.3.4.tar.gz -C ~/app/
2.软连接
ln -s hadoop-3.3.4/ hadoop
看看hadoop里面的文件夹及其作用:
| 文件夹名称 | 作用 |
|---|---|
| bin | 命令 执行脚本 |
| etc | 配置文件 |
| include | |
| lib | |
| sbin | 启动停止脚本 |
| share | 官方提供的资料包 |
3.配置环境变量
vim ~/.bashrc进入个人配置文件;系统配置文件的话就是vim /etc/profile,添加以下
#HADOOP_HOME
export HADOOP_HOME=/home/xiyi/app/hadoop
export PATH=${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin:$PATH
记得source
source ~/.bashrc
或
source /etc/profile
4.hdfs配置
- 编辑文件
vim etc/hadoop/hadoop-env.sh以定义一些参数,如下所示
# set to the root of your Java installation
export JAVA_HOME=/usr/java/latest
配置自己本地的java目录
#JAVA_HOME=/usr/java/testing hdfs dfs -ls
JAVA_HOME=/root/software/jdk/jdk1.8.0_212
尝试以下命令:
$ bin/hadoop
这将显示 hadoop 脚本的使用文档
以下三种受支持的模式之一中启动 Hadoop 集群:
1.本地(独立)模式 --不能用
2.伪分布式模式
3.完全分布式模式 --配置HA
- 配置文件:
1.root/software/hadoop/hadoop-3.1.3/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://dave:9000</value>
</property>
</configuration>
注意:9000 namenode对外提供服务的端口
2.root/software/hadoop/hadoop-3.1.3/etc/hadoop/hdfs-site.xml:
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
ssh localhost 输入密码登录
3.如果需要配置ssh免密登录(最好配置下):
1.ssh-keygen
2.cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
3.chmod 0600 ~/.ssh/authorized_keys
4.配置yarn之前,运行下MapReduce 作业
1.格式化文件系统
hdfs namenode -format
2.启动hdfs:
start-dfs.sh
3.查看进程
ps -ef |grep namenode
或
jps
4.监控webui 【hdfs =》 namenode】
监控 namenode
http://120.46.202.54:9870/
netstat nlp |grep 9870检测 确实有在使用 ,记得阿里云配置安全组开端口
5.部署yarn
1.配置
1.etc/hadoop/mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.application.classpath</name>
<value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
</property>
2.etc/hadoop/yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_HOME,PATH,LANG,TZ,HADOOP_MAPRED_HOME</value>
</property>
2.启动yarn 服务
start-yarn.sh
3.yarn web ui:
【 云主机 最好不要开这个端口8088, 容易被挖矿】
补充: 修改yarn 端口
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>dave:9527</value>
</property>
个人踩坑记录
1.报错,因为之前有个配置文件忘搞了:
Starting namenodes on [dave]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [dave]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
-
解决方案:
vim /etc/profile 添加以下内容: export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_JOURNALNODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root source /etc/profile
2.问题:datanode进程未启动。
因为之前开过一次namenode又格式化了一下重启了。可能配置文件有残留吧。
/tmp/hadoop-root/dfs/data/current/VERSION 看DATA_NODE
#Thu Sep 08 23:36:19 CST 2022
storageID=DS-3831abf2-17f0-4c27-917d-38e5c9043ed3
clusterID=CID-985f6f85-d486-493f-9111-4ea0c30d6329
cTime=0
datanodeUuid=e48a17e3-8639-4d1a-a350-c3040b07d464
storageType=DATA_NODE
layoutVersion=-57
/tmp/hadoop-root/dfs/data/current/VERSION看NAME_NODE
#Fri Sep 16 23:44:35 CST 2022
namespaceID=160179027
clusterID=CID-0bde133b-7ecb-4a28-80bc-8b20775e01d7
cTime=1663343075499
storageType=NAME_NODE
blockpoolID=BP-857862622-172.16.140.86-1663343075499
layoutVersion=-64
保证两者clusterID一致,改一个就行
亲测好用