文档章节

hadoop2.6.5+zookeeper在虚拟机环境下的安装

守望者之父
 守望者之父
发布于 2017/01/20 22:47
字数 1118
阅读 127
收藏 0

硬件环境:
vmware虚拟机,3台centos 64位6.5版本镜像。hadoop2.6.5,zookeeper3.4.9
nm1:192.168.85.128  namenode1+zookeeper+datanode
nm2:192.168.85.130  namenode2+zookeeper+datanode
node1:192.168.85.131  datanode+zookeeper 

【注意事项】

(1)配置文件中尽量用全路径,不用变量

(2)保持namenode节点的配置文件始终一致,特别是name和tmp、data等根目录

(3)注意环境变量

(4)SSH注意,测试所有的ssh链接不要出现提示符,包括连自己

(5)native library找不到的问题还没解决,等有时间研究。

试试这个:

在hadoop-env.sh中 修改HADOOP_OPTS:

export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib:$HADOOP_PREFIX/lib/native"
【步骤】 

1、创建hadoop用户
2、首先配置jdk环境
从oracle官网下载
jdk-7u80-linux-x64.tar.gz, 下载到/home/hadoop
zookeeper下载到/home/hadoop
分别解压
在/etc/profile设置环境变量 :

#set java path

JAVA_HOME=/home/hadoop/jdk1.7.0_80

JRE_HOME=/home/hadoop/jdk1.7.0_30/jre

HADOOP_HOME=/home/hadoop/hadoop-2.6.5

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH HADOOP_HOME

export HADOOP_OPTS="-Djava.library.path=/home/hadoop/hadoop-2.6.5/lib/native"

 


3、配置/etc/hosts
nm1    192.168.85.128
nm2    192.168.85.130
node1    192.168.85.130

4、配置zookeeper
zookeeper安装在/home/hadoop/zookeeper目录
dataDir=/home/hadoop/zookeeper/data

server.1=nm1:2888:3888

server.2=nm2:2888:3888

server.3=node1:2888:3888

$scp to other hosts
 3台机器分别启动:
/home/hadoop/zookeeper/bin/zkServer.sh start
【注意确保防火墙已经关闭 】
检查是否成功:
/home/hadoop/zookeeper/bin/zkServer.sh status
应该一台显示leader,其余两台显示follower

5、配置hadoop
5.1配置hadoop
将hadoop添加到环境变量中

JAVA_HOME=/home/hadoop/jdk1.7.0_80

JRE_HOME=/home/hadoop/jdk1.7.0_30/jre

HADOOP_HOME=/home/hadoop/hadoop-2.6.5

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH HADOOP_HOME

# improve Could not resolve hostname library: Name or service not known  

export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native  

export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native" 5.2 hdfs-site.xml

<property>

<name>dfs.nameservices</name>

<value>ns1</value>

</property>

 

<property>

<name>dfs.ha.namenodes.ns1</name>

<value>nn1,nn2</value>

</property>

 

<property>

<name>dfs.namenode.rpc-address.ns1.nn1</name>

<value>nm1:9000</value>

</property>

 

<property>

<name>dfs.namenode.http-address.ns1.nn1</name>

<value>nm1:50070</value>

</property>

 

<property>

<name>dfs.namenode.rpc-address.ns1.nn2</name>

<value>nm2:9000</value>

</property>

 

<property>

<name>dfs.namenode.http-address.ns1.nn2</name>

<value>nm2:50070</value>

</property>

 

<property>

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

<value>qjournal://nm1:8485;nm2:8485;node1:8485/ns1</value>

</property>

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/home/hadoop/hadoop-2.6.5/journaldata</value>

</property>

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

 

<property>

<name>dfs.client.failover.proxy.provider.ns1</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

 

<property>

<name>dfs.ha.fencing.methods</name>

<value>

sshfence

shell(/bin/true)

</value>

</property>

 

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/home/hadoop/.ssh/id_rsa</value>

</property>

 

<property>

<name>dfs.ha.fencing.ssh.connect-timeout</name>

<value>30000</value>

</property>

5.3 yarn-site.xml

<property>

  <name>yarn.resourcemanager.ha.enabled</name>

  <value>true</value>

</property>

<property>

  <name>yarn.resourcemanager.cluster-id</name>

  <value>yrc</value>

</property>

<property>

  <name>yarn.resourcemanager.ha.rm-ids</name>

  <value>rm1,rm2</value>

</property>

<property>

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

  <value>nm1</value>

</property>

<property>

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

  <value>nm2</value>

</property>

<property>

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

  <value>nm1:2181,nm2:2181,node1:2181</value>

</property>

<property>

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

  <value>mapreduce_shuffle</value>

</property>
 
5.4 mapred-site.xml

<property>

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

<value>yarn</value>

</property>


