Hadoop部署
-
Linux桌面模式关闭
# 设置 systemctl set-default multi-user.target # 重启 reboot
-
防火墙关闭
systemctl status firewalld systemctl stop firewalld # 关闭开机自启 systemctl disable firewalld
-
配置Java环境
echo $JAVA_HOME java -version # Java配置 # 上传jar包并解压 tar -zxvf ...jdk.jar # 配置环境变量 vim /etc/profile JAVA_HOME=/usr/local/soft/jdk1.8.0_171 export PATH=$JAVA_HOME/bin:$PATH
-
网络环境
# 查看IP ifconfig # 修改网络IP vim /etc/sysconfig/network-scripts/ifcfg-ens331 TYPE=Ethernet2 PROXY_METHOD=none3 BROWSER_ONLY=no4 BOOTPROTO=static5 DEFROUTE=yes6 IPV4_FAILURE_FATAL=no7 IPV6INIT=yes8 IPV6_AUTOCONF=yes9 IPV6_DEFROUTE=yes10 IPV6_FAILURE_FATAL=no11 IPV6_ADDR_GEN_MODE=stable-privacy12 NAME=ens3213 UUID=9d8db489-1d03-49dd-9a72-c106b667af6a14 DEVICE=ens3215 ONBOOT=yes16 IPADDR=192.168.44.10017 netmask=255.255.255.018 GATEWAY=192.168.44.2# 关闭网络管理器 systemctl status NetworkManager systemctl stop NetworkManager systemctl disable NetworkManager
-
修改主机名称
vim /etc/hostname 在当前虚拟机中设置Master 之后克隆的三个节点需要设置node1 node2
-
克隆另外两台从节点 node1 node2
选中当前节点 关机 -> 右键 ->管理 -> 克隆 -> 当前状态 -> 创建完整克隆 -> 选择路径修改名称 -> 完成
注意:选中的路径最好是 SSD 固态 同时磁盘空间三个节点最少保证大于70G
-
修改克隆主机 一定要修改
先启动node1节点,配置好之后再启动node2
1.修改网络
2.修改主机名
-
修改IP映射
当node1 node2 配置完成后,再启动Master 修改IP映射
vim /etc/hosts # 安装自己的IP修改映射关系 192.168.44.100 master 192.168.44.110 node1 192.168.44.120 node2
-
配置主节点和其他节点之间的免密登录
免密登录
当在Master节点中需要控制node1 和 node2 节点启动相关的一些命令任务
需要使用 ssh root@ip/hostname ctrl+D:退出
后续Hadoop启动会切换到从节点启动任务,需要密码非常麻烦,所以需要配置免密登录
# 在Masetr节点中执行如下命令: # > 需要三次回车 ssh-keygen -t rsa # 将密码复制到 master node1 node2 > 需要输入密码 ssh-copy-id master ssh-copy-id node1 ssh-copy-id node2 # 验证:ssh node1 ctrl + d 退出登录
-
校验时间是否同步
使用xshell对当前所有会话同时发送命令 date 查看系统时间 如果时间不同步 ,那么需要配置
yum install ntp ntpdate time.windows.com
-
正式开始配置Hadoop
上传Hadoop并解压
tar -zxvf hadoop-3.1.3.tar.gz
-
配置环境变量
vim /etc/profile HADOOP_HOME=/usr/local/soft/hadoop-3.1.3 export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH source /etc/profile
-
修改配置文件
core-site.xml
<property><name>fs.defaultFS</name><value>hdfs://master:9000</value> </property> <!-- 指定hadoop数据的存储目录 --> <property><name>hadoop.tmp.dir</name><value>/usr/local/soft/hadoop-3.1.3/data</value> </property>
hdfs-site.xml
dfs.namenode.http-address master:50070
该配置项设置网页的访问端口 对于3.x版本的Hadoop其端口为9870
<!-- 2nn web端访问地址--> <property><name>dfs.namenode.secondary.http-address</name><value>master:9868</value> </property> <property><name>dfs.replication</name><value>1</value> </property><property><name>dfs.permissions</name><value>false</value> </property>
yarn-site.xml
<!-- 指定MR走shuffle --> <property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value> </property> <!-- 指定ResourceManager的地址--> <property><name>yarn.resourcemanager.hostname</name><value>master</value> </property> <!-- 环境变量的继承 --> <property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value> </property> <!-- yarn容器允许分配的最大最小内存 --> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>4096</value> </property> <!-- yarn容器允许管理的物理内存大小 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> </property> <!-- 关闭yarn对物理内存和虚拟内存的限制检查 --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property>
mapred-site.xml
<property><name>mapreduce.framework.name</name><value>yarn</value></property><property> <name>mapreduce.jobhistory.address</name> <value>master:10020</value> </property> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>master:19888</value> </property>
workers
在该文件中主要是对从节点的名称进行配置
node1
node2hadoop-env.sh
Hadoop的执行环境
# 在最后加入以下配置 export JAVA_HOME=/usr/local/soft/jdk1.8.0_171 export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root export YARN_NODEMANAGER_USER=root
-
分发Hadoop到node1、node2
scp表示远程复制
-r 表示复制的为目录
root@node1 表示用户及IP 由于配置了免密登录所以不需要密码
:
pwd
pwd 表示当前所在的目录路径 :需要指定目标位置的路径scp -r hadoop-3.1.3 root@node1:`pwd` scp -r hadoop-3.1.3 root@node2:`pwd`
-
初始化Hadoop
# 初始化 hdfs namenode -format
只能在Master中执行一次
# 启动集群 start-all.sh # 停止 stop-all.sh
-
检查
-
页面
HDFS的访问页面 http://IP:9870/
Yarn的访问页面http://master:8088/
-
查看进程
jps(查看所有Java启动的进程) # Master节点 3273 NameNode 3548 SecondaryNameNode 3807 ResourceManager# node1节点 2977 NodeManager 2862 DataNode# node2节点 2977 NodeManager 2862 DataNode
-
-
Hadoop安装或运行过程出现问题
-
1.查看日志
在当前安装目录中找到logs 并分析哪个进程宕机,可以查看进程对应的日志文件
-
2.重新安装
1.删除所有节点中的data目录
2.寻找正确的配置文件,进行替换,并将所有节点进行同步
3.重新格式化
-
Hadoop存储
在Hadoop中数据存储是由HDFS组件决定的,可以通过9870端口进行访问,在Hadoop2.x版本中端口为50070