赞
踩
以下为搭建Hadoop集群所需要的环境:
VMware Workstation
Xshell
Xftp
Nodepad++
CentOS 7
hadoop-3.3.0
jdk-1.8
所需软件,可到官网进行下载
安装目录没有中文字符,没有空格
第3步的192.168.88.x改为192.168.240.x 即与WMware设置的相同即可
主机名自己设置即可
文件目录:/etc/sysconfig/network-scripts/ifcfg-ens32
TYPE="Ethernet" PROXY_METHOD="none" BROWSER_ONLY="no" BOOTPROTO="static" DEFROUTE="yes" IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6_AUTOCONF="yes" IPV6_DEFROUTE="yes" IPV6_FAILURE_FATAL="no" IPV6_ADDR_GEN_MODE="stable-privacy" NAME="ens32" UUID="3b3f9a3b-a378-41d9-bb5e-fdeca47539a7" DEVICE="ens32" ONBOOT="yes" IPADDR="192.168.240.151" GATEWAY="192.168.240.2" NETMASK="255.255.255.0" DNS1="8.8.8.8" DNS2="114.114.114.114" IPV6_PRIVACY="no"
修改完成后重启网卡服务,加载新的配置文件
systemctl restart network
重启完成后要重新连接xshell与nodepad++
查看防火墙状态
systemctl status firewalld
关闭防火墙
systemctl stop firewalld
禁止开机启动
systemctl disable firewalld
添加hadoop用户组
groupadd hadoop
添加hadoop01用户
useradd -g hadoop hadoop01
注意:这里的用户名可以自主更改
设置密码
passwd hadoop01
给予权限
chmod 660 /etc/sudoers
将 hadoop 用户添加到 sudoers 文件中:
vi /etc/sudoers
在打开的文本编辑器中找到下面这一行:
root ALL=(ALL:ALL) ALL
在这一行下面添加一行,以授予 hadoop2112034222 用户执行 sudo 命令的权限,如下所示:
hadoop01 ALL=(ALL) ALL
然后保存并关闭文件,并以 hadoop 用户身份重新登录系统即可。
reboot
这里是新建的Hadoop用户而不是root用户
软件包放置的目录:
mkdir software
软件安装的目录:
mkdir server
要建立克隆两台机器
克隆虚拟机时,要将被克隆的主机关机
要建立完整克隆
分别为克隆的两台主机配置MAC地址
打开配置文件
sudo vi /etc/sysconfig/network-scripts/ifcfg-ens32
将hadoop02与hadoop03的ip分别改为
192.168.240.152
192.168.240.153
重启网卡
systemctl restart network
查看IP地址
ifconfig
分别编辑每台虚拟机的hostname文件,直接填写主机名,保存退出即可。
sudo vi /etc/hostname
第一台主机主机名为: hadoop01
第二台主机主机名为:hadoop02
第三台主机主机名为: hadoop03
分别编辑每台虚拟机的hosts文件,在原有内容的基础上,填下以下内容:
注意:不要修改文件原来的内容,三台虚拟机的配置内容都一样。
sudo vi /etc/hosts
添加内容如下:
192.168.240.151 hadoop01
192.168.240.152 hadoop02
192.168.240.153 hadoop03
效果如图
重新启动三台主机
在三台机器执行以下命令,生成公钥与私钥
ssh-keygen -t rsa
执行该命令之后,按下三个回车即可,然后敲(三个回车),就会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
默认保存在/home/hadoop01/.ssh
三台机器将拷贝公钥到第一台机器
三台机器执行命令:
ssh-copy-id hadoop01
在执行该命令之后,需要输入yes和hadoop01的密码:
将第一台机器的公钥拷贝到其他机器上
在第一台机器上指行以下命令
scp /home/hadoop01/.ssh/authorized_keys hadoop02:/home/hadoop01/.ssh
scp /home/hadoop01/.ssh/authorized_keys hadoop03:/home/hadoop01/.ssh
执行命令时,需要输入yes和对方的密码
可以在任何一台主机上通过ssh 主机名命令去远程登录到该主机,输入exit退出登录
例如:在hadoop01机器上,免密登录hadoop02机器,在hadoop01上输入:
ssh hadoop02
效果如下:
注意:这里是不需要输入密码的,如果需要输入密码,则表明你的免密登录设置的有问题
在hadoop01 进入 /home/hadoop01/software目录上传 jdk-8u241-linux-x64.tar.gz
cd software
解压压缩包到sever目录下:
tar -zxvf jdk-8u241-linux-x64.tar.gz -C ~/server
查看解压后的目录,目录中有 jdk1.8.0_241 为 jdk 解压的目录
打开/etc/profile 配置文件,将下面配置拷贝进去。
export 命令用于将 shell 变量输出为环境变量
sudo vi /etc/profile
通过键盘上下键 将光标拉倒最后面
然后输入 i, 将以下下内容输入即可
#set Javasource
export JAVA_HOME=/home/hadoop01/server/jdk1.8.0_241
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
按esc键 然后 :wq 保存退出即可
重新加载环境变量:
source /etc/profile
将环境配置加入到/.bashrc
cat /etc/profile >> ~/.bashrc
#远程ssh执行需要设置~/.bashrc的环境变量。
#非登入shell按如下顺序加载配置文件:1:/etc/bashrc 2:~/.bashrc
java -version
出现以下内容即成功:
[hadoop01@hadoop01 ~]$ java -version
java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)
在hadoop01 进入 /home/hadoop01/software目录上传 hadoop-3.3.0-Centos7-64-with-snappy.tar.gz
cd software
解压压缩包到sever目录下:
tar -zxvf hadoop-3.3.0-Centos7-64-with-snappy.tar.gz -C ~/server
查看解压后的目录,目录中有hadoop-3.3.0 为 hadoop解压的目录
打开/etc/profile 配置文件,将下面配置拷贝进去。
sudo vi /etc/profile
通过键盘上下键 将光标拉倒最后面
然后输入 i, 将以下下内容输入即可
#set HadoopSource
export HADOOP_HOME=/home/hadoop01/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
按esc键 然后 :wq 保存退出即可
重新加载环境变量:
source /etc/profile
将环境配置加入到/.bashrc
cat /etc/profile >> ~/.bashrc
whereis hdfs
出现以下内容即配置成功:
[hadoop01@hadoop01 ~]$ whereis hdfs
hdfs: /home/hadoop01/server/hadoop-3.3.0/bin/hdfs /home/hadoop01/server/hadoop-3.3.0/bin/hdfs.cmd
配置文件在 /home/hadoop01/server/hadoop-3.3.0/etc/hadoop 目录下
以下配置根据需要添加
在 /home/hadoop01/server/hadoop-3.3.0/ 目录下创建tmp文件夹
cd server/hadoop-3.3.0/
mkdir tmp
配置文件内容:
<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 --> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop01:8020</value> </property> <!-- 设置Hadoop本地保存数据路径 --> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop01/server/hadoop-3.3.0/tmp</value> </property> <!-- 设置HDFS web UI用户身份 --> <property> <name>hadoop.http.staticuser.user</name> <value>hadoop01</value> </property> <!-- 整合hive 用户代理设置 --> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property>
<!-- 设置SNN进程运行机器位置信息 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:9868</value>
</property>
<!-- 设置YARN集群主角色运行机器位置 --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop01</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 是否将对容器实施物理内存限制 --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <!-- 是否将对容器实施虚拟内存限制。 --> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> <!-- 开启日志聚集 --> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!-- 设置yarn历史服务器地址 --> <property> <name>yarn.log.server.url</name> <value>http://hadoop01:19888/jobhistory/logs</value> </property> <!-- 保存的时间7天 --> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>
<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!-- MR程序历史服务器端地址 --> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop01:10020</value> </property> <!-- 历史服务器web端地址 --> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop01:19888</value> </property> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value> </property>
删除原有内容,添加以下内容:
hadoop01
hadoop02
hadoop03
scp -r /home/hadoop01/server hadoop01@hadoop02:/home/hadoop01/
scp -r /home/hadoop01/server hadoop01@hadoop03:/home/hadoop01/
scp ~/.bashrc hadoop02:~/.bashrc
scp ~/.bashrc hadoop03:~/.bashrc
分别在hadoop02与hadoop03中输入以下代码,是环境变量生效:
source ~/.bashrc
输入以下命令:
hdfs namenode -format
start-dfs.sh
start-yarn.sh
mapred --daemon start historyserver
start-all.sh
[hadoop01@hadoop01 server]# hdfs --daemon start namenode
[hadoop01@hadoop01 server]# hdfs --daemon start datanode
[hadoop01@hadoop01 server]# yarn --daemon start resourcemanager
[hadoop01@hadoop01 server]# yarn --daemon start nodemanager
[hadoop01@hadoop01 server]# mapred --daemon start historyserver
[hadoop01@hadoop02 ~]# hdfs --daemon start secondarynamenode
[hadoop01@hadoop02 ~]# yarn --daemon start nodemanager
[hadoop01@hadoop02 ~]# hdfs --daemon start datanode
[hadoop01@hadoop03 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop03 ~]# hdfs --daemon stop datanode
[hadoop01@hadoop01 ~]$ jps
30210 DataNode
30661 NodeManager
30524 ResourceManager
30047 NameNode
31695 Jps
[hadoop01@hadoop02 ~]$ jps
29762 DataNode
30306 Jps
29976 NodeManager
29883 SecondaryNameNode
[hadoop01@hadoop03 ~]$ jps
29595 NodeManager
29471 DataNode
29903 Jps
http://192.168.240.151:
http://192.168.240.151:8088
http://192.168.240.152:9868
http://192.168.240.151:19888
stop-dfs.sh
stop-yarn.sh
mapred --daemon stop historyserver
stop-all.sh
[hadoop01@hadoop01 server]# hdfs --daemon stop namenode
[hadoop01@hadoop01 server]# hdfs --daemon stop datanode
[hadoop01@hadoop01 server]# yarn --daemon stop resourcemanager
[hadoop01@hadoop01 server]# yarn --daemon stop nodemanager
[hadoop01@hadoop01 server]# mapred --daemon stop historyserver
[hadoop01@hadoop02 ~]# hdfs --daemon stop secondarynamenode
[hadoop01@hadoop02 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop02 ~]# hdfs --daemon stop datanode
[hadoop01@hadoop03 ~]# yarn --daemon stop nodemanager
[hadoop01@hadoop03 ~]# hdfs --daemon stop datanode
本文尽量详细的向大家展示了Hadoop集群环境的搭建流程,旨在帮助新手以最快的时间成功搭建Hadoop集群。
如有问题,欢迎评论!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。