Linux centos7 Hadoop 学习笔记


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、Spark02Spark03中执行

zkServer.sh start

命令启动每台虚拟机的ZooKeeper服务。

2.启动JournalNode
分别在虚拟机Spark01、Spark02Spark03中执行如下命令命令启动每台虚拟机的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:

换谷歌浏览器

猜你喜欢

转载自blog.csdn.net/baidu_39105563/article/details/123905936