hadoop2.6.5+zookeeper在虚拟机环境下的安装
2017-01-20 00:00
411 查看
硬件环境:
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,其余两台显示followe
7fe0
r
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进程
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,其余两台显示followe
7fe0
r
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进程
相关文章推荐
- hadoop分布式安装部署详细视频教程(网盘附配好环境的CentOS虚拟机文件/hadoop配置文件)
- 谈win7下Eclipse环境中向安装在虚拟机中的Hadoop中上传文件为空的解决方法
- Hadoop2.6.5安装部署及环境变量配置
- 在VMWare Workstation上使用RedHat Linux安装和配置Hadoop群集环境03_配置虚拟机之间SSH无密码登录
- hadoop分布式安装部署详细视频教程(网盘附配好环境的CentOS虚拟机文件/hadoop配置文件)
- (三)hadoop虚拟机环境下安装以及配置
- 虚拟机CentOS环境下Hadoop伪分布模式的安装与配置问题总结
- 在Linux系统中配置Hadoop环境(1)---在虚拟机上安装Linux Ubuntu系统
- 本地搭建Hadoop伪分布式环境之一:虚拟机的安装
- 谈win7下Eclipse环境中向安装在虚拟机中的Hadoop中上传文件为空的解决方法
- 在虚拟机下安装hadoop集成环境(centos7+hadoop-2.6.4+jdk-7u79)
- 在VMWare Workstation8.0上使用ubuntu11安装和配置Hadoop群集环境02_配置虚拟机之间SSH无密码登录
- Ambari部署Hadoop环境&安装ZooKeeper
- 最新hadoop+hbase+spark+zookeeper环境安装(vmmare下)
- 在VMWare Workstation上使用RedHat Linux安装和配置Hadoop群集环境01_虚拟机的安装
- VMWare Workstation上使用RedHat Linux安装和配置Hadoop群集环境03_配置虚拟机之间SSH无密码登录
- centos 7 安装+hadoop2.6.5环境部署(伪分布式)
- Hadoop 2.6.5 Windows环境下安装
- 在虚拟机上安装5节点Hadoop分布式集群(HA)-环境准备
- 详细虚拟机hadoop集群环境安装步骤