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 ...
随机推荐
- 模拟APP存储空间、内存不足情况下软件正常运行
1.进行临界测试,手机盘空间存满的条件下应用会有何表现: 方法一:adb shell dd if=/dev/zero of=/mnt/sdcard/bigfile 方法二:哆啦A工具生成文件 2.内存 ...
- php 微信公众号上传永久素材
<?php namespace Mob\Controller; use Think\Controller; class WxmaterialController extends Controll ...
- BZOJ4830 [Hnoi2017]抛硬币 【扩展Lucas】
题目链接 BZOJ4830 题解 当\(a = b\)时,我们把他们投掷硬币的结果表示成二进制,发现,当\(A\)输给\(B\)时,将二进制反转一下\(A\)就赢了\(B\) 还要除去平局的情况,最后 ...
- Eclipse启动项目正常,放到tomcat下单独启动就报错的 一例
一个老的ssh的项目,进行二次开发(增加一些新功能)后, 首先用Eclipse中集成的Tomcat启动没有任何问题,但是把启动后的webapps下得目录放到 windows的普通tomcat下单独启动 ...
- MySQL数据库以及表的管理
MySQL数据库以及表的管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 今天我们探讨的话题就是如何使用MySQL做开发,我们运维的主要工作不是去开发SQL的,但尽管如此,我们有 ...
- Python远程连接模块-Telnet
Python远程连接模块-Telnet 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 虽然现在主流的python版本还是2.7,相信2020年python程序员都会偏向Python ...
- logstash收集ngx日志
if [type] =~ "ngx-" { #去掉重复的行 mutate { add_field => {"line_message" => &qu ...
- 鸟哥的Linux私房菜——第十三章:Vim编译器
视频链接: 土豆: B站:http://www.bilibili.com/video/av9891085/ 本章的细节还是挺多的,可是我懒啊~~
- git高清技能图
----
- info replication
主Redis设置值:redis-cli -h 192.168.18.121 -p 63800 -a tinywan123456 登陆从1:redis-cli -h 192.168.18.121 -p ...