centos9镜像 地址:https://centos.org/download/
jdk1.8.0* 地址:https://www.oracle.com/java/technologies/downloads/
hadoop-3.4.3 地址:https://hadoop.apache.org/
1.1 Centos9安装
Centos9安装,在刚进入系统时按上下键选择第一个然后按tab输入net.ifnames=0 biosdevname=0敲回车,磁盘分区可自动也可自己分区,软件选择(server with gui):Legacy Unix ,Developmet Tools,Graphica Adimnistration Toos,Rpm Developmet Tools.
1.2 Hadoop安装
去hadoop官网下载
(https://hadoop.apache.org/,进入官网选择download,页面最上边有3.4.3,选择source下载)
打开centos9的终端(su+密码可以进入root),创建目录mkdir /root/hadoop/server(这里不一定是/root/Hadoop/server,可以再任何目录下创建)然后将hadoop包解压在/root/Hadoop/server(进入目录cd /root/Hadoop/server,后缀为gz的包用tar -zxvf +包名,为rpm的包用 rpm -ivh+包名,包名可以通过左上角活动,文件拖进终端),ll查看当前文件,发现有hadoop-3.4.3的文件,可以用cp 或者mv 命令进行修改,cp -r Hadoop-3.4.3 Hadoop,ll查看当前文件,文件有hadoop-3.4.3和hadoop(此时怕进错的同学可以rm -rf Hadoop-3.4.3将此文件移除,我是为了防止出错和方便记名所以复制的文件,可以直接mv或者不做任何改动文件名就是hadoop-3.4.3)
1.3 Jdk安装
去jdk 官网下载(https://www.oracle.com/java/technologies/downloads/,往下翻可以找到Java SE Development Kit 8u**的字样,rpm包和tar包都可以)
Jdk安装与上述基本一致,因为centos9自带jdk-11-openjdk的包,但是与hadoop3.4.3不兼容所以需要下载jdk-1.8.*的包然后将包解压到/root/Hadoop/server(最好与hadoop的文件位置一致方便记忆,也可cp -r jdk1.8.0_351 jdk1.8.0,也可不做直接用jdk1.8.0_351命名的文件),ll查看当前文件,cp过的用cd jdk1.8.0(未cp的用cd jdk1.8.0_351 )将这层文件为gz和jar的包全部解压(gz包tar -zxvf ,jar包 jar -xvf),cd jre、cd java、cd lib分别进入解压三个文件中的包。cd …退一层在cd bin启动java,做完一切后java -version查看版本号
1.4 主机ip(在hadoop1配置完成后克隆即可,完整克隆ip是会分配的)
主机设置(可以在完整配置一台后,克隆完整虚拟机)
主机名可以使用su进入root后再终端输入nmtui按上下键选择设置主机名也可以终端输入hostnamectl set-hostname hadoop1(可以是node1,one),克隆后的虚拟机名为hadoop2,hadoop3。在配置完所有文件后克隆完整虚拟机后。添加克隆好的虚拟机名和ip(ifconfig查看ip地址)在vim /etc/hosts添加对应的地址
192.168.144.133 hadoop1
192.168.144.141 hadoop2
192.168.144.142 hadoop3
关闭防火墙 :
systemctl stop firewalld.service 停止防火墙
systemctl disable firewalld.service 关闭开机自启
ssh-keygen 一直敲回车(有判断yes/no 输入yes)
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3
4.创建目录:
mkdir -p /root/hadoop/server
mkdir /home/hadoop/tmp
mkdir /home/hadoop/var
mkdir /home/hadoop/dfs
mkdir /home/hadoop/dfs/name
mkdir /home/hadoop/dfs/data
5.安装hadoop
在开头以做了解释这里就不解释了。配置/etc/profile文件
vim /etc/profile 打开此文件,末尾添加
JAVA_HOME= /root/hadoop/server/jdk1.8.0
#(这就是为什么和hadoop解压在同一目录的原因,这里可以是/home/hadoop等,自己解压的文件目录,其他直接复制就好)
PATH=$GRADLE_HOME/bin:$JAVA_HOME/bin:$NODE_HOME/bin:$NODE_HOME1/bin:$PATH
CLASSPATH=.:$JAVA_HOME/jre/lib/ext:$JAVA_HOME/jre/lib/ext/jar:$JAVA_HOME/lib/tools.jar
export PATH JAVA_HOME CLASSPATH
export HADOOP_HOME= /root/hadoop/server/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
配置好后按Esc shift :wq保存退出
source /etc/profile 执行文件生效
hadoop version 查看版本
6.修改配置文件
/root/hadoop/server/hadoop/etc/hadoop(这个路径是解压后hadoop-3.4.3的etc地下的hadoop,直接复制命令cd /root/hadoop/server/hadoop/etc/hadoop进入,在代码后面为用#标注的直接复制,带#的多留意一下)
(1) vim core-site.xml
fs.defaultFS hdfs://192.168.144.133:9000 hadoop.tmp.dir /root/hadoop/server/hadoop hadoop.http.staticuser.user root hadoop.proxyuser.root.hosts * hadoop.proxyuser.root.groups * fs.trash.interval 1440
(2) vim hdfs-site.xml
dfs.name.dir /export/hadoop/dfs/name Path on the local filesystem where theNameNode stores the namespace and transactions logs persistently. dfs.data.dir /export/hadoop/dfs/data Comma separated list of paths on the localfilesystem of a DataNode where it should store its blocks. dfs.namenode.secondary.http-address hadoop2:50090 dfs.namenode.servicerpc-address hadoop1:8022 dfs.https.address hadoop1:50470 dfs.https.port 50470 dfs.namenode.http-address 192.168.144.133:50070 dfs.replication 2
(3) vim yarn-site.xml
yarn.resourcemanager.hostname hadoop1 <--写自己的主机节点-->yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false yarn.log-aggregation-enable true yarn.log.server.url http://hadoop1:19888/jobhistory/logs yarn.log-aggregation.retain-seconds 604800 yarn.nodemanager.disk-health-checker.max-disk-utilization-per-disk-percentage 95.0 yarn.nodemanager.resource.memory-mb 2048 yarn.scheduler.minimum-allocation-mb 2048 yarn.nodemanager.vmem-pmem-ratio 2.1
(4) vim mapred-site.xml
mapreduce.jobhistory.address hadoop1:10020 mapreduce.jobhistory.webapp.address hadoop1:19888 yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.map.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.reduce.env HADOOP_MAPRED_HOME=${HADOOP_HOME} mapreduce.application.classpath $HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib-examples/*
(5) vim yarn-env.sh #(文件最后面添加)
export JAVA_HOME=/root/hadoop/server/jdk1.8.0
(6) vim /root/hadoop/server/hadoop/etc/hadoop/ workers
在这个文件下添加三个主机节点的ip也可以是hadoop1,hadoop2,hadoop3(在hadoop1配置完成克隆后添加,打开三台虚拟机ifconfig查看ip,nmtui改主机名或者hostnamectl set-hostname hadoop1)
hadoop1
hadoop2
hadoop3
或者三台主机IP
(7) vim start-dfs.sh和vim stop-dfs.sh添加(路径cd /root/hadoop/server/hadoop/sbin,在文件开头添加):
HDFS_NAMENODE_USER=root
HDFS_DATANODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
YARN_RESOURCEMANAGER_USER=root
YARN_NODEMANAGER_USER=root
vim start-yarn.sh 和 vim stop-yarn.sh添加(路径cd /root/Hadoop/server/Hadoop/sbin,在文件开头添加):
RN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
YARN_RESOURCEMANAGER_USER=root
(8) 启动集群
克隆完成后三台机器均执行格式化命令
cd /root/hadoop/server/hadoop/bin进入bin
执行 hdfs namenode -format
cd /root/hadoop/server/hadoop/sbin
执行./start-all.sh
一个集群只有一个Namenode
只在hadoop1执行hdfs --daemon start namenode
其他节点执行:
启动Datanode和secondarynamenode
hdfs --daemon start datanode
hdfs --daemon start secondarynamenode
jps查看启动节点状态
三.测试3.1 wordcount示例运行
cd /root/hadoop/server/hadoop/share/hadoop/mapreduce 进入此目录下
mkdir test
创建好test后cd test 进入此文件
vim test
输入一些单词:
例如:
etc hadoop hello
cat ls df h
du h free h
linux ps ef
grep java ps
aux gerp
hadoop type enable yum install
输入完成后按Esc shift : wq保存退出
3.2 使用hdfs的命令创建好输入文件的目录并将file放入输入目录
hdfs dfs -ls / 查看hdfs根目录下文件和目录
hdfs dfs -mkdir /test 在hdfs的根目录下新建test目录
hdfs dfs -put test.txt /test 把本地文件上传到hdfs的test
hadoop jar hadoop-mapreduce-examples-3.3.4.jar wordcount /test/test.txt output/ 回到mapreduce目录下
完成之后输入
hdfs dfs -ls /user/root/output 查看输出文件
在windows浏览器最上边输入http://192.168.144.133:50070/,进入hadoop页面后点击Utilities 下的Brows the file system即可看见传输的内容
3.3Hadoop开机自启(可以不做此步骤)
cd /usr/lib/systemd/system
进入这个目录
vim hadoop. service
在此文件中添加一下内容(如果经常使用三台虚拟机都做):
[Unit]
Description=hadoop service
After=network.target
[Service]
Type=forking
ExecStartPre=/root/hadoop/server/hadoop/sbin
ExecStart=/root/hadoop/server/hadoop/sbin
ExecReload=/root/hadoop/server/hadoop/sbinstart-all.sh -s reload
ExceStop=/root/hadoop/server/hadoop/sbin/stop-all.sh -s stop
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=mixed
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重启systemctl 重新加载配置:systemctl daemon-reload
添加开机自启动命令:systemctl enable hadoop.service
提示:本文配置使用与cemtos7/8/9以及红帽7/8/9。有感兴趣的同志可以一起探讨关于hadoop的搭建。虽然这个是最基本的搭建,希望大家勿喷。(本人也是新手小白)
注意:个人喜欢配置好一台虚拟机后进行完整克隆,利用nmtui修改主机名,然后再添加三台主机的ip+主机节点名在vim /etc/hosts 和 vim workers.
如果不想克隆可以参考一下命令(/root/server/可以是自己想放的地址但是最好一致,解压在home就改成home即可):
cd /root/server/
rsync -rvl hadoop root@hadoop2:/root/server/
rsync -rvl hadoop root@hadoop3:/root/server/
rsync /etc/profile root@hadoop2:/etc/profile
rsync /etc/profile root@hadoop3:/etc/profile
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