准备环境:
1 台 linux 虚拟机(Centos8.x64)
ip 为:192.168.111.100
hostname 为:hadoop100
虚拟机基本环境配置:
集群用到的所有机器都参考此流程进行配置
静态 ip 配置
ip 配置信息仅供参考,此处使用的是 nat 网络模式
[root@hadoop100~]#vi /etc/sysconfig/network-scripts/ifcfg-eth0
BOOTPROTO=static
IPADDR=192.168.111.100
GATEWAY=192.168.111.2
NETMASK=255.255.255.0
DNS1=192.168.111.2
修改好以后重启网卡,只要看到全部都是 OK 即表示配置成功
[root@hadoop100~]#service network restart
Shuttingdowninterfaceeth0: [ OK ]
Shuttingdownloopbackinterface: [ OK ]
Bringinguploopbackinterface: [ OK ]
Bringing up interface eth0: Determining if ip address 192.168.111.100 is already in use for deviceeth0... [ OK ]
主机名设置
建议把此机器的主机名设置为 hadoop100
主机名的设置可以分为临时设置和永久设置。
临时设置可以立刻生效,但是不能永久保存,虚拟机重启后就会失效,所以还需要结合永久 设置。
临时设置主机名
[root@hadoop100~]#hostname hadoop100
永久设置主机名
[root@hadoop100~]#vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop100
hosts 文件配置
修改/etc/hosts 文件,把 ip 和 hostname 的映射关系配置进去,此处的 ip 需要和你设置的虚 拟机实际 ip 相同
[root@hadoop100~]#vi /etc/hosts
192.168.111.100 hadoop100
关闭防火墙
防火墙的关闭也分为临时关闭和永久关闭。
临时关闭可以立刻生效,但是不能永久保存,虚拟机重启后就会失效,所以还需要结合永久 设置。
临时关闭防火墙
[root@hadoop100~]#service iptables stop
iptables:SettingchainstopolicyACCEPT:filter [ OK ]
iptables:Flushingfirewallrules: [ OK ]
iptables:Unloadingmodules: [ OK ]
永久关闭防火墙
[root@hadoop100soft]#chkconfig iptables off
ssh 免密码登陆
配置 ssh 免密码登陆,在这里先实现免密码登陆本机
生成公钥
注意:执行这个命令以后,需要连续按 4 次回车键回到 linux 命令行才表示这个操作执行 结束,在按回车的时候不需要输入任何内容。
[root@hadoop100~]#ssh-keygen-t rsa
Generatingpublic/privatersakeypair.
Enterfileinwhichtosavethekey(/root/.ssh/id_rsa):
Enterpassphrase(emptyfornopassphrase):
Entersamepassphraseagain:
Youridentificationhasbeensavedin/root/.ssh/id_rsa.
Yourpublickeyhasbeensavedin/root/.ssh/id_rsa.pub.
The key fingerprint is: 20:d0:89:24:29:1e:c8:50:b3:fb:e0:57:76:94:0c:earoot@hadoop100
The key's randomart image is:
+--[RSA2048]----+
|*+=o.. | |++.+o.o. |
|ooo.+ | |.o.o | | oEoS | |.oo. | | .o | | . |
| | +-----------------+
向本机复制公钥
[root@hadoop100~]#cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys
执行 ssh 命令验证免密码登陆是否配置成功,第一次验证的时候会提示输入 yes 或 no,直 接输入 yes 即可,如果输入了 yes 之后按回车可以进入就表示免密码登陆配置成功。
[root@hadoop100~]#ssh hadoop100
Theauthenticityofhost'hadoop100(192.168.111.100)'can'tbeestablished.
RSAkeyfingerprintis64:87:b9:da:46:c1:85:54:49:6d:65:4a:0f:49:8f:58.
Areyousureyouwanttocontinueconnecting(yes/no)?yes
Warning:Permanentlyadded'hadoop100'(RSA)tothelistofknownhosts.
Lastlogin:ThuJul2509:11:462019fromhadoop100
[root@hadoop100~]#
jdk 安装
注意:在这里建议安装 jdk1.8 版本,jdk-8u181-linux-x64.tar.gz
上传 jdk 安装包到 linux 的/data/soft 目录,如果此目录不存在则提前创建
[root@hadoop100~]#mkdir -p /data/soft/
[root@hadoop100~]#cd /data/soft/
解压 jdk
[root@hadoop100soft]#tar -zxvf jdk-8u181-linux-x64.tar.gz
重命名
[root@hadoop100soft]#mv jdk1.8.0_181 /jdk1.8
配置 java 的环境变量,修改/etc/profile 文件,在文件末尾增加下面三行配置
[root@hadoop100soft]#vi /etc/profile
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_HOME=/data/soft/hadoop-3.2.0
export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
验证环境变量配置是否成功,执行以下命令能看到输入信息即说明配置成功
[root@hadoop100soft]#java-version
java version"1.8.0_181"
Java(TM)SERuntimeEnvironment(build1.8.0_181-b13)
JavaHotSpot(TM)64-BitServer VM (build25.181-b13,mixedmode)
Hadoop 伪分布集群安装:
下面开始在 1 台 linux 虚拟机上开始安装 Hadoop3 伪分布环境
在这里我们使用 hadoop3.2.0 版本,hadoop-3.2.0.tar.gz
1:把 hadoop-3.2.0.tar.gz 安装包上传到 linux 机器的/data/soft 目录下
2:解压 hadoop 安装包
[root@hadoop100~]#cd/data/soft
[root@hadoop100soft]#tar-zxvfhadoop-3.2.0.tar.gz
3:修改 hadoop 相关配置文件
进入配置文件所在目录
[root@hadoop100soft]#cd hadoop-3.2.0/etc/hadoop/
首先修改 hadoop-env.sh 文件,增加环境变量信息
[root@hadoop100hadoop]#vi hadoop-env.sh
export JAVA_HOME=/data/soft/jdk1.8
export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
修改 core-site.xml 文件,注意 fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致
[root@hadoop100hadoop]# vi core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop100:9000</value>
</property> <property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop_repo</value>
</property>
</configuration>
修改 hdfs-site.xml 文件,把 hdfs 中文件副本的数量设置为 1,因为现在伪分布集群只有一 个节点
[root@hadoop100hadoop]#vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
修改 mapred-site.xml,设置 mapreduce 使用的资源调度框架
[root@hadoop100hadoop]#vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
修改 yarn-site.xml,设置 yarn 上支持运行的服务和环境变量白名单
[root@hadoop100hadoop]#vi yarn-site.xml
<configuration>
<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,CL ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
</value>
</property>
</configuration>
4:格式化 namenode
[root@hadoop100hadoop]#cd /data/soft/hadoop-3.2.0
[root@hadoop100hadoop-3.2.0]# bin/hdfs namenode-format
如果在后面的日志信息中能看到这一行,则说明 namenode 格式化成功。
common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully formatted.
5:启动 hadoop 集群
[root@hadoop100hadoop-3.2.0]#sbin/start-all.sh
ERROR:Attemptingtooperateonhdfsnamenodeasroot ERROR:butthereisnoHDFS_NAMENODE_USERdefined.Abortingoperation. Startingdatanodes ERROR:Attemptingtooperateonhdfsdatanodeasroot ERROR:butthereisnoHDFS_DATANODE_USERdefined.Abortingoperation. Startingsecondarynamenodes[hadoop100] ERROR:Attemptingtooperateonhdfssecondarynamenodeasroot ERROR:butthereisnoHDFS_SECONDARYNAMENODE_USERdefined.Abortingoperation. 2019-07-25 10:04:25,993 WARN util.NativeCodeLoader: Unable to load native-hadoop library for yourplatform...usingbuiltin-javaclasseswhereapplicable Startingresourcemanager ERROR:Attemptingtooperateonyarnresourcemanagerasroot ERROR:butthereisnoYARN_RESOURCEMANAGER_USERdefined.Abortingoperation. Startingnodemanagers ERROR:Attemptingtooperateonyarnnodemanagerasroot ERROR:butthereisnoYARN_NODEMANAGER_USERdefined.Abortingoperation.
发现在启动的时候报错,提示缺少 HDFS 和 YARN 的一些用户信息。
解决方案如下:
修改 start-dfs.sh,stop-dfs.sh 这两个脚本文件,在文件前面增加如下内容
[root@hadoop100hadoop]#cd /data/soft/hadoop-3.2.0/sbin
[root@hadoop100sbin]#vistart-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
[root@hadoop100sbin]#vi stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
修改 start-yarn.sh,stop-yarn.sh 这两个脚本文件,在文件前面增加如下内容
[root@hadoop100sbin]#vi start-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
[root@hadoop100sbin]#vi stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
再重新启动集群
[root@hadoop100sbin]#./start-all.sh
Starting namenodeson[hadoop100]
Starting datanodes
Starting secondary namenodes [hadoop100]
Starting resourcemanager
Starting nodemanagers
6:验证集群进程信息
执行 jps 命令可以查看集群的进程信息,抛出 Jps 这个进程之外还需要有 5 个进程才说明 集群是正常启动的
[root@hadoop100sbin]#jps
2882 ResourceManager
2420 DataNode
3365 Jps
2619 SecondaryNameNode
2315 NameNode
2988 NodeManager
还可以通过 webui 界面来验证集群服务是否正常
hdfs webui 界面:http://192.168.111.100:9870
yarn webui 界面:http://192.168.111.100:8088
7:停止集群 如果修改了集群的配置文件或者是其它原因要停止集群,可以使用下面命令。
[root@hadoop100sbin]#./stop-all.sh









网友评论