Hadoop 2.7.3 分布式集群安装
1. 集群规划:
192.168.1.252 palo252 Namenode+Datanode
192.168.1.253 palo253 YarnManager+Datanode+SecondaryNameNode
192.168.1.254 palo254 Datanode
2. 设定固定IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
NAME=eth0
UUID=7ac09286-c35b-4f15-a9ba-701c093832bf
DEVICE=eth0
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_PRIVACY=no
ONBOOT=yes
DNS1=192.168.1.1
IPADDR=192.168.1.252 #三台机器都要分别设置
PREFIX=
GATEWAY=192.168.1.1
3. 修改主机名:
192.168.1.252
hostnamectl set-hostname palo252
hostnamectl --static set-hostname palo252
192.168.1.253
hostnamectl set-hostname palo253
hostnamectl --static set-hostname palo253
192.168.1.254
hostnamectl set-hostname palo254
hostnamectl --static set-hostname palo254
4. 修改hosts文件
vi /etc/hosts
127.0.0.1 localhost
:: localhost 192.168.1.252 palo252
192.168.1.253 palo253
192.168.1.254 palo254
5. 安装JDK(所有节点)
具体到oracle官网下载
6. SSH免密登录
Precondition: install ssh server if not avalible
#install ssh client and ssh-server
sudo yum install -y openssl openssh-server
#enable ssh server to start at system start up
systemctl enable sshd.service
#start ssh server service
systemctl start sshd.service
A) 每台机器生成访问秘钥,复制到192.168.1.252:/home/workspace目录下
192.168.1.252:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
cp ~/.ssh/authorized_keys /home/workspace/authorized_keys252
rm -rf ~/.ssh/authorized_keys #删除公钥文件
192.168.1.253:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys 192.168.1.252:/home/workspace/authorized_keys253
rm -rf ~/.ssh/authorized_keys #删除公钥文件
192.168.1.254:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys 192.168.1.252:/home/workspace/authorized_keys254
rm -rf ~/.ssh/authorized_keys #删除公钥文件
B) 在192.168.1.252上将所有的公钥合并成一个公钥文件
cat /home/workspace/authorized_keys252 >> /home/workspace/authorized_keys
cat /home/workspace/authorized_keys253 >> /home/workspace/authorized_keys
cat /home/workspace/authorized_keys254 >> /home/workspace/authorized_keys
C) 将合并后的公钥文件复制到集群中的各个主机中
scp /home/workspace/authorized_keys 192.168.1.253:~/.ssh/
scp /home/workspace/authorized_keys 192.168.1.254:~/.ssh/
cp /home/workspace/authorized_keys ~/.ssh/ #因为目前在252主机中,所以使用的命令为cp而不是scp
注:也可以借助 ssh-copy-id -i ~/.ssh/id_rsa.pub {ip or hostname}来往远程机器复制公钥
以本集群的配置为例,以上ABC三步的操作亦可以通过下面的操作来完成,操作方法如下:
192.168.1.252,192.168.1.253,192168.1.254 均做以下操作,就完成了私钥的生成,公钥的分发
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa #生成本机公钥和私钥
ssh-copy-id -i ~/.ssh/id_rsa.pub palo252 #复制本机的公钥到palo252机器上,默认会存储在远程机器的~/.ssh/authorized_keys文件中,如果此文件不存在,会创建该文件
ssh-copy-id -i ~/.ssh/id_rsa.pub palo253 #复制本机的公钥到palo252机器上,默认会存储在远程机器的~/.ssh/authorized_keys文件中,如果此文件不存在,会创建该文件
ssh-copy-id -i ~/.ssh/id_rsa.pub palo254 #复制本机的公钥到palo252机器上,默认会存储在远程机器的~/.ssh/authorized_keys文件中,如果此文件不存在,会创建该文件
D) 每台机器:
chmod ~ #当前用户根目录访问权限
chmod ~/.ssh/ #.ssh目录权限
chmod ~/.ssh/id_rsa #id_rsa的访问权限
chmod ~/.ssh/id_rsa.pub #id_rsa.pub的访问权限
chmod ~/.ssh/authorized_keys #authorized_keys的访问权限
说明:
如果ssh 登录的时候失败或者需要密码才能登陆,可以查看sshd的日志信息。日志信息目录为,/var/log/secure
你会发现如下字样的日志信息。
Jul 22 14:20:33 v138020.go sshd[4917]: Authentication refused: bad ownership or modes for directory /home/edw
则需要设置权限:sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。
用户目录权限为 755 或者 700,就是不能是77x。
.ssh目录权限一般为755或者700。
rsa_id.pub 及authorized_keys权限一般为644
rsa_id权限必须为600
可通过来查看ssh过程中的日志.
cat /var/log/secure
7. 配置hadoop
7-1) 解压
下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
tar xzvf hadoop-2.7..tar.gz -C /opt/
7-2) 创建存放数据的目录(必须事先创建好,否则会报错)
mkdir -p /opt/hadoop-2.7./data/full/tmp/
mkdir -p /opt/hadoop-2.7./data/full/tmp/dfs/name
mkdir -p /opt/hadoop-2.7./data/full/tmp/dfs/data
7-3) 配置/opt/hadoop-2.7.3/etc/hadoop下面的配置文件
cd opt/hadoop-2.7./etc/hadoop #定位到配置文件目录
7-3-1) core-site.xml
<configuration>
<!-- 指定HDFS中NameNode的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://127.0.0.1:9000</value>
<description>hdfs://127.0.0.1:9000</description>
</property>
<!-- 指定hadoop运行时产生文件的存储目录 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/lenmom/workspace/software/hadoop-2.7.3/data/tmp</value>
<description>是hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配 置namenode和datanode的存放位置,默认就放在这个路径中</description>
</property>
<!--启用 webhdfs-->
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
<description>启用 webhdfs</description>
</property> <!--use hadoop native library-->
<property>
<name>hadoop.native.lib</name>
<value>true</value>
<description>Should native hadoop libraries, if present, be used.</description>
</property>
</configuration>
7-3-2) yarn-site.xml
<configuration>
<property>
<!-- reducer获取数据的方式 -->
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!-- 指定YARN的ResourceManager的地址 -->
<name>yarn.resourcemanager.hostname</name>
<value>palo253</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>palo253:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>palo253:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>palo253:8031</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>10240</value>
</property>
<property>
<name>yarn.scheduler.minimum-allocation-mb</name>
<value>1024</value>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
</configuration>
7-3-3) slaves
palo252
palo253
palo254
7-3-4) mapred-site.xml
<configuration>
<!-- 指定mr运行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>palo252:</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>palo252:</value>
</property>
</configuration>
7-3-5) hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>不能大于datanode的数量,默认为3</description>
</property>
<!-- 设置secondname的端口 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>palo253:50090</value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:/opt/hadoop-2.7.3/data/full/tmp/dfs/data</value>
<description>用于确定将HDFS文件系统的数据保存在什么目录下,可以将这个参数设置为多个分区上目录,即可将HDFS建立在不同分区上。</description>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:/opt/hadoop-2.7.3/data/full/tmp/dfs/name</value>
<description>这个参数用于确定将HDFS文件系统的元信息保存在什么目录下,如果这个参数设置为多个目录,那么这些目录下都保存着元信息的多个备份.</description>
</property> <!--设置 hadoop的代理用户-->
<property>
<name>hadoop.proxyuser.hadoop.hosts</name>
<value>*</value>
<description>配置成*的意义,表示任意节点使用 hadoop 集群的代理用户hadoop 都能访问 hdfs 集群</description>
</property>
<property>
<name>hadoop.proxyuser.hadoop.groups</name>
<value>*</value>
<description>代理用户所属的组</description>
</property>
</configuration>
7-3-6) hadoop-env.sh
配置JAVA_HOME
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License. # Set Hadoop-specific environment variables here. # The only required environment variable is JAVA_HOME. All others are
# optional. When running a distributed configuration it is best to
# set JAVA_HOME in this file, so that it is correctly defined on
# remote nodes. # The java implementation to use.
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/lib/jvm/java-1.8.-openjdk-1.8.0.181-.b13.el7_5.x86_64
8. 配置环境变量(每台机器都必须做)
vi /etc/profile
在文件尾部添加:
#####set jdk enviroment
export JAVA_HOME=/usr/java/jdk1..0_172-amd64
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH ##### set hadoop_home enviroment
export HADOOP_HOME=/opt/hadoop-2.7.
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export YARN_HOME=/home/lenmom/workspace/software/hadoop-2.7.
export YARN_CONF_DIR=${YARN_HOME}/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
###enable hadoop native library
export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
命令行终端执行 source /etc/profile,让配置的环境变量生效
source /etc/profile ####make the env variable to take effect right now.
9. 启动:
NameNode:(master 252)
#格式化namenode
hdfs namenode -format
#启动dfs
start-dfs.sh # (master )
#启动Yarn: yarn节点(253)
#注意:Namenode和ResourceManger如果不是同一台机器,
#不能在NameNode上启动 yarn,
#应该在ResouceManager所在的机器上启动yarn。
start-yarn.sh
#验证启动情况:
jps #查看java进程
http://namenode:50070/
10 Hadoop启动停止方式
)各个服务组件逐一启动
分别启动hdfs组件: hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode
启动yarn: yarn-daemon.sh start|stop resourcemanager|nodemanager )各个模块分开启动(配置ssh是前提)常用
start|stop-dfs.sh start|stop-yarn.sh )全部启动(不建议使用)
start|stop-all.sh 4) 开启historyserver(任意节点启动即可)
mr-jobhistory-daemon.sh start|stop historyserver
reference:
1. https://www.cnblogs.com/baierfa/p/6689022.html
Hadoop 2.7.3 分布式集群安装的更多相关文章
- CentOS 6+Hadoop 2.6.0分布式集群安装
1.角色分配 IP Role Hostname 192.168.18.37 Master/NameNode/JobTracker HDP1 192.168.18.35 Slave/DataNode/T ...
- hadoop学习之hadoop完全分布式集群安装
注:本文的主要目的是为了记录自己的学习过程,也方便与大家做交流.转载请注明来自: http://blog.csdn.net/ab198604/article/details/8250461 要想深入的 ...
- (转)ZooKeeper伪分布式集群安装及使用
转自:http://blog.fens.me/hadoop-zookeeper-intro/ 前言 ZooKeeper是Hadoop家族的一款高性能的分布式协作的产品.在单机中,系统协作大都是进程级的 ...
- 菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章
菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个需要极度耐心和体力的细致工作 ...
- HBase 1.2.6 完全分布式集群安装部署详细过程
Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Bigtable思想的开源实现,可在廉价的PC Server上搭建大规模结构化存 ...
- ZooKeeper伪分布式集群安装及使用
ZooKeeper伪分布式集群安装及使用 让Hadoop跑在云端系列文章,介绍了如何整合虚拟化和Hadoop,让Hadoop集群跑在VPS虚拟主机上,通过云向用户提供存储和计算的服务. 现在硬件越来越 ...
- 菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章
菜鸟玩云计算之十九:Hadoop 2.5.0 HA 集群安装第2章 cheungmine, 2014-10-26 在上一章中,我们准备好了计算机和软件.本章开始部署hadoop 高可用集群. 2 部署 ...
- 一张图讲解最少机器搭建FastDFS高可用分布式集群安装说明
很幸运参与零售云快消平台的公有云搭建及孵化项目.零售云快消平台源于零售云家电3C平台私有项目,是与公司业务强耦合的.为了适用于全场景全品类平台,集团要求项目平台化,我们抢先并承担了此任务.并由我来主 ...
- Hadoop完全分布式集群安装
转载请注明原地址,谢谢! 本文目的是教大家配置Hadoop的完全分布式的集群,除了完全分布式还有两种分别是单节点和伪分布式部署.伪分布式只需要一台虚拟机,配置的东西也相对较少,大多用作代码调试,大家稍 ...
随机推荐
- Ubuntu:搜狗输入法不能输入中文
搜狗输入法不能输入中文 问题描述 可以打开搜狗输入法,可以打英文,但是不能切换成中文. 其他输入法正常使用(这个可以判断是不是fcitx是不是出现错误). 有一个关于sogou的内部错误提示 解决方法 ...
- C# zedgraph利用另一窗口取得的串口数据绘图
C# zedgraph利用另一窗口获得的串口数据绘图第一次用zedgraph,非常不熟悉,网上很多内容看的云里雾里... 这个程序主界面接收串口数据,而另外一个窗口进行实时曲线绘图,要怎么样实现for ...
- JSP--TOMCAT-MYSQL web页面删除
deleteStudentjsp.jsp页面代码 <%@ page language="java" contentType="text/html; charset= ...
- Linux C 文件操作函数(~上善止水~)
翻翻笔记,整理一下 C 语言中的文件操作函数 ~~~~~~,多注意细节,maybe 细节决定成败~ 1. fopen /* fopen(打开文件) * * 相关函数 open,fclose * * 表 ...
- 使用MySQLTuner-perl对MySQL进行优化
项目地址https://github.com/major/MySQLTuner-perl.git 抄一把说明,不翻译了,累-- MySQLTuner is a script written in Pe ...
- 【c++基础】如何获取工程项目当前路径
工程项目当前路径 #include <direct.h> int main( ) { ]; _getcwd(buffer, ); std::cout << buffer < ...
- Softmax回归介绍
把输入值当成幂指数求值,再正则化这些结果值.这个幂运算表示,更大的证据对应更大的假设模型(hypothesis)里面的乘数权重值.反之,拥有更少的证据意味着在假设模型里面拥有更小的乘数系数.假设模型里 ...
- Elasticsearch 索引的全量/增量更新
Elasticsearch 索引的全量/增量更新 当你的es 索引数据从mysql 全量导入之后,如何根据其他客户端改变索引数据源带来的变动来更新 es 索引数据呢. 首先用 Python 全量生成 ...
- 在Docker中运行crontab
在把自己的项目通过Docker进行打包时,由于项目中用到了crontab,不过使用到的基础镜像python:3.6-slim并没有安装这项服务,记录下在镜像中安装和配置crontab的过程. Dock ...
- 实习第二天-今年第一场雨-方法的重载(马上想到println()函数和abs(函数))
在C语言中 调用函数abs()返回一个整数的绝对值, fabs(返回一个单精度浮点型的绝对值)若要返回这些数的绝对值,则必须记住这些函数的名字 java可以用方法的重载:即是方法名必须相同,参数必须不 ...