Hadoop集群安装(真分布式)
Hadoop真分布式完全集群安装,基于版本2.7.2安装,
在两台Linux机器上面分别安装Hadoop的master和slave节点。
1.安装说明
不管NameNode还是DataNode节点,安装的用户名需要一致。
master和slave的区别,只是在于配置的hostname,
在config的slaves配置的hostname所代表的机器即为slave,
不使用主机名也可以,直接配置为IP即可。
在这种集群下面,需要在master节点创建namenode路径,
并且使用格式化命令hdfs namenode –format。
然后在slave节点创建datanode路径,注意目录的权限。
2.配置hosts
如果已经存在则不需要,每台机器进行相同的操作
10.43.156.193 zdh193 ywmaster/fish master
10.43.156.194 zdh194 ywmaster/fish slave
3.创建用户
集群上面的用户名必须都是一样的,否则无法影响Hadoop集群启动,
在每台机器里面添加相同的用户,参考如下命令:
useradd ywmaster
4.安装JDK
此处安装的是jdk1.7
scp yuwen@10.43.156.193:/home/yuwen/backup/jdk-7u80-linux-x64.tar.gz .
zdh123
tar -zxvf jdk-7u80-linux-x64.tar.gz
vi .bash_profile
export JAVA_HOME=~/jdk1.7.0_80
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source .bash_profile
验证jdk
java -version
5.设置集群免密登陆
5.1.设置本地免密登陆
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
必须修改权限,否则无法免秘登陆
chmod 600 ~/.ssh/authorized_keys
验证免密登陆
ssh localhost
5.2.设置远程免密登陆
需要把本机的公钥放到对方的机器authorized_keys,才能免密登陆其他机器。
进入ywmaster的.ssh目录
scp ~/.ssh/authorized_keys ywmaster@10.43.156.194:~/.ssh/authorized_keys_from_zdh193
进入ywslave的.ssh目录,注意备份,否则下面步骤存在重复的ywmaster公钥。
cat authorized_keys_from_zdh193 >> authorized_keys
ssh zdh194
5.3.设置其他机器免密登陆
参考上面的步骤同理设置其他机器,配置后zdh193可以免密登陆。
scp ~/.ssh/authorized_keys ywmaster@10.43.156.193:~/.ssh/authorized_keys_from_zdh194
6.安装Hadoop
上传并解压hadoop文件
scp pub@10.43.156.193:/home/pub/hadoop/source/hadoop-2.7.2-src/hadoop-dist/target/hadoop-2.7.2.tar.gz .
zdh1234
tar -zxvf hadoop-2.7.2.tar.gz
7.配置环境变量
export HADOOP_HOME=~/hadoop-2.7.2
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
配置别名,可以快速访问配置路径
alias conf='cd /home/ywmaster/hadoop-2.7.2/etc/hadoop'
8.检查和修改Hadoop配置文件
8.1 hadoop-env.sh
涉及环境变量:JAVA_HOME,HADOOP_HOME,HADOOP_CONF_DIR
8.2 yarn-env.sh
涉及环境变量:JAVA_HOME,HADOOP_YARN_USER,HADOOP_YARN_HOME, YARN_CONF_DIR
8.3 slaves
这个文件里面保存所有slave节点,注释掉localhost,新增zdh194作为slave节点。
8.4 core-site.xml
<name>fs.defaultFS</name>
<value>hdfs://10.43.156.193:29080</value>
<name>fs.default.name</name>
<value>hdfs://10.43.156.193:29080</value>
<name>io.file.buffer.size</name>
<value>131072</value>
<name>hadoop.tmp.dir</name>
<value>file:/home/ywmaster/tmp</value>
8.5 hdfs-site.xml
<name>dfs.namenode.rpc-address</name>
<value>10.43.156.193:29080</value>
<name>dfs.namenode.http-address</name>
<value>10.43.156.193:20070</value>
<name>dfs.namenode.secondary.http-address</name>
<value>10.43.156.193:29001</value>
<name>dfs.namenode.name.dir</name>
<value>file:/home/ywmaster/dfs/name</value>
<name>dfs.datanode.data.dir</name>
<value>file:/home/ywmaster/dfs/data</value>
<name>dfs.replication</name>
<value>1</value>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
8.6 mapred-site.xml
<name>mapreduce.framework.name</name>
<value>yarn</value>
<name>mapreduce.shuffle.port</name>
<value>23562</value>
<name>mapreduce.jobhistory.address</name>
<value>10.43.156.193:20020</value>
<name>mapreduce.jobhistory.webapp.address</name>
<value>10.43.156.193:29888</value>
8.7:yarn-site.xml
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> TODODELETE
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
#mapreduce.shuffle已经过时,改为mapreduce_shuffle
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
<name>yarn.resourcemanager.address</name>
<value>10.43.156.193:28032</value>
<name>yarn.resourcemanager.scheduler.address</name>
<value>10.43.156.193:28030</value>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>10.43.156.193:28031</value>
<name>yarn.resourcemanager.admin.address</name>
<value>10.43.156.193:28033</value>
<name>yarn.resourcemanager.webapp.address</name>
<value>10.43.156.193:28088</value>
8.8 获取Hadoop的默认配置文件
选择相应版本的hadoop,下载解压后,搜索*.xml,
找到core-default.xml,hdfs-default.xml,mapred-default.xml,
这些就是默认配置,可以参考这些配置的描述说明,
在这些默认配置上进行修改,配置自己的Hadoop集群。
find . -name *-default.xml
./hadoop-2.7.1/share/doc/hadoop/hadoop-project-dist/hadoop-hdfs/hdfs-default.xml
./hadoop-2.7.1/share/doc/hadoop/hadoop-project-dist/hadoop-common/core-default.xml
./hadoop-2.7.1/share/doc/hadoop/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml
./hadoop-2.7.1/share/doc/hadoop/hadoop-yarn/hadoop-yarn-common/yarn-default.xml
./hadoop-2.7.1/share/hadoop/httpfs/tomcat/webapps/webhdfs/WEB-INF/classes/httpfs-default.xml
9.把配置好的Hadoop复制到其他节点
scp -r ~/hadoop-2.7.2 ywmaster@10.43.156.194:~/
或者只拷贝配置文件,可以提高拷贝效率:
scp -r ~/hadoop-2.7.2/etc/hadoop ywmaster@10.43.156.194:~/hadoop-2.7.2/etc
创建好name和data数据目录
mkdir -p ./dfs/name
mkdir -p ./dfs/data
10.启动验证Hadoop
格式化namenode:
hdfs namenode -format
出现如下结果则表示成功:
16/09/13 23:57:16 INFO common.Storage: Storage directory /home/ywmaster/dfs/name has been successfully formatted.
启动hdfs
start-dfs.sh
启动yarn:
start-yarn.sh
注意修改了配置之后一定要重新复制到其他节点,否则启动会有问题。
11.检查启动结果
NameNode下执行jps应该包含如下进程:
15951 ResourceManager
13294 SecondaryNameNode
12531 NameNode
16228 Jps
DataNode下执行jps应该包含如下进程:
3713 NodeManager
1329 DataNode
3907 Jps
查看HDFS服务:
http://10.43.156.193:20070
查看SecondaryNameNode:
http://10.43.156.193:29001/
具体IP和Port参考hdfs-site.xml:
<name>dfs.namenode.http-address</name>
<description> The address and the base port where the dfs namenode web ui will listen on.</description>
查看RM:
http://10.43.156.193:28088
具体IP和Port参考yarn-site.xml:
<name>yarn.resourcemanager.webapp.address</name>
<value>10.43.156.193:28088</value>
12.其他参考
停止命令:
stop-yarn.sh
stop-dfs.sh
执行命令验证:
hadoop fs -ls /usr
hadoop fs -mkdir usr/yuwen
hadoop fs -copyFromLocal wordcount /user
hadoop fs -rm -r /user/wordresult
hadoop jar ~/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/wordcount.txt /user/wordresult_001
hadoop fs -text /user/wordresult_001/part-r-00000
Hadoop集群安装(真分布式)的更多相关文章
- Apache Hadoop 集群安装文档
简介: Apache Hadoop 集群安装文档 软件:jdk-8u111-linux-x64.rpm.hadoop-2.8.0.tar.gz http://www.apache.org/dyn/cl ...
- 1.Hadoop集群安装部署
Hadoop集群安装部署 1.介绍 (1)架构模型 (2)使用工具 VMWARE cenos7 Xshell Xftp jdk-8u91-linux-x64.rpm hadoop-2.7.3.tar. ...
- Apache Hadoop集群安装(NameNode HA + SPARK + 机架感知)
1.主机规划 序号 主机名 IP地址 角色 1 nn-1 192.168.9.21 NameNode.mr-jobhistory.zookeeper.JournalNode 2 nn-2 ).HA的集 ...
- Apache Hadoop集群安装(NameNode HA + YARN HA + SPARK + 机架感知)
1.主机规划 序号 主机名 IP地址 角色 1 nn-1 192.168.9.21 NameNode.mr-jobhistory.zookeeper.JournalNode 2 nn-2 192.16 ...
- 2 Hadoop集群安装部署准备
2 Hadoop集群安装部署准备 集群安装前需要考虑的几点硬件选型--CPU.内存.磁盘.网卡等--什么配置?需要多少? 网络规划--1 GB? 10 GB?--网络拓扑? 操作系统选型及基础环境-- ...
- hadoop集群安装故障解决
nodemanager进程解决:http://blog.csdn.net/baiyangfu_love/article/details/13504849 编译安装:http://blog.csdn.n ...
- Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS
摘自:http://www.powerxing.com/install-hadoop-cluster/ 本教程讲述如何配置 Hadoop 集群,默认读者已经掌握了 Hadoop 的单机伪分布式配置,否 ...
- 一脸懵逼学习基于CentOs的Hadoop集群安装与配置
1:Hadoop分布式计算平台是由Apache软件基金会开发的一个开源分布式计算平台.以Hadoop分布式文件系统(HDFS)和MapReduce(Google MapReduce的开源实现)为核心的 ...
- Hadoop 集群安装(主节点安装)
1.下载安装包及测试文档 切换目录到/tmp view plain copy cd /tmp 下载Hadoop安装包 view plain copy wget http://192.168.1.100 ...
随机推荐
- Android 清除本地缓存
主要功能:清除内.外缓存,清除数据库,清除Sharepreference,清除files和清除自定义目录 public class DataCleanManager { //清除本应用内部缓存(/da ...
- poi做一个简单的EXCAL
//创建一个实体类 package text; import java.util.Date; public class Student { private int id; private String ...
- SpringMVC(4):文件上传与下载
一,文件上传 文件上传是项目开发中最常见的功能之一 ,springMVC 可以很好的支持文件上传,但是SpringMVC上下文中默认没有装配MultipartResolver,因此默认情况下其不能处理 ...
- linux网络相关命令之脚本和centos启动流程
nice 功用:设置优先权,可以改变程序执行的优先权等级.等级的范围从-19(最高优先级)到20(最低优先级).优先级为操作系统决定cpu分配的参数,优先级越高,所可能获得的 cpu时间越长. 语法: ...
- GO类型转换
golang []byte转string golang中,字符切片[]byte转换成string最简单的方式是 package main import ( "fmt" _ &quo ...
- Spring Boot 自动扫描组件
使用@ComponentScan自动扫描组件 案例准备 1.创建一个配置类,在配置类上添加 @ComponentScan 注解.该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 <con ...
- $(document).ready()与window.onload的区别,站在三个维度回答问题
1.执行时机 window.onload必须等到页面内包括图片的所有元素加载完毕后才能执行. $(document).ready()是DOM结构绘制完毕后就执行,不必等到加载完毕. 2 ...
- Redis增加测试数据
目录 一.简介 二.操作 三.制造测试数据 一.简介 用shell脚本将文本内容挨个写到redis中效率是很慢的.打开一个链接,写入后再关闭,再打开,效率很低. redis支持pipe mode功能, ...
- hooks中,useEffect无限调用问题产生的原因
前言:我在我的另一篇博客中有说道useEffect监听对象或者数组时会导致useEffect无限执行,并给予了解决方案-useEffect无限调用问题 .后来我想从其产生根源去理解并解决这个问题. 原 ...
- java中栈,堆,方法区
最近在看面试题复习javaee,所以在这里对栈,堆,方法区做一下整理 参考了https://www.cnblogs.com/hqji/p/6582365.html 1.栈 每个线程包含一个栈区,栈中只 ...