Hadoop2.6.0完全分布式安装

1、修改主机名称

对master/slave1/slave2同时配置为Master/Slave1/Slave2

master@Master:~$ sudo gedit /etc/hostname


 上述3个虚机结点均需要进行以上步骤

 

2、填写主机IP

对master/slave1/slave2同时配置

master@Master:~$ sudo gedit /etc/hosts

 

192.168.48.128 master
192.168.48.129 slave1
192.168.48.130 slave2

 

 上述3个虚机结点均需要进行以上步骤

 

 

3、建立hadoop用户组及新用户

 

对master/slave1/slave2同时配置

为hadoop集群专门设置一个用户组及用户

master@Master:~$ sudo groupadd hadoop    //设置hadoop用户组

master@Master:~$ sudo useradd -s /bin/bash -d /home/hnu -m hnu -g hadoop   //添加一个hnu用户,此用户属于hadoop用户组。

master@Master:~$ sudo passwd hnu   //设置用户hnu登录密码

master@Master:~$ su hnu  //切换到hnu用户中

 

上述3个虚机结点均需要进行以上步骤

 

 

4、 配置ssh免密码连入

 

Ubuntu14.04系统下:

对master/slave1/slave2同时配置

master@Master:~$ sudo apt-get install openssh-client=1:6.6p1-2ubuntu1

master@Master:~$ sudo apt-get install openssh-server

上述3个虚机结点均需要进行以上步骤

 

(1) 每个结点分别产生公私密钥。

hnu@Master:~$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

以上命令是产生公私密钥,产生目录在用户主目录下的.ssh目录中,如下:

hnu@Master:~$ cd .ssh

hnu@Master:~$ ls

Id_dsa.pub为公钥,id_dsa为私钥,紧接着将公钥文件复制成authorized_keys文件,这个步骤是必须的,过程如下:

hnu@Master:~/.ssh$ cat id_dsa.pub >> authorized_keys

hnu@Master:~/.ssh$ ls

用上述同样的方法在剩下的两个结点中如法炮制即可。

 

 上述3个虚机结点均需要进行以上步骤

 

 

(2)本机ssh免密码登录测试

hnu@Master:~$ ssh localhost

在单机结点上用ssh进行登录,这将为后续对子结点SSH远程免密码登录作好准备。

用上述同样的方法在剩下的两个结点中如法炮制即可。

 

上述3个虚机结点均需要进行以上步骤

 

 

(3)    让主结点(master)能通过SSH免密码登录两个子结点(slave)

 

1)对slave1节点操作:

为了实现这个功能,两个slave结点的公钥文件中必须要包含主结点的公钥信息,这样当master就可以顺利安全地访问这两个slave结点了。操作过程如下:

hnu@Slave1:~/.ssh$ scp hnu@master:~/.ssh/id_dsa.pub ./master_dsa.pub

hnu@Slave1:~/.ssh$  cat master_dsa.pub >> authorized_keys

如上过程显示了slave1结点通过scp命令远程登录master结点,并复制master的公钥文件到当前的目录下,这一过程需要密码验证。接着,将master结点的公钥文件追加至authorized_keys文件中,通过这步操作,如果不出问题,master结点就可以通过ssh远程免密码连接slave1结点了。

 

2)对slave2节点同样进行以上步骤

 

在master结点中对两个子节点进行免密登陆:

hnu@Master:~$ ssh slave1

slave1结点首次连接时需要输入yes后成功接入,紧接着注销退出至master结点。然后再执行一遍ssh slave1,如果没有要求你输入”yes”,就算成功了,对node2结点也可以用同样的方法进行上述操作。

 

 

表面上看,这两个节点的ssh免密码登录已经配置成功,但是我们还需要对主节点master也要进行上面的同样工作,据说是真实物理结点时需要做这项工作,因为jobtracker有可能会分布在其它结点上,jobtracker有不存在master结点上的可能性。

 

3)对master自身进行ssh免密码登录测试工作:

