hadoop2.5搭建过程
1 搭建环境所使用的资源
VMware Workstation 9
ubuntu-14.04.2-desktop-amd64.iso
jdk-7u80-linux-x64.tar.gz
hadoop-2.5.0.tar.gz
zookeeper-3.4.5-cdh5.1.0.tar.gz
hbase-0.98.6-cdh5.3.0.tar.gz
实验室服务器一台
(没有用最新版的hadoop是因为也是看别人教程搭的)
2 准备工作
2.1 安装虚拟机
在Vmware上安装4台虚拟机,使用ubuntu镜像。
如果出现左边那一列不显示
关掉虚拟机,在虚拟机设置中,将显示里的 3D图形加速的勾去掉
设置好用户名和密码
2.2 设置IP地址
设置master和slave的IP,如:
(master01)10.109.252.94,
(slave01)10.109.252.95,
(slave02)10.109.252.96,
(slave03)10.109.252.97。
子码掩码:255.255.255.0
默认网关:10.109.252.1
首选DNS:10.3.9.4 10.3.9.5
网络连接要选择桥接
命令行输入ifconfig
第一行最左边的名字,就是本机的网络接口,此处为 eth0 ,不同机器可能不同。
输入命令:
sudo gedit /etc/network/interfaces
在打开的文件中,输入以下代码:
auto eth0 // 使用的网络接口,之前查询接口是为了这里
iface eth0 inet static // eth0这个接口,使用静态ip设置
address 10.109.252.94 // 设置ip地址
netmask 255.255.255.0 // 设置子网掩码
gateway 10.109.252.1 // 设置网关
dns-nameservers 10.3.9.4 // 设置dns服务器地址
设置DNS:
sudo gedit /etc/resolv.conf
加上:
nameserver 10.3.9.4
nameserver 10.3.9.5
用以下命令使网络设置生效:
service networking restart
sudo /etc/init.d/networking restart
2.3 修改主机名
主机名存放在/etc/hostname文件中
sudo gedit /etc/hostname
主机名也就是master01,slave01这些
然后修改/etc/hosts文件:
sudo gedit /etc/hosts
127.0.0.1 localhost
10.109.252.94 master01
10.109.252.95 slave01
10.109.252.96 slave02
10.109.252.97 slave03
2.4 安装配置SSH
目的是为了无密码远程登录
首先一定要确保虚拟机能上网
然后输入命令:
sudo apt-get update
sudo apt-get install ssh
输入
ssh localhost
查看是否安装成功
关闭防火墙
sudo ufw disable
配置无密码远程登录:
第一步:产生密钥
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
第二步:导入authorized_keys
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
Master需要通过无密码的SSH登陆来控制各个slave从机,因此需要将master上的公钥复制到每个slave从机上。
在Master上输入命令:
$ scp ~/.ssh/authorized_keys mcc@slave01:~/.ssh/
$ scp ~/.ssh/authorized_keys mcc@slave02:~/.ssh/
$ scp ~/.ssh/authorized_keys mcc@slave03:~/.ssh/
这里的mcc@slave01换成你自己设置的用户名@主机名
在master01中无密码登录slave01
输入命令:
ssh slave01
遇到问题:
Agent admitted failure to sign using the key.
解决办法:
解決方式 使用 ssh-add 指令将私钥 加进来 (根据个人的密匙命名不同更改 id_dsa)
ssh-add ~/.ssh/id_dsa
之后就成功啦
2.5 安装Java
在master和slave上分别安装Java7
创建目录:
sudo mkdir /usr/lib/jvm
解压缩到该目录:
sudo tar -zxvf jdk-7u80-linux-x64.tar.gz -C /usr/lib/jvm
修改环境变量:
sudo gedit ~/.bashrc
文件的末尾追加下面内容:
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
使环境变量马上生效:
source ~/.bashrc
3 Hadoop部署
创建一个文件夹
sudo mkdir /opt/modules
解压到/opt/modules下
sudo tar -zxf hadoop-2.5.0.tar.gz -C /opt/modules
将 hadoop-2.5.0 重命名为hadoop
sudo mv hadoop-2.5.0 hadoop
配置之前,需要在master本地文件系统创建以下文件夹:
~/dfs/name
~/dfs/data
~/tmp
mcc@master01:~$ mkdir /home/mcc/tmp
mcc@master01:~$ mkdir /home/mcc/dfs
mcc@master01:~$ mkdir /home/mcc/dfs/name
mcc@master01:~$ mkdir /home/mcc/dfs/data
用ll查看权限是否为当前用户组下的
这里要涉及到的配置文件有7个:
~/hadoop-2.5.0/etc/hadoop/hadoop-env.sh
~/hadoop-2.5.0/etc/hadoop/yarn-env.sh
~/hadoop-2.5.0/etc/hadoop/slaves
~/hadoop-2.5.0/etc/hadoop/core-site.xml
~/hadoop-2.5.0/etc/hadoop/hdfs-site.xml
~/hadoop-2.5.0/etc/hadoop/mapred-site.xml
~/hadoop-2.5.0/etc/hadoop/yarn-site.xml
以上文件默认不存在的,可以复制相应的template文件获得
进入etc/hadoop/
修改hadoop-env.sh
sudo gedit hadoop-env.sh
修改这句为:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
修改yarn-env.sh
sudo gedit yarn-env.sh
修改这句为:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
修改slaves
sudo gedit slaves
修改为:
slave01
slave02
slave03
修改core-site.xml
sudo gedit core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master01:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/mcc/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
修改hdfs-site.xml
sudo gedit hdfs-site.xml
在hdfs-site.xml里改
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master01:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/mcc/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/mcc/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
将mapred-site.xml.template 重命名为mapred-site.xml
sudo mv mapred-site.xml.template mapred-site.xml
修改mapred-site.xml
sudo gedit mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master01:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master01:19888</value>
</property>
</configuration>
修改yarn-site.xml
sudo gedit 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.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master01:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master01:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master01:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master01:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master01:8088</value>
</property>
</configuration>
修改环境变量:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre
export HADOOP_HOME=/opt/modules/hadoop
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:$PATH
格式化
mcc@master01:/opt/modules/hadoop$ sudo bin/hdfs namenode -format
之后启动时报错
解决办法:
每个虚拟机都输一遍这个命令 修改目录的所有者
sudo chown -R mcc:mcc /opt/modules/
然后又出现问题,jps不显示namenode
解决办法:
输入命令: sudo chmod -R 777 /home/dfs
slave上的配置要保持和master上一致,不要去把有master的地方改成slave
在master上输:(要进入hadoop文件夹)
sbin/start-all.sh
然后成功启动hadoop集群
4 配置zookeeper
解压:
tar -zxf zookeeper-3.4.5-cdh5.1.0.tar.gz -C /opt/modules/
新建一个目录:
mcc@slave01:/opt/modules/zookeeper-3.4.5-cdh5.1.0$ mkdir zkData
在这个目录下新建一个文件叫myid
mcc@slave01:/opt/modules/zookeeper-3.4.5-cdh5.1.0/zkData$ touch myid
slave01,slave02,slave03分别写上数字1,2,3
将zoo_sample.cfg重命名
mcc@slave01:/opt/modules/zookeeper-3.4.5-cdh5.1.0/conf$ mv zoo_sample.cfg zoo.cfg
修改zoo.cfg:
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=/opt/modules/zookeeper-3.4.5-cdh5.1.0/zkData
# the port at which the clients will connect
clientPort=2181
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1
server.1=slave01:2888:3888
server.2=slave02:2888:3888
server.3=slave03:2888:3888
将zookeeper目录移到slave02,slave03上,并修改myid
scp -r zookeeper-3.4.5-cdh5.1.0/ slave02:/opt/modules/
scp -r zookeeper-3.4.5-cdh5.1.0/ slave03:/opt/modules/
修改环境变量:
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre
export HADOOP_HOME=/opt/modules/hadoop
export ZOOKEEPER_HOME=/opt/modules/zookeeper-3.4.5-cdh5.1.0
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${HADOOP_HOME}/bin:${ZOOKEEPER_HOME}/bin:$PATH
启动:
$ZOOKEEPER_HOME/bin/zkServer.sh start
Jps查看进程,已成功启动
5 配置Hbase
解压:
tar -zxf hbase-0.98.6-cdh5.3.0.tar.gz -C /opt/modules/
配置hbase-env.sh
sudo gedit hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_80
export HBASE_MANAGES_ZK=false
配置hbase-site.xml
sudo gedit hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master01:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>slave01,slave02,slave03</value>
</property>
</configuration>
配置regionservers
sudo gedit regionservers
slave01
slave02
slave03
然后要用我们的hadoop里的jar包替换hbase里的
在hbase的lib里
rm -rf hadoop*.jar删掉所有的hadoop相关的jar包
替换
find /opt/modules/hadoop/share/hadoop -name "hadoop*jar" | xargs -i cp {} /opt/modules/hbase-0.98.6-cdh5.3.0/lib
因为Hbase是依赖于Hadoop的,它要求Hadoop的jar必须部署在HBase的lib下
然后又出现了新的问题:
FATAL [master:master01:60000] master.HMaster: Unhandled exception. Starting shutdown.
java.net.UnknownHostException: Invalid host name: local host is: (unknown); destination host is: "master01":9000; java.net.UnknownHostException; For more details see:
解决办法:(玄学)
将hbase-site.xml里的一个属性改为:
<property>
<name>hbase.rootdir</name>
<value>hdfs://10.109.252.94:9000/hbase</value>
</property>
将hbase目录移到slave01,slave02,slave03上
scp -r hbase-0.98.6-cdh5.3.0/ slave01:/opt/modules
scp -r hbase-0.98.6-cdh5.3.0/ slave02:/opt/modules
scp -r hbase-0.98.6-cdh5.3.0/ slave03:/opt/modules
启动 在master上输
mcc@master01:/opt/modules/hbase-0.98.6-cdh5.3.0$ ./bin/start-hbase.sh
启动成功
hadoop2.5搭建过程的更多相关文章
- 懒人记录 Hadoop2.7.1 集群搭建过程
懒人记录 Hadoop2.7.1 集群搭建过程 2016-07-02 13:15:45 总结 除了配置hosts ,和免密码互连之外,先在一台机器上装好所有东西 配置好之后,拷贝虚拟机,配置hosts ...
- 【安装】Hadoop2.8.0搭建过程整理版
Hadoop搭建过程 前期环境搭建主要分为软件的安装与配置文件的配置,集成的东西越多,配置项也就越复杂. Hadoop集成了一个动物园,所以配置项也比较多,且每个版本之间会有少许差异. 安装的方式有很 ...
- Hadoop完全分布式搭建过程中遇到的问题小结
前一段时间,终于抽出了点时间,在自己本地机器上尝试搭建完全分布式Hadoop集群环境,也是借助网络上虾皮的Hadoop开发指南系列书籍一步步搭建起来的,在这里仅代表hadoop初学者向虾皮表示衷心的感 ...
- Ubuntu下用hadoop2.4搭建集群(伪分布式)
要真正的学习hadoop,就必需要使用集群,可是对于普通开发人员来说,没有大规模的集群用来測试,所以仅仅能使用伪分布式了.以下介绍怎样搭建一个伪分布式集群. 为了节省时间和篇幅,前面一些步骤不再叙述. ...
- Hadoop2.7搭建
Hadoop最底部是 Hadoop Distributed File System(HDFS),它存储Hadoop集群中所有存储节点上的文件.HDFS(对于本文)的上一层是MapReduce 引擎,该 ...
- Maven多模块,Dubbo分布式服务框架,SpringMVC,前后端分离项目,基础搭建,搭建过程出现的问题
现互联网公司后端架构常用到Spring+SpringMVC+MyBatis,通过Maven来构建.通过学习,我已经掌握了基本的搭建过程,写下基础文章为而后的深入学习奠定基础. 首先说一下这篇文章的主要 ...
- Access应用笔记<四>-一个完整的自动化报表搭建过程
距离之前的三篇日志已经很久啦,今天终于完成了一个比较完整的自动化报表搭建过程 基于公司数据保密原则,样板就不放到网上来了,简单说一下背景: 这次access实现的功能包括: 1)为部门整体搭建了一个员 ...
- iOS---XMPP环境搭建过程
什么是即时通信? 即时通信是目前Internet上最为流行的通讯方式, 各种各样的即时通讯软件也层出不穷, 服务提供商也提供了越来越枫木的通讯服务功能. 即时通讯有多重实现方式, XMPP就是其中一种 ...
- 最简单的SVN环境搭建过程
本文简单描述最简单的SVN环境搭建过程 搭建环境:windows (个人验证了windows2003,windows xp) 使用软件:Setup-Subversion-1.6.17 //Serve ...
随机推荐
- iOS 打开系统设置的常用功能
说明: 跳转到系统设置不同功能界面,只要知道路径都很简单,路径可以自己打开手机设置界面看, 照着模板把对应的名称替换就可以了,但是得知道对应功能的英文名称. 1. prefs:root=Privacy ...
- BZOJ2721 Violet5樱花(数论)
有(x+y)n!=xy.套路地提出x和y的gcd,设为d,令ad=x,bd=y.则有(a+b)n!=abd.此时d已是和a.b无关的量.由a与b互质,得a+b与ab互质,于是将a+b除过来得n!=ab ...
- BZOJ 2663: [Beijing wc2012]灵魂宝石
2663: [Beijing wc2012]灵魂宝石 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 261 Solved: 108[Submit][S ...
- HGOI20181029模拟题解
HGOI20181029模拟题解 /* sxn让我一定要谴责一下出题人和他的数据! */ problem: 给出十进制数a,b,然后令(R)10=(a)10*(b)10,给出c表示一个k进制数(1&l ...
- CODE FESTIVAL 2017 qual B 题解
失踪人口回归.撒花\^o^/ 说来真是惭愧,NOI之后就没怎么刷过题,就写了几道集训队作业题,打了几场比赛还烂的不行,atcoder至今是蓝名=.= 以后还是多更一些博客吧,我可不想清华集训的时候就退 ...
- 转载:C++中两个类中互相包含对方对象的指针问题
原文链接:http://www.cnblogs.com/hanxi/archive/2012/07/25/2608068.html 前几天很不爽,因为C++中两个类中互相包含对方对象的指针编译时提示某 ...
- word 公式为图片
- C++外观模式和组合模式
外观模式应该是用的很多的一种模式,特别是当一个系统很复杂时,系统提供给客户的是一个简单的对外接口,而把里面复杂的结构都封装了起来.客户只需使用这些简单接口就能使用这个系统,而不需要关注内部复杂的结构. ...
- 安装【Jenkins】
前言 jenkins的一款持续集成工具, 它可以做的事情很多,其中一个主要的功能就是简化部署流程 回想一下我们的发布流程: 1.本地把项目打包 ...
- SQL记录-PLSQL日期与时间
PL/SQL日期及时间 PL/SQL提供两个日期和时间相关的数据类型: 日期时间(Datetime)数据类型 间隔数据类型 datetime数据类型有: DATE TIMESTAMP TIMESTAM ...