一、安装zookeeper集群
1.下载并解压zookeeper
[root@node1 soft]# tar -zxf zookeeper-3.4.5.tar.gz -C /usr/local/ [root@node1 soft]# ln -s /usr/local/zookeeper-3.4.5/ /usr/local/zookeeper [root@node1 soft]#
2.创建zookeeper数据目录
[root@node1 zookeeper]#pwd /usr/local/zookeeper [root@node1 zookeeper]#mkdir data [root@node1 zookeeper]#
3.创建zookeeper日志目录
[root@node1 zookeeper]#pwd /usr/local/zookeeper [root@node1 zookeeper]#mkdir logs [root@node1 zookeeper]#
4.配置zookeeper环境变量
[root@node1 zookeeper]#cat /etc/profile.d/zookeeper.sh ZOO_HOME=/usr/local/zookeeper ZOO_LOG_DIR=$ZOO_HOME/logs PATH=$ZOO_HOME/bin:$PATH [root@node1 zookeeper]#. /etc/profile.d/zookeeper.sh [root@node1 zookeeper]#
5.配置zoo.cfg
[root@node1 conf]# pwd /usr/local/zookeeper/conf [root@node1 conf]# cp zoo_sample.cfg zoo.cfg [root@node1 conf]# cat zoo.cfg |grep -v ^$ |grep -v ^# tickTime=2000 initLimit=10 syncLimit=5 dataDir=/usr/local/zookeeper/data clientPort=2181 server.1=node1:2888:3888 server.2=node2:2888:3888 server.3=node3:2888:3888 [root@node1 conf]#
6.复制配置文件到其它节点
[root@node1 ~]# scp -r /usr/local/zookeeper-3.4.5/node2:/usr/local/ [root@node1 ~]# scp -r/usr/local/zookeeper-3.4.5/ node3:/usr/local/ root@node1 ~]# ssh node2ln -s /usr/local/zookeeper-3.4.5/ /usr/local/zookeeper [root@node1 ~]# sshnode3 ln -s /usr/local/zookeeper-3.4.5/ /usr/local/zookeeper [root@node1 ~]# scp/etc/profile.d/zookeeper.sh node2:/etc/profile.d/ zookeeper.sh 100% 82 0.1KB/s 00:00 [root@node1 ~]# scp/etc/profile.d/zookeeper.sh node3:/etc/profile.d/ zookeeper.sh 100% 82 0.1KB/s 00:00 [root@node1 ~]#
7.配置节点ID
[root@node1 ~]# echo 1 >/usr/local/zookeeper/data/myid [root@node1 ~]# ssh node2 "echo 2 >/usr/local/zookeeper/data/myid" [root@node1 ~]# ssh node3 "echo 3 >/usr/local/zookeeper/data/myid"
8.启动和停止zookeeper
[root@node1 ~]#zkServer.sh stop JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED [root@node1 ~]#zkServer.sh start JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@node1 ~]#
9.查看节点信息
[root@node1 ~]# jps 5001 Jps 4821 QuorumPeerMain [root@node1 ~]# ssh node2 jps 3907 Jps 3816 QuorumPeerMain [root@node1 ~]# ssh node3 jps 3957 Jps 3875 QuorumPeerMain [root@node1 ~]#
10.zkCli.sh连接zookeeper服务器
[root@node1 ~]# zkCli.sh Connecting to localhost:2181 WatchedEvent state:SyncConnected type:None path:null [zk:localhost:2181(CONNECTED) 0] ls / [zookeeper] [zk:localhost:2181(CONNECTED) 1]
11.查看zookeeper角色
[root@node1 ~]#zkServer.sh status JMX enabled by default Using config:/usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower [root@node1 ~]# ssh node2 zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: leader [root@node1 ~]# ssh node3 zkServer.sh status JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Mode: follower [root@node1 ~]#
二、安装Hadoop集群
1.下载并解压hadoop
[root@node1 soft]# tar -zxf hadoop-2.2.0.x86_64.tar.gz -C /usr/local/ [root@node1 soft]# ln -s /usr/local/hadoop-2.2.0/ /usr/local/hadoop
2.配置hadoop环境变量
[root@node1 soft]# cat /etc/profile.d/hadoop.sh HADOOP_HOME=/usr/java/hadoop PATH=$HADOOP_HOME/bin:$PATH [root@node1 soft]# . /etc/profile.d/hadoop.sh
3.修改hadoo-env.sh
[root@node1 hadoop]# pwd /usr/local/hadoop/etc/hadoop [root@node1 hadoop]# cat hadoop-env.sh |grep JAVA_HOME|grep -v ^# export JAVA_HOME=/usr/local/default [root@node1 hadoop]#
4.修改core-site.xml
[hadoop@node1 hadoop]$pwd /usr/local/hadoop/etc/hadoop [hadoop@node1 hadoop]$cat core-site.xml |grep -v ^#|grep -v ^$ <?xmlversion="1.0" encoding="UTF-8"?> <?xml-stylesheettype="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定hdfs的nameservice为ns1 --> <property> <name>fs.defaultFS</name> <value>hdfs://ns1</value> </property> <!-- 指定hadoop临时目录 --> <property> <name>hadoop.tmp.dir</name> <value>/hadoop/tmp</value> </property> <!-- 指定zookeeper地址 --> <property> <name>ha.zookeeper.quorum</name> <value>node1:2181,node2:2181,node3:2181</value> </property> </configuration> [hadoop@ node1 hadoop]$
5.修改hdfs-site.xml
[hadoop@node1 hadoop]$pwd /usr/local/hadoop/etc/hadoop [hadoop@node1 hadoop]$cat hdfs-site.xml |grep -v ^#|grep -v ^$ <?xmlversion="1.0" encoding="UTF-8"?> <?xml-stylesheettype="text/xsl" href="configuration.xsl"?> <configuration> <!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致 --> <property> <name>dfs.nameservices</name> <value>ns1</value> </property> <!-- ns1下面有两个NameNode,分别是nn1,nn2 --> <property> <name>dfs.ha.namenodes.ns1</name> <value>nn1,nn2</value> </property> <!-- nn1的RPC通信地址 --> <property> <name>dfs.namenode.rpc-address.ns1.nn1</name> <value>node1:9000</value> </property> <!-- nn1的http通信地址 --> <property> <name>dfs.namenode.http-address.ns1.nn1</name> <value>node1:50070</value> </property> <!-- nn2的RPC通信地址 --> <property> <name>dfs.namenode.rpc-address.ns1.nn2</name> <value>node2:9000</value> </property> <!-- nn2的http通信地址 --> <property> <name>dfs.namenode.http-address.ns1.nn2</name> <value>node2:50070</value> </property> <!-- 指定NameNode的元数据在JournalNode上的存放位置 --> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node1:8485;node2:8485;node3:8485/ns1</value> </property> <!-- 指定JournalNode在本地磁盘存放数据的位置 --> <property> <name>dfs.journalnode.edits.dir</name> <value>/hadoop/journal</value> </property> <!-- 开启NameNode失败自动切换 --> <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</value> </property> <!-- 使用隔离机制时需要ssh免登陆 --> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_rsa</value> </property> </configuration> [hadoop@node1 hadoop]$
6.修改slaves
[hadoop@hadoop01 hadoop]$ pwd /usr/local/hadoop/etc/hadoop [root@node1 hadoop]# cat slaves node1 node2 node3 [root@node1 hadoop]#
7.修改yarn-site.xml
[hadoop@node1 hadoop]$pwd /usr/local/hadoop/etc/hadoop [hadoop@node1 hadoop]$cat yarn-site.xml |grep -v ^$|grep -v ^# <?xmlversion="1.0"?> <configuration> <!-- 指定resourcemanager地址 --> <property> <name>yarn.resourcemanager.hostname</name> <value>node1</value> </property> <!-- 指定nodemanager启动时加载server的方式为shuffle server --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> [hadoop@node1 hadoop]$
8.修改mapred-site.xml
[root@node1 hadoop]# cpmapred-site.xml.template mapred-site.xml [hadoop@node1 hadoop]$pwd /usr/local/hadoop/etc/hadoop [hadoop@node1 hadoop]$cat mapred-site.xml <?xml version="1.0"?> <?xml-stylesheettype="text/xsl" href="configuration.xsl"?> <configuration> <!-- 指定mr框架为yarn方式 --> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> [hadoop@node1 hadoop]$
9.将配置好的hadoop拷贝到其他节点
[root@node1 ~]# scp -r/usr/local/hadoop-2.2.0/ node2:/usr/local/ [root@node1 ~]# scp -r/usr/local/hadoop-2.2.0/ node3:/usr/local/ [root@node1 ~]# sshnode2 ln -s /usr/local/hadoop-2.2.0/ /usr/local/hadoop [root@node1 ~]# ssh node3ln -s /usr/local/hadoop-2.2.0/ /usr/local/Hadoop [root@node1 ~]# scp/etc/profile.d/hadoop.sh node2:/etc/profile.d/ hadoop.sh 100% 58 0.1KB/s 00:00 [root@node1 ~]# scp/etc/profile.d/hadoop.sh node3:/etc/profile.d/ hadoop.sh 100% 58 0.1KB/s 00:00 [root@node1 ~]#
10.启动zookeeper集群(所有zk节点)
[root@node1 ~]#zkServer.sh start JMX enabled by default Using config:/usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ...STARTED [root@node1 ~]# ssh node2 zkServer.sh start JMX enabled by default Using config:/usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ...STARTED [root@node1 ~]# ssh node3 zkServer.sh start JMX enabled by default Using config: /usr/local/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@node1 ~]#
11.启动journalnode
[root@node1 hadoop]#sbin/hadoop-daemons.sh start journalnode
12.格式化HDFS
[root@node1 hadoop]#hadoop namenode -format [root@node1 hadoop]# scp-r /hadoop/tmp/ node2:/hadoop/
13.格式化zk
[root@node1 hadoop]# hdfs zkfc -formatZK
14.启动HDFS
[root@node1 sbin]#./start-dfs.sh
15.启动YARN
[root@node1 sbin]# ./start-yarn.sh
三、修改Tachyon底层文件系统为HDFS
1.修改Tachyon的tachyon-env.sh配置文件
#export TACHYON_UNDERFS_ADDRESS=$TACHYON_HOME/underfs export TACHYON_UNDERFS_ADDRESS=hdfs://node1:9000/ -Dtachyon.master.journal.folder=hdfs://node1:9000/tmp/journal/
2.安装maven
[root@node1 soft]# tar -zxf apache-maven-3.2.3-bin.tar.gz -C /usr/local/ [root@node1 soft]# ln -s /usr/local/apache-maven-3.2.3/ /usr/local/maven [root@node1 soft]# cat /etc/profile.d/maven.sh MAVEN_HOME=/usr/local/maven PATH=$MAVEN_HOME/bin:$PATH [root@node1 soft]# . /etc/profile.d/maven.sh [root@node1 soft]#
3.重新编译Tachyon
[root@node1 tachyon]#cat pom.xml |grep hadoop.version|head -n 1 <hadoop.version>2.2.0</hadoop.version> [root@node1 tachyon]#mvn -Dhadoop.version=2.2.0 clean package
4.复制Tachyon配置到其它节点
[root@node1 ~]# scp -r /usr/local/tachyon-0.5.0/ node2:/usr/local/ [root@node1 ~]# scp -r /usr/local/tachyon-0.5.0/ node3:/usr/local/
5.格式化Tachyon
[root@node1 tachyon]# tachyon format
6.启动Tachyon
[root@node1 tachyon]# tachyon-start.sh all Mount
7.测试Tachyon
[root@node1 tachyon]#tachyon tfs copyFromLocal /boot/initrd-2.6.32-358.el6.x86_64kdump.img /initrd [root@node1 tachyon]#tachyon tfs ls / 4252.11 KB10-08-201416:48:45:715 In Memory /initrd [root@node1 tachyon]#