hnu@Master:~/.ssh$ scp hnu@master:~/.ssh/id_dsa.pub  ./master_dsa.pub

hnu@Master:~/.ssh$ cat master_dsa.pub  >> authorized_keys

hnu@Master:~/.ssh$ ssh master

 

至此,SSH免密码登录已经配置成功。

 

5、JDK与HADOOP环境变量配置

对master/slave1/slave2同时配置

解压JDK

master@Master:~$ sudo tar -zxvf jdk-8u91-linux-x64.tar.gz -C /opt

 

master@Master:~$ sudo gedit /etc/profile

#JAVA

export JAVA_HOME=/opt/jdk1.8.0_91

export PATH=$PATH:$JAVA_HOME/bin

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

#HADOOP

export HADOOP_PREFIX=/home/hnu/hadoop-2.6.0

export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin

export HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native

export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"

 

上述3个虚机结点均需要进行以上步骤

 

6、HADOOP安装与配置

对master配置

解压hadoop

master@Master:~$ sudo tar -zxvf hadoop-2.6.0.tar.gz -C /home/hnu

 

master@Master:/home/hnu/hadoop-2.6.0/etc/hadoop$

1)  core-site.xml

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/home/hnu/hadoop-2.6.0/tmp</value>

<description>A base for other temporary directories.</description>

</property>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>io.file.buffer.size</name>

<value>4096</value>

</property>

</configuration>

 

2)   hadoop-env.sh 添加如下环境变量(一定要添加切勿少了) 

export JAVA_HOME=/opt/jdk1.8.0_91

export HADOOP_PID_DIR=/home/hnu/hadoop-2.6.0/pids

在yarn-env.sh下添加如下环境变量

export JAVA_HOME=/opt/jdk1.8.0_91

export YARN_PID_DIR=/home/hnu/hadoop-2.6.0/pids

 

3) hdfs-site.xml 

<configuration>

<property>

<name>dfs.namenode.name.dir</name>

<value>file:/home/hnu/hadoop-2.6.0/name</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:/home/hnu/hadoop-2.6.0/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.namenode.secondary.http-address</name>

<value>master:50090</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

</configuration>

 

4)  mapred-site.xml 

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

<final>true</final>

</property>

<property>

<name>mapreduce.jobtracker.http.address</name>

<value>master:50030</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>

<property>

<name>mapred.job.tracker</name>

<value>http://master:9001</value>

</property>

</configuration>

 

5) yarn-site.xml 

<configuration>

<!-- Site specific YARN configuration properties -->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>master:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>master:8030</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>master:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>master:8033</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>master:8088</value>

</property>

</configuration>

 

6)slaves

slave1

slave2

 

7、向各节点复制hadoop

向slave1节点复制hadoop:

hnu@Master:~$  scp -r ./hadoop-2.6.0/ slave1:~

向slave2节点复制hadoop:

hnu@Master:~$  scp -r ./hadoop-2.6.0/ slave2:~

 

8、赋予权限

对master/slave1/slave2执行相同操作

将目录hadoop文件夹及子目录的所有者和组更改为用户hnu和组hadoop

root@Master:/home/hnu# chown -R hnu:hadoop hadoop-2.6.0

 

9、格式化hadoop

hnu@Master:~$ source /etc/profile

hnu@Master:~$ hdfs namenode -format

 

 

 

10、启动/关闭hadoop

start-all.sh/stop-all.sh

start-dfs.sh/start-yarn.sh

stop-dfs.sh/stop-dfs.sh

 

 

查看hdfs/RM

192.168.48.128:50070/192.168.48.128:8088

master:50070/master:8088

 

 

注:

(1)hadoop集群启动jps查看后没有DATANODE 

删除slave1/slave2  中  /home/hnu/hadoop/data/current/VERSION文件后重启即可

写留言

微信扫一扫
关注该公众号

转载于:https://www.cnblogs.com/zhangguangxu98/p/8434212.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453494.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DEX加密效果分析

