hadoop配置改3个地方:改主机名,改IP,改MAC
重命名主机名称:
hostnamectl set-hostname hadoop1
安装nano命令:
yum install nano
网关配置:
命令:
nano /etc/sysconfig/network-scripts/ifcfg-ens33 #ens33网卡名,需要修改BOOTPROTO,IPADDR,添加NETMASK,DNS1
修改的内容:
BOOTPROTO=static #静态
IPADDR=IP地址 #ip地址
NETMASK=255.255.255.0 #子网掩码
DNS1=192.168.91.2 #dns解析,设置为和网关一样
查看网关配置:cat /etc/sysconfig/network-scripts/ifcfg-ens33
保存:Ctrl+O-->回车
退出:Ctrl+X
3、改MAC地址:sed -i '/UUID=/c\UUID='`uuidgen`'' /etc/sysconfig/network-scripts/ifcfg-ens33
更新虚拟机内核:yum -y update
yum -y upgrade
免密登录:
配置秘钥:ssh-keygen -t rsa
进入:cd /root/.ssh #(.表示隐藏文件)
查看所有:ll -a
免秘钥登录:ssh root@hadoop2
配置ip与主机名映射:配置之后就可以通过主机名连接,比如ssh root@hadoop
查看某个文件:cat /etc/hosts
使用nano工具编辑文件:nano /etc/hosts
添加以下内容:
192.168.91.129 hadoop1
192.168.91.130 hadoop2
192.168.91.131 hadoop3
安装时间同步工具:
yum install chrony -y #-y全自动安装
查看文件:rpm -qa | grep chrony
启动服务:systemctl start chronyd
查看服务:systemctl status chronyd
开机启动服务:systemctl enable chronyd --now
防火墙配置:
查看状态:systemctl status firewalld
关闭防火墙:systemctl stop firewalld
禁止防火墙开机启动:systemctl disable firewalld
配置时间同步:
编辑时间同步:nano /etc/chrony.conf
把 server0,1,2,3注释掉,
添加时间同步服务器:server Hadoop1 iburst #其他2台同步启动一台的
重启chronyd:systemctl restart chronyd
查看时间同步状态:chronyc sources -v
配置jdk
配置环境变量:/etc/profile 使用命令nano /etc/profile
export JAVA_HOME=~/export/servers/jdk1.8.0_202
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
执行“source /etc/profile”命令初始化系统环境变量使配置内容生效。
#拷贝环境变量
scp /etc/profile root@hadoop2:/etc
#其他拷贝jdk
scp -r export/servers/ root@hadoop2:export/ #-r表示递归,可以拷贝多层文件夹,把servers拷贝到export下
#让环境变量生效
source /etc/profile
配置zookeeper
把zookeeper复制到/export/servers/里面
进入ZooKeeper安装目录下的conf目录
复制模板文件zoo_sample.cfg为zoo.cfg配置文件
cp zoo_sample.cfg zoo.cfg
编辑zoo.cfg
vi zoo.cfg
编辑的内容
dataDir=/export/data/zookeeper/zkdata #记得要创建这个文夹/export/data/zookeeper/zkdata
server.1=spark1.2888:3888
server.2=spark2.2888:3888
server.3=spark3.2888:3888
pwd显示当前路径
在hadoop1的zkdata目录下执行echo 1 > myid
在hadoop2的zkdata目录下执行echo 2 > myid
在hadoop3的zkdata目录下执行echo 3 > myid
配置zookeeper环境变量
export ZK_HOME=/export/se
rvers/zookeeper-3.4.10#注意zookeeper版本
export PATH=$PATH:$ZK_HOME/bin
然后把zookeeper和profile拷贝到2,3主机
zkServer.sh status#查看zk的状态
zkServer.sh start#启动zk
ps#查看进程
jps#查看和java有关的进程
安装Hadoop:
把hadoop包拷贝到/export/software/
使用命令解压到/export/servers/
tar -zxvf /export/software/hadoop-2.7.4.tar.gz -C /export/servers/
配置sh命令
进入Hadoop安装包的/etc/hadoop/目录,下面的命令都是该目录下操作,编辑hadoop-env.sh文件
vi hadoop-env.sh#可以用nano命令
将文件内默认的JAVA_HOME参数修改为本地安装JDK的路径。
export JAVA_HOME=/export/servers/jdk1.8.0
进入Hadoop安装包的/etc/hadoop/目录,编辑yarn-env.sh文件
vi yarn-env.sh
将文件内默认的JAVA_HOME参数修改为本地安装JDK的路径,同上一步
命令编辑Hadoop的核心配置文件core-site.xml
vi core-site.xml
修改如下地址
<property>
<name>fs.defaultFS</name>
<value>hdfs://master</value><!--master集群名字-->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop-2.7.4/tmp</value><!--tmp临时文件目录,不存在需要手动创建-->
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>spark01:2181,spark02:2181,spark03:2181</value>
</property>
命令编辑HDFS的核心配置文件hdfs-site.xml
vi hdfs-site.xml
修改内容如下:
<property>
<name>dfs.replication</name>
<value>3</value><!--集群数-->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/export/data/hadoop/namenode</value><!--没有路径需要手动创建-->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/export/data/hadoop/datanode</value><!--没有路径需要手动创建-->
</property>
<!---->
<property>
<name>dfs.nameservices</name>
<value>master</value>
</property>
<property>
<name>dfs.ha.namenodes.master</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.master.nn1</name>
<value>spark01:9000</value>
</property>
<!---->
<property>
<name>dfs.namenode.rpc-address.master.nn2</name>
<value>spark02:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.master.nn1</name>
<value>spark01:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.master.nn2</name>
<value>spark02:50070</value>
</property>
<!---->
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://spark01:8485;spark02:8485;spark03:8485/master</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/export/data/hadoop/journaldata</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.master</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<!---->
<property>
<name>dfs.ha.fencing.methods</name>
<value>
sshfence
shell(/bin/true)
</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_rsa</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!---->
<property>
<name>dfs.ha.fencing.ssh.connect-timeout</name>
<value>30000</value><!--超时-->
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
进入Hadoop安装包的/etc/hadoop/目录,执行命令,通过复制模板文件方式创建MapReduce
的核心配置文件mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
执行命令编辑配置文件mapred-site.xml ,指定MapReduce运行时框架。
vi mapred-site.xml
修改如下:
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value><!--资源调度器-->
</property>
执行命令,编辑YARN的核心配置文件yarn-site.xml
cp yarn-site.xml
修改如下:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.ha.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.cluster-id</name>
<value>yarncluster</value>
</property>
<!---->
<property>
<name>yarn.resourcemanager.ha.rm-ids</name>
<value>rm1,rm2</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm1</name>
<value>spark01</value>
</property>
<property>
<name>yarn.resourcemanager.hostname.rm2</name>
<value>spark02</value>
</property>
<!---->
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>spark01:2181,spark02:2181,spark03:2181</value>
</property>
<property>
<name>yarn.resourcemanager.recovery.enabled</name>
<value>true</value>
</property>
<property>
<name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!---->
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!---->
修改slaves文件
执行命令,编辑记录Hadoop集群所有DataNode节点和NodeManager节点主机名的文件slaves
vi slaves
内容如下:
spark01
spark02
spark03
配置Hadoop环境变量
执行命令编辑系统环境变量文件profile,配置Hadoop系统环境变量
vi /etc/profile
添加内容如下:
export HADOOP_HOME=/export/servers/hadoop-2.7.4
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
执行命令初始化系统环境变量使配置内容生效
source /etc/profile
Hadoop安装目录和系统环境变量文件分发到另外2台虚拟机
#将Hadoop安装目录分发到虚拟机Spark02和Spark03
$ scp -r /export/servers/hadoop-2.7.4/ root@spark02:/export/servers/
$ scp -r /export/servers/hadoop-2.7.4/ root@spark03:/export/servers/
#将系统环境变量文件分发到虚拟机Spark02和Spark03
$ scp /etc/profile root@spark02:/etc/
$ scp /etc/profile root@spark03:/etc/
执行命令查看当前系统环境的Hadoop版本
hadoop version
启动Hadoop服务,共5步
1.启动ZooKeeper
分别在虚拟机Spark01、Spark02和Spark03中执行
zkServer.sh start
命令启动每台虚拟机的ZooKeeper服务。
2.启动JournalNode
分别在虚拟机Spark01、Spark02和Spark03中执行如下命令命令启动每台虚拟机的JournalNode服务。
hadoop-daemon.sh start journalnode
注意一下命令只在第一次启动时执行:
初始化NameNode(仅初次启动执行)
在Hadoop集群主节点虚拟机Spark01执行“hdfs namenode -format”命令初始化NameNode操作。
初始化ZooKeeper(仅初次启动执行)
在NameNode主节点虚拟机Spark01,执行“hdfs zkfc -formatZK”命令初始化ZooKeeper 中的 HA 状态。
NameNode同步(仅初次启动执行)
在虚拟机Spark01中的NameNode主节点执行初始化命令后,需要将元数据目录的内容复制到其他未格式化的 NameNode备用节点(虚拟机Spark02)上,确保主节点和备用节点的NameNode数据一致
scp -r /export/data/hadoop/namenode/ root@spark02:/export/data/hadoop/
3.启动HDFS
在虚拟机Spark01中通过执行一键启动脚本命令,启动Hadoop集群的HDFS,此时虚拟机Spark01和Spark02上的NameNode和ZKFC以及虚拟机Spark01、Spark02和Spark03上的DataNode都会被启动,如下命令:
start-dfs.sh
4.启动YARN
在虚拟机Spark01中通过执行一键启动脚本命令,启动Hadoop集群的YARN,如下命令:
start-yarn.sh
此时虚拟机Spark01上的ResourceManager以及虚拟机Spark01、Spark02和Spark03上的NodeManager都会被启动。
5.启动ResourceManager
在虚拟机Spark02上的ResourceManager备用节点需要在虚拟机Spark02上单独启动,执行如下命令:
yarn-daemon.sh start resourcemanager
jps:命令查看Hadoop高可用集群相关进程是否成功启动
全节点启动zk
zkServer.sh start
主节点启动dfs
start-dfs.sh
主节点启动yarn
start-yarn.sh
子节点1启动
yarn-daemon.sh start resourcemanager
全服务关闭
stop-all.sh
全服务启动
start-all.sh
查看数据
#浏览器查看
ip:50070
ip:8088
通过主机名访问,打开如下文件
C:\Windows\System32\drivers\etc\hosts
添加如下配置
192.168.8.134 hadoop1
192.168.8.135 hadoop2
192.168.8.136 hadoop3
HDFS中的操作:
删除文件夹:
hadoop fs -rm -r /文件夹名称
创建文件夹:
hadoop fs -mkdir /文件夹名称
查看目录:
hadoop fs -ls /
修改权限HDFS操作权限:
hadoop fs -chmod 777 /input
手动离开安全模式:
//若配置环境变量,使用以下命令
hadoop dfsadmin -safemode leave
异常处理:
出现如下:
Failed to retrieve data from /webhdfs/v1/data/clickLog/2022_04_24?op=LISTSTATUS:
换谷歌浏览器