hadoop安装和配置 详解
伪分布式安装
关闭防火墙:学习环境可以直接把防火墙关闭掉。用root用户登录后,执行查看防火墙状态。
查看防火墙状态
firewall-cmd --state
停止防火墙
[root@localhost ~]# systemctl stop firewalld.service
禁止防火墙开机自启
[root@localhost ~]# systemctl disable firewalld.service
关闭selinux:selinux是Linux一个子安全机制,学习环境可以将它禁用。
[root@localhost ~]# vi /etc/selinux/config
将 SELINUX=enforcing改为 SELINUX=disabled
安装JDK
安装配置jdk
创建目录
[root@localhost ~]# mkdir /opt/install/
解压
[root@@localhost ~]# tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/install/
配置环境变量
[root@localhost jdk1.8.0_144]# vi /etc/profile
加入配置
export JAVA_HOME=/opt/install/jdk1.8.0_144
export PATH=PATH:PATH:PATH:JAVA_HOME/bin
保存后刷新环境变量
[root@localhost jdk1.8.0_144]# source /etc/profile
刷新完 执行命令验证JDK是否安装成功
[root@localhost ~]# java –version
注意:Hadoop机器上的JDK,最好是Oracle的Java JDK,不然会有一些问题,比如可能没有JPS命令。 如果安装了其他版本的JDK,卸载掉。
安装hadoop
下载地址:https://archive.apache.org/dist/hadoop/common/
#创建一个名字为hadoop的普通用户 后面使用hadoop用户启动hadoop
[root@localhost ~]# useradd hadoop
[root@localhost ~]# passwd hadoop
给hadoop用户sudo权限
[root@localhost ~]# vim /etc/sudoers
#设置权限,学习环境可以将hadoop用户的权限设置的大一些,但是生产环境一定要注意普通用户的权限限制。
root ALL=(ALL) ALL
hadoop ALL=(root) NOPASSWD:ALL
#注意:如果root用户无权修改sudoers文件,先手动为root用户添加写权限。
[root@bigdata-senior01 ~]# chmod u+w /etc/sudoers
#切换到hadoop用户
[root@localhost ~]# su - hadoop
[hadoop@localhost ~]$
设置hadoop用户SSH免密登陆
[hadoop@localhost ~]# ssh-keygen -t rsa # 生产密钥
连续三次回车
将密钥发送给需要登陆本机的机器,这里只有一台机器 所以发给自己
[hadoop@localhost ~]# ssh-copy-id hadoop@localhost
或则使用命令
cat ~/.ssh/id_*.pub | ssh root@10.××.××.5 ‘cat >> .ssh/authorized_keys’
将公钥复制到需要免密登录的机器
测试ssh
[hadoop@localhost ~]# ssh hadoop@localhost
创建存放hadoop文件的目录
[hadoop@localhost ~]$ sudo mkdir /opt/modules
#将hadoop文件夹的所有者指定为hadoop用户,如果存放hadoop的目录的所有者不是hadoop,之后hadoop运行中可能会有权限问题,那么就将所有者改为hadoop。
[hadoop@localhost ~]# sudo chown -R hadoop:hadoop /opt/modules
解压Hadoop目录文件
#复制hadoop-3.2.1.tar.gz到/opt/modules目录下。解压hadoop-3.2.1.tar.gz。
[hadoop@localhost ~]# cd /opt/modules
[hadoop@localhost hadoop]# tar -zxvf hadoop-3.2.1.tar.gz
解压到指定目录: tar -zxvf hadoop-3.2.1.tar.gz -C 【指定目录】
配置Hadoop
#配置Hadoop环境变量
[hadoop@localhost hadoop]# vim /etc/profile
#追加配置:export HADOOP_HOME="/opt/modules/hadoop-3.2.1"
export PATH=HADOOPHOME/bin:HADOOP_HOME/bin:HADOOPHOME/bin:HADOOP_HOME/sbin:$PATH
#执行:source /etc/profile 使得配置生效
#验证HADOOP_HOME参数:
[hadoop@localhost /]$ echo $HADOOP_HOME
#配置 hadoop-env.sh、mapred-env.sh、yarn-env.sh文件的JAVA_HOME参数
[hadoop@localhost ~]$ sudo vim ${HADOOP_HOME}/etc/hadoop/hadoop-env.sh
#修改JAVA_HOME参数为:
export JAVA_HOME="/opt/modules/jdk1.8"
core-site.xml
<configuration><property><!--指定namenode的地址--><name>fs.defaultFS</name><value>hdfs://ip:9000</value> </property><property><name>hadoop.http.staticuser.user</name><value>hadoop</value></property><property><name>dfs.permissions.enabled</name><value>false</value></property> <property><name>hadoop.proxyuser.hadoop.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.hadoop.groups</name><value>*</value></property></configuration>
hdfs-site.xml
<configuration><property><!--提供服务的NS逻辑名称, --><name>dfs.nameservices</name><value>hadoop-cluster</value></property><property><!--指定hdfs中namenode的存储位置--><name>dfs.namenode.name.dir</name><value>file:///data/hadoop/hdfs/nn</value></property><property><name>dfs.namenode.checkpoint.dir</name><value>file:///data/hadoop/hdfs/snn</value></property><property><name>dfs.namenode.checkpoint.edits.dir</name><value>file:///data/hadoop/hdfs/snn</value></property><property><!--指定hdfs中datanode的存储位置--><name>dfs.datanode.data.dir</name><value>file:///data/hadoop/hdfs/dn</value></property><!--webui页面可以操作文件--><property><name>dfs.webhdfs.enabled</name><value>true</value></property>
</configuration>
需要将上述配置中涉及到的目录先创建出来
sudo mkdir /data/hadoop/hdfs
sudo mkdir /data/hadoop/yarn
sudo mkdir /data/hadoop/hdfs/dn
sudo mkdir /data/hadoop/hdfs/nn
sudo mkdir /data/hadoop/hdfs/snn
sudo mkdir /data/hadoop/yarn/nm
mapred-site.xml
<!-- yarn 与 MapReduce相关 --><configuration><property>
<!--告诉hadoop以后MR(Map/Reduce)运行在YARN上--><name>mapreduce.framework.name</name><value>yarn</value></property><property>
<!--为MR应用程序主进程添加了环境变量--><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> </configuration>
yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties --><!-- 指定ResourceManager的地址--><property><name>yarn.resourcemanager.hostname</name><value>10.××.××.7</value></property><property>
<!--nodeManager获取数据的方式是shuffle--><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.nodemanager.local-dirs</name><value>file:///data/hadoop/yarn/nm</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>
</configuration>
格式化NameNode
目的作用:格式化hdfs系统,并且生成存储数据块的目录
如果启动过hadoop后需要格式化 需要清空hidfs-site.xml中配置的几个目录
[root@localhost hadoop-3.2.1]# hadoop namenode -format
Hadoop起停命令
start-all.sh
stop-all.sh
启动成后 jps查看进程
访问yarn web页面
http://10.××.××.7:8088
访问hdfs web页面
http://10.××.××.7:9870
HDFS上测试创建目录、上传、下载文件
#HDFS上创建目录
bin/hdfs dfs -mkdir /demo1
上传本地文件到HDFS上
bin/hdfs dfs -put
${HADOOP_HOME}/etc/hadoop/core-site.xml /demo1
#读取HDFS上的文件内容
bin/hdfs dfs -cat /demo1/core-site.xml
#从HDFS上下载文件到本地
bin/hdfs dfs -get /demo1/core-site.xml
#修改文件权限
hdfs dfs -chmod -R 755 /user
#创建测试用的Input文件,创建输入目录:
hdfs dfs -mkdir -p /wordCountDemo/input
#将wc.input文件上传到HDFS的/wordCountDemo/input目录中:
hdfs dfs -put /data/hadoop/tmp/wc.input /wordCountDemo/input
#运行WordCount MapReduce Job
bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar wordcount /wordCountDemo/input /wordCountDemo/output
#查看输出结果目录
bin/hdfs dfs -ls /wordCountDemo/output
#output目录中有两个文件,_SUCCESS文件是空文件,有这个文件说明Job执行成功。part-r-00000文件是结果文件,
其中-r-说明这个文件是Reduce阶段产生的结果,mapreduce程序执行时,可以没有reduce阶段,
但是肯定会有map阶段,如果没有reduce阶段这个地方有是-m-。一个reduce会产生一个part-r-开头的文件。查看输出文件内容。
开启历史服务功能
在mapred-site.xml中加上下面的配置
<property><name>mapreduce.jobhistory.done-dir</name><value>/data/hadoop/history/done</value></property><property><name>mapreduce.jobhistory.intermediate-done-dir</name><value>/data/hadoop/history/done_intermediate</value></property><!-- 设置jobhistoryserver 没有配置的话 history入口不可用 --><property><name>mapreduce.jobhistory.address</name><value>10.××.××.7:10020</value></property><!-- 配置web端口 --><property><name>mapreduce.jobhistory.webapp.address</name><value>10.××.××.7:19888</value></property>
开启/关闭历史服务命令
mr-jobhistory-daemon.sh start historyserver
mr-jobhistory-daemon.sh stop historyserver
开启成功后可以通过10.××.××.7:19888访问webUI
执行一个任务
[hadoop@localhost hadoop-3.2.1]$ bin/yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.5.0.jar wordcount /wordcountdemo/input /wordcountdemo/output1#
开启日志聚集
在yarn-site.xml文件里配置启用日志聚集。
<property><name>yarn.log-aggregation-enable</name><value>true</value><description>是否启用日志聚集功能</description>
</property>
<property><name>yarn.log-aggregation-status.time-out.ms</name><value>600000</value>
</property>
<property> <name>yarn.log-aggregation.retain-seconds</name> <value>106800</value> <description>设置日志保留时间,单位是秒</description>
</property>
<property><name>yarn.log.server.url</name><value>http://10.××.××.7:19888/jobhistory/logs</value>
</property>
重启hadoop
hadoop安装和配置 详解相关推荐
- Nagios远程监控软件的安装与配置详解
Nagios远程监控软件的安装与配置详解 作者:redhat_hu Nagios是一款功能强大的网络监视工具,它可以有效的监控windows.linux.unix主机状态以及路由器交换机的网络设置,打 ...
- Julia的安装与配置详解(包含在Ubuntu 18.04和Windows 10系统上Julia的安装)
Julia的安装与配置详解((包含在Ubuntu 18.04和Windows 10系统上Julia的安装) Julia的安装 使用二进制文件安装Julia 在Ubuntu上安装Julia 在Windo ...
- gulp的安装和配置详解
gulp的安装和配置详解 1.安装node.js 先下载一个node.js安装包. 下载完成后双击即可. 打开cmd,命令行输入node -v,回车输出nodejs版本号,表示安装成功. 命令行输入n ...
- node.js卸载、安装、配置详解
node.js卸载.安装.配置详解 一. node.js卸载 二.下载安装 2.1 下载 2.2 安装 2.2.1 选择msi安装 2.2.2 选择zip安装 三.配置 3.1 环境变量配置 3.2 ...
- Gradle安装和配置详解
Gradle安装和配置详解 gradle是基于Apache Ant和Apache Maven概念的项目自动化构建开源工具,也提供了很多第三方插件.在Java Web项目中通常会用到 java.war. ...
- keepalived介绍、安装及配置详解
文章目录 keepalived简介 keeplived和LVS关系 VRRP工作原理 keepalived体系结构及工作原理 keepalived安装 keepalived配置详解 keepalive ...
- Linux中Nginx安装与配置详解及常见问题
3 Nginx安装 3.1 安装前的准备 1)准备 pcre-8.12.tar.gz.该文件为正则表达式库.让nginx支持rewrite需要安装这个库. 2) 准备 nginx-1. ...
- Tomcat安装及配置详解
转载:http://www.ttlsa.com/tomcat/tomcat-install-and-configure/ 一,Tomcat简介 Tomcat 服务器是一个免费的开放源代码的Web 应用 ...
- 01 Redis安装、配置详解、数据备份与恢复
缓存简介 简介 缓存是为了调节速度不一致的两个或者多个不同的物质的速度,在中间对速度访问较快的一方起到一个加速访问速度较慢的一方的作用,比如cpu的一级,二级缓存是为了保存cpu最近经常访问的数据,内 ...
- uWSGI的安装及配置详解
uWSGI是一个Python Web服务器,它实现了WSGI协议.uwsgi.http等协议,常在部署Django或Flask开发的Python Web项目时使用,作为连接Nginx与应用程序之间的桥 ...
最新文章
- MD5算法之C#程序
- 《强化学习周刊》第34期:牛津、谷歌、Facebook等 | 自动强化学习 (AutoRL):研究综述和开放性问题...
- 通过脚本案例学习shell(二) --- 通过线性显示/etc/passwd内容了解while read用法
- springboot websocket_SpringBoot 集成 WebSocket 实现前后端消息互传
- AutoMake文档
- 为什么SpringBoot如此受欢迎?如何有效地学习SpringBoot?
- python标准库模块_Python标准库模块之heapq
- matlab wc wp,数字信号处理MATLAB习题.PDF
- python if and函数_逻辑函数And,OR,IF
- C++——《算法分析》实验壹——二分搜索算法
- upupw 安装thinkcmf 5.0白屏问题
- 红帽7.1安装Zabbix 3.4
- imp-00058: 遇到 oracle 错误 12560,MP-00058: 遇到 ORACLE 错
- 为什么游戏盒子源码那么重要?(不搞清楚游戏盒子源码,游戏代理很难顺利)(远离那些免费游戏盒子源码,会变得不幸)
- 详解MES系统在钢铁企业的应用分析
- 大数据学习---HIVE入门SQL学习
- 【笔记】统计pdf文件中的字数
- 批量图片验证模型错误: OP_REQUIRES failed at save_restore_v2_ops.cc:184 : Not found: Key conv1_1/bias not found
- 为什么计算机连不上无线网络,笔记本为什么连不上无线网|笔记本电脑无法连接WiFi的多种解决方法...
- AiHi+翼次元学院儿童自然感知实践“几米小甜田”+优慧码| Wit++
热门文章
- android viewflipper 滑动事件,Android真正简单的教程-第十二枪(ViewFlipper实现滑动效果)...
- bootstrap table背景_bootstrap table给行怎么加背景色
- python简明教程_03
- STL源码剖析heap
- Python简单游戏代码
- java类与对象实验报告心得体会_java实验报告类与对象
- python怎么查询帮助信息_Python 查看模块的帮助文档,方法和帮助信息
- 2016年中国OTT盒子行业市场现状及发展前景分析
- burp放包_详解BurpSuite软件 请求包 HTTP (9.23 第十天)
- JavaSE详细教程.1