5.5   hadoop-env.sh
export JAVA_HOME=/home/hadoop/jdk1.7.0_80

5.6  core-site.xml

<property>

    <name>fs.defaultFS</name>

        <value>hdfs://ns1</value>

        </property>

<property>  

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

        <value>$HADOOP_HOME/tmp</value>

        </property>             

<property>

    <name>ha.zookeeper.quorum</name>

        <value>nm1:2181,nm2:2181,node1:2181</value>

        </property>

 
5.7  slaves

nm1

nm2

node1

  6、启动

6.1启动zookeeper集群(分别在nm1、nm2、node1上启动zk)
cd $ZKHOME/bin/
./zkServer.sh start
#查看状态:一个leader,两个follower
./zkServer.sh status

6.2启动journalnode(分别在在nm1、nm2、node1上执行)
cd $HADOOP_HOME
sbin/hadoop-daemon.sh start journalnode
#运行jps命令检验,nm1、nm2、node1上多了JournalNode进程   7、启动hadoop
7.1格式化HDFS
#在nm1上执行命令:
hdfs namenode -format
#格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是$HADOOP_HOME/tmp,然后将$HADOOP_HOME/tmp拷贝到nm2的$HADOOP_HOME下。
scp -r tmp/ nm2:$HADOOP_HOME
##也可以这样,建议hdfs namenode -bootstrapStandby

7.2格式化ZKFC(在master01上执行即可)

hdfs zkfc -formatZK

 

7.3启动HDFS(在nm1上执行)
sbin/start-dfs.sh

7.4启动YARN
sbin/start-yarn.sh

到此,hadoop-2.6.2配置完毕,可以统计浏览器访问:
http://nm1:50070
NameNode 'master01:9000' (active)
http://nm2:50070
NameNode 'master02:9000' (standby)

验证HDFS HA
首先向hdfs上传一个文件
hadoop fs -put /etc/profile /profile
hadoop fs -ls /
然后再kill掉active的NameNode
kill -9 <pid of NN>
通过浏览器访问:http://nm2:50070
NameNode 'master02:9000' (active)
这个时候nm2上的NameNode变成了active
在执行命令:
hadoop fs -ls /
-rw-r--r--   3 root supergroup       1926 2014-02-06 15:36 /profile
刚才上传的文件依然存在!!!
手动启动那个挂掉的NameNode
sbin/hadoop-daemon.sh start namenode
通过浏览器访问:http://nm2:50070
NameNode 'weekend01:9000' (standby)

验证YARN:
运行一下hadoop提供的demo中的WordCount程序:
hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /profile /out

测试集群工作状态的一些指令 :
bin/hdfs dfsadmin -report 查看hdfs的各节点状态信息

bin/hdfs haadmin -getServiceState nn1 获取一个namenode节点的HA状态

sbin/hadoop-daemon.sh start namenode  单独启动一个namenode进程

./hadoop-daemon.sh start zkfc   单独启动一个zkfc进程

© 著作权归作者所有

上一篇: ELK框架使用
下一篇: Hadoop常用命令
守望者之父
粉丝 7
博文 89
码字总数 62422
作品 0
南京
私信 提问
hadoop虚拟机环境配置安装图文教程

前两天看到有人留言问在什么情况下需要部署hadoop,我给的回答也很简单,就是在需要处理海量数据的时候才需要考虑部署hadoop。关于这个问题在很早之前的一篇分享文档也有说到这个问题,数据量...

左手的倒影
2018/07/28
22
0
docker 究竟是个什么东西?能解决什么问题?有什么好处?

看了网上的文章,看不懂,什么容器,什么虚拟化隔离,完全搞不懂这些词语。 docker 究竟是个什么东西?能解决什么问题?有什么好处? 我的理解是 docker 是一个小软件 可以运行在 任何它支持...

foxidea
2015/04/10
1K
1
Docker系列一:Docker的介绍和安装

Docker介绍 Docker是指容器化技术,用于支持创建和实验Linux Container。借助Docker,你可以将容器当做重量轻、模块化的虚拟机来使用,同时,你还将获得高度的灵活性,从而实现对容器的高效创...

白天不懂夜的黑i
2018/08/18
0
0
Vagrant 打造跨平台的开发环境

两个项目开发下来,因团队环境不一样,整合修bug成为了一件苦差事。虽然后来搭建了一台测试服务器,但是有时候受网络原因,还是不能连接到测试服务器上。因团队成员能力和习惯都不一样,有的...

cjp路人
2014/08/24
381
0
如何在VMware ESXi 5.5上建立Hyper-V 2012虚拟环境

说明:很多时候,在做虚拟化相关的应用测试时,手头有在用的VMware环境,但测试需要Hyper-V环境,如果此时没有多余的硬件服务器用于部署Hyper-V环境,我们可以充分利用现有的VMWare环境来建立...

ivan_wang
2014/05/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部