dex加密目的&#xff1a;保护安卓应用的Java源代码&#xff0c;避免被恶意分析&#xff0c;技术被窃取准备工具&#xff1a;1、apktool &#xff1a;反编译apk&#xff0c;提取smali代码2、dex2jar &#xff1a;将dex转化为jar文件3、jd-gui &#xff1a;查看jar文件&#xff0…

kd树的原理

kd树就是一种对k维空间中的实例点进行存储以便对其进行快速检索的树形数据结构&#xff0c;可以运用在k近邻法中&#xff0c;实现快速k近邻搜索。构造kd树相当于不断地用垂直于坐标轴的超平面将k维空间切分。    假设数据集\(T\)的大小是\(m*n\),即\(T{x_1,x_2,...x_m}\),其中…

力软 java主从表保存_JAVA常用知识总结(十二)——数据库(二)

MySQL主从热备份工作原理简单的说&#xff1a;就是主服务器上执行过的sql语句会保存在binLog里面&#xff0c;别的从服务器把他同步过来&#xff0c;然后重复执行一遍&#xff0c;那么它们就能一直同步啦。整体上来说&#xff0c;复制有3个步骤&#xff1a;作为主服务器的Maste…

Java——线程的创建,线程池

线程 多线程就是一个程序中有多个线程在同时执行。 多线程下CPU的工作原理 实际上&#xff0c;CPU(中央处理器)使用抢占式调度模式在多个线程间进行着高速的切换。对于CPU的一个核而言&#xff0c;某个时刻&#xff0c;只能执行一个线程&#xff0c;而CPU的在多个线程间切换速度…

java并查集找朋友圈_图—并查集(解决朋友圈问题)

图也是一种 非线性结构&#xff0c;是由多个顶点组成的关系集合组成的一种数据结构。图可以分为两种&#xff0c;无向图和有向图。★图的定义:★典型问题&#xff1a;利用图能够解决很多问题&#xff0c;这里有一个较为典型的问题&#xff0c;假如已知有n个人和m对好友关系(存于…

(三)SpringBoot之配置文件详解:Properties和YAML

一、配置文件的生效顺序&#xff0c;会对值进行覆盖&#xff1a; 1. TestPropertySource 注解2. 命令行参数3. Java系统属性&#xff08;System.getProperties()&#xff09;4. 操作系统环境变量5. 只有在random.*里包含的属性会产生一个RandomValuePropertySource6. 在打包的j…

fscanf()php,fscanf函数的用法

以前解析有规律的文件的时候要么用正则表达式&#xff0c;要么就是傻傻的自己写程序来解析有规律的文件。今天突然发现c的库函数中有一个现成的可以解析有规律的文件的函数&#xff0c;就是fscanf()函数。fscanf 位于头文件中&#xff0c;函数原型为 int fscanf(FILE * stream,…

为什么设计师应该学习编写代码

通常&#xff0c;在完成了一件网页设计后&#xff0c;设计师的无知都会显露无遗而备受指责。他们把创建网页代码的繁重工作都留给了程序员们。这种现象不只出现在网络开发行业&#xff0c;在软件及游戏开发业也是如此&#xff08;完整图文版&#xff09;。残酷的事实就是&#…

iOS内存区域部分内容

目前参考这里&#xff1a; https://www.zhihu.com/question/263823072/answer/273452932 以后整理相关的代码问题。 更多参考资料&#xff1a; https://stackoverflow.com/questions/79923/what-and-where-are-the-stack-and-heap 堆栈&#xff1a;https://baike.baidu.com/ite…

浅析Numpy.genfromtxt及File I/O讲解

Python 并没有提供数组功能&#xff0c;虽然列表 (list) 可以完成基本的数组功能&#xff0c;但它并不是真正的数组&#xff0c;而且在数据量较大时&#xff0c;使用列表的速度就会慢的让人难受。为此&#xff0c;Numpy 提供了真正的数组功能&#xff0c;以及对数据快速处理的函…

php如果实现日历的制作,教大家制作简单的php日历

