Hadoop学习环境搭建
Hadoop学习环境搭建
- Apache Hadoop3.1.1虚拟机环境搭建
- 工具准备
- 安装虚拟机
- Hadoop安装和配置
- 配置Hadoop001、Hadoop002、Hadoop003互相访问
- 配置Hadoop
- 启动Hadoop
Apache Hadoop3.1.1虚拟机环境搭建
最近想学习一下大数据相关的知识,都说Hadoop是目前学习大数据必不可少的,所以那就先从Hadoop开始吧。第一步就是搭建一个Hadoop的环境,我选择的是用VirtualBox虚拟机搭建一个简单的Hadoop环境,Hadoop的版本是3.1.1。
工具准备
- 虚拟机工具:VIrtualBox
- 操作系统:CentOS7.5
- Hadoop-3.1.1
安装虚拟机
利用VirtualBox搭建虚拟机环境,一共安装三台虚拟机,一台作为namenode,两台作为datanode,三台虚拟机只有hostname和ip不同,其他相同,所以只演示一台的安装过程:
新建虚拟机,名称为hadoop001,操作系统选择Linux,版本选择Red Hat (64-bit),点击【下一步】 ;
设置内存和硬盘保存位置及大小,我是设置的2G内存和100G硬盘;
创建完成后,设置存储为下载的CentOS安装ISO文件,设置网络为桥接网卡,然后点击启动,开始安装操作系统;
安装操作系统不多赘述,正常安装即可,需要注意一点,安装过程中直接设置好hostname和IP地址;
hadoop001安装完成,,hostname:hadoop001,ip:192.168.0.181。由于安装的是Minal模式,所以需要通过yum安装net-tools等工具。具体工具可百度。同时需要安装Java环境,简单说来就是下载jdk,然后解压到指定目录后,设置环境变量即可,此处不再具体叙述 ,可百度。连接linux和传输文件的工具可以用XShell和XFtp。
Java environment
export JAVA_HOME=/usr/lib/java/jdk1.8.0_181
export JRE_HOME=JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/jre export CLASSPATH=.:JAVAHOME/jreexportCLASSPATH=.:{JAVA_HOME}/jre/lib/rt.jar:JAVAHOME/lib/dt.jar:{JAVA_HOME}/lib/dt.jar:JAVAHOME/lib/dt.jar:{JAVA_HOME}/lib/tools.jar
export PATH=PATH:PATH:PATH:{JAVA_HOME}/bin按照hadoop001的方式安装完成hadoop002(hostname:hadoop002, ip:192.168.0.182),hadoop003(hostname:hadoop003, ip:192.168.0.183);此处的IP地址根据你自己的网络环境进行设置。按照hadoop001的方式安装完成hadoop002(hostname:hadoop002, ip:192.168.0.182),hadoop003(hostname:hadoop003, ip:192.168.0.183);此处的IP地址根据你自己的网络环境进行设置。
到此为止,虚拟机环境安装完成,接下来就是Hadoop的安装和配置过程
Hadoop安装和配置
- 第一步配置三台虚拟机之间能互相不用用户名密码访问
- 配置Hadoop
- 启动Hadoop
配置Hadoop001、Hadoop002、Hadoop003互相访问
虚拟机中设置host文件
vim /etc/hosts
三台机器做一样的设置
192.168.0.181 hadoop001
192.168.0.182 hadoop002
192.168.0.183 hadoop003
保证三台机器都能互相ping通
虚拟机hadoop001中生成ssh密钥
ssh-keygen -t rsa -P ‘’
hadoop002与hadoop003做同样的操作,完成后可以通过命令查看密钥对是否生成成功
ls /root/.ssh/
然后合并hadoop001、hadoop002、hadoop003的id_rsa.pub文件内容到authorized_keys文件中:
首先看一下三台机器中的id_rsa.pub内容
hadoop001
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4X22DpQ8VYtLZsz0bmd8M4DvU6Ixf6YuZ1ss7Y+gJPIL4X/X2bYIk14rRTPY3/N2lG758mh0OJL0ET1c4J+48g/YZ3gXvbeo4WxIfNaVF/5Qk64hTQjrDpT8BmOB0U/rzt3TDndnkKiOLuHsbaCSthkCZEN2Hrn1IcLVYIj5BxlS5Gtb3eFhKElNfFoFsnoIulMirxuqOld0UhSYNNBOcnZoTll/GUdHufDorlR0ADwM1AxbVo4uVPnDk4i1heVEXyL5iySxM5+Z+qYqywGyKHCBNEIBx0TpnCqnBofv0fd+pDNDbNHYbulAMLZbio85WlsSzhpL5Wws8M3LcGWFD root@hadoop001
hadoop002
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0MB7PUJYdVwEr9fKgJ1b8xaODbq4ZX0G/+YrLEj6e6/TNHo/M6U/bEPWkClT14PjI2SKXqVtHgMLDe8aShxHxV7KfXG6KS002lIGXa0bOXdbFIr74GEdJJmL1wLZvbuKEAC8h1DkIsnDLr7/pKTDReN3L1iHgcSqjUHXqXC0cd6tZTfc/oDqZ7q2xmGbdRSB/uKX1stt09+a64AAvQPrCenTS6BP4VfSnY2WCxUOu28+z33uZf2q4UxwIdYn1CmPGCeobdeLyfeMMrVZoJfhE/K47wiAUteb+bHvpsy9pS5beJjBcI0Cvri0puH4HgOoveMNhenBMVGS68Lo5fr8h root@hadoop002
hadoop003
cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJ3BgltB9uS8oRxoIrHwBsUOwSak2eKF7SqjKD6uacXc5iE6uXvSiZxT8BKhPHczBWQ2s2vd40U616L9SlHbN2rzsED6AdM9zNPvcPEW/SgmC2yJ4HYAJJKo+UAYLHwj9nh5IocwbHTkIxTAmBubvXcKOvjyzB2NMK4T0VAuEvLadySrxCt/cyHBGT0V0h2RAyx0IODSL5+gP/mNJsoou1wq2H18XF2TNYTUZU2aMb4HW99mcCm7Ps451LcGVSHKxoWyr08FaKZyV0vqI2va33JhohzxW7bhHbAsWK1UJE9jWhKbIL1Flmi6TS9mlnFVytoCHc+LU/AKtOS+ZonGx5 root@hadoop003
首先创建authorized_keys文件,然后添加hadoop001中的id_rsa.pub中的内容
touch authorized_keys
cat id_rsa.pub >> authorized_keys
通过xshell工具可以非常方便的通过vim命令编辑authorized_keys文件,把hadoop002和hadoop003的id_rsa.pub文件内容合并到authorized_keys中。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC4X22DpQ8VYtLZsz0bmd8M4DvU6Ixf6YuZ1ss7Y+gJPIL4X/X2bYIk14rRTPY3/N2lG758mh0OJL0ET1c4J+48g/YZ3gXvbeo4WxIfNaVF/5Qk64hTQjrDpT8BmOB0U/rzt3TDndnkKiOLuHsbaCSthkCZEN2Hrn1IcLVYIj5BxlS5Gtb3eFhKElNfFoFsnoIulMirxuqOld0UhSYNNBOcnZoTll/GUdHufDorlR0ADwM1AxbVo4uVPnDk4i1heVEXyL5iySxM5+Z+qYqywGyKHCBNEIBx0TpnCqnBofv0fd+pDNDbNHYbulAMLZbio85WlsSzhpL5Wws8M3LcGWFD root@hadoop001
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0MB7PUJYdVwEr9fKgJ1b8xaODbq4ZX0G/+YrLEj6e6/TNHo/M6U/bEPWkClT14PjI2SKXqVtHgMLDe8aShxHxV7KfXG6KS002lIGXa0bOXdbFIr74GEdJJmL1wLZvbuKEAC8h1DkIsnDLr7/pKTDReN3L1iHgcSqjUHXqXC0cd6tZTfc/oDqZ7q2xmGbdRSB/uKX1stt09+a64AAvQPrCenTS6BP4VfSnY2WCxUOu28+z33uZf2q4UxwIdYn1CmPGCeobdeLyfeMMrVZoJfhE/K47wiAUteb+bHvpsy9pS5beJjBcI0Cvri0puH4HgOoveMNhenBMVGS68Lo5fr8h root@hadoop002
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDJ3BgltB9uS8oRxoIrHwBsUOwSak2eKF7SqjKD6uacXc5iE6uXvSiZxT8BKhPHczBWQ2s2vd40U616L9SlHbN2rzsED6AdM9zNPvcPEW/SgmC2yJ4HYAJJKo+UAYLHwj9nh5IocwbHTkIxTAmBubvXcKOvjyzB2NMK4T0VAuEvLadySrxCt/cyHBGT0V0h2RAyx0IODSL5+gP/mNJsoou1wq2H18XF2TNYTUZU2aMb4HW99mcCm7Ps451LcGVSHKxoWyr08FaKZyV0vqI2va33JhohzxW7bhHbAsWK1UJE9jWhKbIL1Flmi6TS9mlnFVytoCHc+LU/AKtOS+ZonGx5 root@hadoop003
然后通过xftp工具非常方便的把该文件放到hadoop002和hadoop003中的相同路径下
现在就可测试看看ssh无密码登录了,从hadoop001上分别通过ssh直接连接hadoop002和hadoop003,发现无需输入密码可直接登录
配置Hadoop
关闭防火墙
为了防止防火墙原因导致节点之间通信出现问题,首先关闭防火墙并重启,命令如下,在三台虚拟机中分别进行操作#执行以下命令关闭防火墙
[root@hadoop001 ~]systemctl stop firewalld && systemctl disable firewalld
[root@hadoop001 ~]setenforce 0#将SELINUX的值改成disabled
[root@hadoop001 ~]vim /etc/selinux/configSELINUX=disabled
#重启服务器
[root@hadoop001 ~]reboot配置文件修改
首先通过xftp工具把下载的hadoop文件传到虚拟机中,然后解压后,设置环境变量,我的环境变量如下,通过命令vim /etc/profile 编辑配置文件,在文件最后添加以下内容。具体路径各位可根据自己的具体情况设置Hadoop environment
export HADOOP_HOME=/opt/hadoop/hadoop-3.1.1
export PATH=PATH:PATH:PATH:{HADOOP_HOME}/bin
完成后通过source命令刷新环境变量,切记
定位到hadoop目录下,然后配置hadoop的配置文件,这些配置文件全部位于 /opt/hadoop/hadoop-3.1.1/etc/hadoop 文件夹下
hadoop-env.sh
# The java implementation to use. By default, this environment
# variable is REQUIRED on ALL platforms except OS X!
# export JAVA_HOME=
export JAVA_HOME=/usr/lib/java/jdk1.8.0_181
core-site.xml
<configuration><!-- 指定HDFS老大(namenode)的通信地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop001:9000</value></property><!-- 指定hadoop运行时产生文件的存储路径 --><property><name>hadoop.tmp.dir</name><value>/opt/hadoop/data/tmp</value></property>
</configuration>
hdfs-site.xml
<configuration><!-- 设置namenode的http通讯地址 --><property><name>dfs.namenode.http-address</name><value>hadoop001:50070</value></property><!-- 设置secondarynamenode的http通讯地址 --><property><name>dfs.namenode.secondary.http-address</name><value>hadoop002:50090</value></property><!-- 设置namenode存放的路径 --><property><name>dfs.namenode.name.dir</name><value>/opt/hadoop/data/name</value></property><!-- 设置hdfs副本数量 --><property><name>dfs.replication</name><value>2</value></property><!-- 设置datanode存放的路径 --><property><name>dfs.datanode.data.dir</name><value>/opt/hadoop/data/datanode</value></property><property><name>dfs.permissions</name><value>false</value></property>
</configuration>
mapred-site.xml
<configuration><!-- 通知框架MR使用YARN --><property><name>mapreduce.framework.name</name><value>yarn</value></property><property> <name>mapreduce.application.classpath</name> <value> /opt/hadoop/hadoop-3.1.1/etc/hadoop, /opt/hadoop/hadoop-3.1.1/share/hadoop/common/*, /opt/hadoop/hadoop-3.1.1/share/hadoop/common/lib/*, /opt/hadoop/hadoop-3.1.1/share/hadoop/hdfs/*, /opt/hadoop/hadoop-3.1.1/share/hadoop/hdfs/lib/*, /opt/hadoop/hadoop-3.1.1/share/hadoop/mapreduce/*, /opt/hadoop/hadoop-3.1.1/share/hadoop/mapreduce/lib/*, /opt/hadoop/hadoop-3.1.1/share/hadoop/yarn/*, /opt/hadoop/hadoop-3.1.1/share/hadoop/yarn/lib/* </value> </property>
</configuration>
yarn-site.xml
<configuration><property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandle</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>hadoop001:8025</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>hadoop001:8030</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>hadoop001:8040</value> </property>
</configuration>
$HADOOP_HOME/sbin/start-dfs.sh $HADOOP_HOME/sbin/stop-dfs.sh
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
$HADOOP_HOME/sbin/start-yarn.sh $HADOOP_HOME/sbin/stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
masters
需要创建一个master文件,配置secondary namenode的主机
[root@hadoop001 hadoop]# touch /opt/hadoop/hadoop-3.1.1/etc/hadoop/masters
[root@hadoop001 hadoop]# vim /opt/hadoop/hadoop-3.1.1/etc/hadoop/masters
#添加
hadoop002
workers
[root@hadoop001 hadoop]# vim /opt/hadoop/hadoop-3.1.1/etc/hadoop/workers
#添加
hadoop002
hadoop003
创建文件夹
[root@hadoop001 hadoop]# mkdir -p /opt/hadoop/data/tmp
[root@hadoop001 hadoop]# mkdir -p /opt/hadoop/data/name
[root@hadoop001 hadoop]# mkdir -p /opt/hadoop/data/datanode
复制到其他主机
[root@hadoop001 opt]# scp -r /opt/hadoop hadoop002:/opt/
[root@hadoop001 opt]# scp -r /opt/hadoop hadoop003:/opt/
修改hadoop002、hadoop003 环境变量,修改完成后刷新环境变量
启动Hadoop
第一次启动需要格式化,然后运行脚本启动即可
[root@hadoop001 opt]# /opt/hadoop/hadoop-3.1.1/bin/hdfs namenode -format
[root@hadoop001 opt]# /opt/hadoop/hadoop-3.1.1/sbin/start-all.sh
启动后通过浏览器访问hadoop001上的站点地址,可以查看当前hadoop状态,到此为止环境搭建完成。
配置过程中碰到的问题,参考前辈博客:https://my.oschina.net/orrin/blog/1816023
Hadoop学习环境搭建相关推荐
- hadoop ubantu环境搭建_ubuntu hadoop学习 环境搭建
单机模式 下载hadoop-2.7.3.tar.gz 并解压缩 安装java环境 sudo apt install openjdk-8-jdk 设置环境变量 vim /etc/profile expo ...
- Hadoop基础环境搭建完整版
Hadoop基础环境搭建(转载尚硅谷) 说明 个人学习记录 基于虚拟机搭建,需要提前准备虚拟机环境 搭建版本:hadoop-3.1.3 搭建HDFS和yarn 提前准备Hadoop安装包:hadoop ...
- Hadoop入门·环境搭建
Hadoop入门·环境搭建 1 步骤 硬件环境准备 资源下载 环境部署 2 分布式集群环境部署 2.1 硬件环境准备 本案例中使用三台服务器(仅作为学习案例),分别为Hadoop102,Hadoop1 ...
- 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)...
写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...
- 大数据单机学习环境搭建(5)Hive建表DDL详解
专题:大数据单机学习环境搭建和使用 1. Hive建表简单示例 1.1.Hive建表语句 1.2.表详细信息 1.3.数据展示 2. Hive建表语法详解 3.拓展1:复杂数据分割 4.拓展2:事务表 ...
- Hadoop入门(上):大数据特点、大数据前景、大数据组织结构、Hadoop组成、Hadoop版本介绍、Hadoop运行环境搭建、CentOS6安装JDK、安装Hadoop、Hadoop目录结构
资料来源于尚硅谷 本篇文章目录 第1章·大数据概论 1.1.大数据概念. 1.2.大数据特点(4V) 1.3.大数据应用场景 1.4.大数据发展前景 1.5·大数据部门业务流程分析. 1.6·大数据部 ...
- 大数据单机学习环境搭建(9)Spark单节点安装与pyspark使用
包含sparksql的完整使用案例,请务必耐心看完 专题:大数据单机学习环境搭建和使用 1.Spark安装 2.Spark配置 2.1配置环境变量 2.2spark客户端 3.Spark使用 3.1环 ...
- Miniconda3+PyTorch1.7.1(GPU版)+Win10_x64+GTX1060深度学习环境搭建
写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 硬件信息: 系统:win10家庭中文版 CPU:i7-7700HQ 内存:16GB 显卡:GTX1060 目录 一.确定 ...
- Hadoop集成环境搭建
Hadoop集成环境搭建 一.准备工作 首先,我们需要准备好Java和Hadoop的安装包,我这里使用的包名为:jdk-8u144-linux-x64.tar.gz 和 hadoop-2.8.0.ta ...
最新文章
- php.ini网站空白,php配置问题:拷贝php.ini后,测试页面无法显示(显示空白)
- codeforces D Prefixes and Suffixes(kmp)
- bzoj4034: [HAOI2015]树上操作
- undefind_undefined什么意思
- CYQ.Data 轻量数据层之路 V3.0版本发布-Xml绝对杀手(三十二)
- 百度图神经网络学习——day05:图神经网络进阶模型
- Ubuntu 18.04配置 apache https 访问
- find linux 目录深度_15种方法找出Linux系统中最大的N个文件,你懂几种?
- KML和KMZ 用什么软件打开?
- 命运2服务器维修,命运2服务器
- QT资源库中图片的调用
- 用python还需要stata吗_极冷知识点——Stata/Python/R自带数据导入(附代码)
- 第十二届蓝桥杯大赛软件赛省赛 Java 大学 B 组(2021年4月18日)
- c程序语言难么,c语言难不难
- 2.SQL的CRUD操作
- 解决GTX1050Ti显卡下安装Deepin15.7完成后重启卡logo问题
- Appium-Press keycode(按键代码)
- ArcGIS ArcTooBox中的工具执行没有结果的处理办法
- 图像处理----图像模糊(高斯模糊)
- Anchor-free目标检测综述 -- Dense Prediction篇
热门文章
- DophinScheduler ui部分 核心代码详细解析——重中之重的src文件夹里究竟有何种玄机
- 软件开发过程培训总结
- Oracle Spacial(空间数据库)sdo_lrs包函数
- Rplidar 报错提示:Error, operation time out. RESULT_OPERATION_TIMEOUT!
- PC休闲游戏~植物大战僵尸-植物连连看v1.0正式发布啦(更新iPhone版本)!
- 2018-2019-2 20175227张雪莹《Java程序设计》实验五 《网络编程与安全》
- ife2018 零基础学院 day 4
- HTML手机签到转盘抽奖页面模板,手机端转盘抽奖代码分享
- C#编程练习(03):北斗时间系统、GPS时间系统及其与UTC时间系统之间的转换
- HTTP强缓存和协议缓存