最近的一个项目中&#xff0c;需要将数据用日历方式显示&#xff0c;网上有很多的JS插件&#xff0c;后面为了自己能有更大的控制权&#xff0c;决定自己制作一个日历显示。如下图所示&#xff1a;一、计算数据1、new一个Calendar类2、初始化两个下拉框中的数据&#xff0c;年份…

编程要养成的好习惯

1.- DRY: Don’t repeat yourself. DRY 是一个最简单的法则&#xff0c;也是最容易被理解的。但它也可能是最难被应用的&#xff08;因为要做到这样&#xff0c;我们需要在泛型设计上做相当的努力&#xff0c;这并不是一件容易的事&#xff09;。它意味着&#xff0c;当我们在…

flink整合java,Flink使用SideOutPut替换Split实现分流

基于apache flink的流处理实时模型44元包邮(需用券)去购买 >以前的数据分析项目(版本1.4.2)&#xff0c;对从Kafka读取的原始数据流&#xff0c;调用split接口实现分流.新项目决定使用Flink 1.7.2&#xff0c;使用split接口进行分流的时候&#xff0c;发现接口被标记为depra…

WCF和webservice的区别

微软论坛的斑竹回答如下&#xff1a; 脑内&#xff1a;果然是高大上啊 1.WebService&#xff1a;严格来说是行业标准&#xff0c;不是技术&#xff0c;使用XML扩展标记语言来表示数据&#xff08;这个是夸语言和平台的关键&#xff09;。微 软的Web服务实现称为ASP.NET Web Ser…

链表和顺序表的一些区别

顺序表与链表是非常基本的数据结构&#xff0c;它们可以被统称为线性表。 线性表&#xff08;Linear List&#xff09;是由 n&#xff08;n≥0&#xff09;个数据元素&#xff08;结点&#xff09;a[0]&#xff0c;a[1]&#xff0c;a[2]…&#xff0c;a[n-1] 组成的有限序列。…

春节期间小游戏同时在线人数最高达2800万人/小时

微信官方发布2018年春节期间微信数据报告&#xff1a;除夕至初五&#xff0c;总共有2,297亿条微信消息&#xff0c;28亿条微信朋友圈成功发出&#xff0c;音视频通话总时长175亿乙分钟。其中&#xff0c;90后用广的消息发送量占总量的42.5%&#xff0c;80后用户25.9%&#xff0…

餐馆的故事-浅析职责链模式

我们在餐馆吃饭的时候&#xff0c;一般都是在拿到菜单后&#xff0c;选择喜欢的菜&#xff0c;然后通知服务员。服务员会将我们的定单交给大厨&#xff0c;大厨可能会亲自去做这道菜&#xff0c;也可能安排给小厨来做&#xff0c;总之&#xff0c;我们不用担心他们没有人做菜&a…

matlab非齐次方程组的通解,用matlab求非齐次线性方程组的通解?

先向大家介绍一下非齐次线性方程组。所谓非齐次线性方程组就是方程组等号右边的常数项不全为零的线性方程组。全部等于零时&#xff0c;就称为齐次线性方程组。下面我们就讲解一下如何利用matlab快速求非齐次线性方程组的通解。工具/材料matlab电脑操作方法01线性方程组Axb的求…

Linux 终端仿真程序Putty

PuTTY是一个Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。较早的版本仅支持Windows平台&#xff0c;现在的版本中开始支持各类Unix平台。 用linux作为桌面系统&#xff0c;身为工程师很多时候需要通过Telnet、SSH协议进行远程管理&#xff0c;通过串口进行设备配置。Putty…

粗识静态链表

为了弥补链表在内存分配上的不足&#xff0c;出现了静态链表这么一个折中的办法。静态链表比较类似于内存池&#xff0c;它会预先分配一个足够长的数组&#xff0c;之后链表节点都会保存在这个数组里&#xff0c;这样就不需要频繁的进行内存分配了。 当然&#xff0c;这个方法的…