四台机器 bei1 bei2 bei3 bei4
java
NN | DN | ZK | ZKFC | JN | RM | NM(任务管理)node |
|
bei1 | Y | Y | Y | ||||
bei2 | Y | Y | Y | Y | Y |
Y | Y |
bei3 | Y | Y | Y | Y | |||
bei4 | Y | Y | Y |
一、升级组件以及关闭防火墙c++
yum -y updateapache
PS: 若是使用本地yum源可省略该项bootstrap
新开终端在升级组件的同时操做减小等待时间vim
# service iptables stoptomcat
# chkconfig iptables offbash
二、修改/etc/hosts文件中IP与主机映射关系 ssh
# vi /etc/hostside
192.168.31.131 bei1
192.168.31.132 bei2
192.168.31.133 bei3
192.168.31.134 bei4
三、若是是虚拟机修改/etc/sysconfig/network-scripts/ifcfg-eth0删除UUID和MAC地址
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
四、删除/etc/udev/rules.d/70-persistent-net.rules 默认网卡MAC生成规则文件
# rm -rf /etc/udev/rules.d/70-persistent-net.rules
PS:若是是其它NODE节点不是虚拟机克隆或者源虚拟机复制的可省略第三、4两项
五、yum升级后重启主机
六、准备环境
6.一、yum -y install gcc gcc-c++ autoconf automake cmake ntp rsync ssh vim
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
PS:以上一些程序可能对于hadoop并不须要但为了之后安装其它程序可能会用到尤为是源码安装
其中重要的三个程序是必须安装的
ssh 用于节点间通讯 我选用的是CentOS6.7的版本默认已经安装了openssh
rsync 用于远程同步
ntp 用于时间同步
6.二、当6.1中第一个yum安装完成后新开终端进行NTP时间同步该项很重要
6.2.1 配置ntp启动项
chkconfig ntpd on
6.2.2 同步时间
ntpdate ntp.sjtu.edu.cn
6.2.3 启动ntpd服务
/etc/init.d/ntpd start
6.2.4 验证ntp服务已经运行
pgrep ntpd
6.2.5 初始同步
ntpdate -u ntp.sjtu.edu.cn
6.2.6 确认同步成功
ntpq -p
PS:能够一次性输入以上命令
chkconfig ntpd on
ntpdate ntp.sjtu.edu.cn
/etc/init.d/ntpd start
pgrep ntpd
ntpdate -u ntp.sjtu.edu.cn
ntpq -p
等待6.2.1yum成功后建议重启主机
七、安装jdk
7.1 将jdk考到家目录中
7.2 rpm -ivh jdk_xxxxxxxx.rpm
7.3 jdk安装目录默认为/usr/java/jdk1.7.0_79
7.4 配置jdk环境变量
# vim ~/.bash_profile
增长如下四行
export JAVA_HOME=/opt/sxt/soft/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/opt/sxt/soft/hadoop-2.5.1
export PATH=$PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
编辑完成后使用source命令使文件~/.bash_profile生效执行如下命令
source ~/.bash_profile
检查环境变量
printenv
八、安装tomcat (这步可省略,不过之后确定有用)
将tomcat拷贝到/opt/sxt下解压
# tar -zxvf apache-tomcat-xxxxx.tar.gz
九、将Hadoop 上传到/opt/sxt
# tar -zxvf hadoop-2.5.1_x64.tar.gz
9.1 建立hadoop.tmp.dir目录及建立
# mkdir -p /opt/hadooptmp
9.2 etc/hadoop/core-site.xml:
<property>
<name>fs.defaultFS</name>
<value>hdfs://bjsxt</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>bei1:2181,bei2:2181,bei3:2181</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadooptmp</value>
<!-- 临时文件地址 -->
</property>
9.3 etc/hadoop/hdfs-site.xml:
<property>
<name>dfs.nameservices</name>
<value>bjsxt</value>
</property>
<property>
<name>dfs.ha.namenodes.bjsxt</name>
<value>nn1,nn2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.bjsxt.nn1</name>
<value>bei1:8020</value>
</property>
<property>
<name>dfs.namenode.rpc-address.bjsxt.nn2</name>
<value>bei2:8020</value>
</property>
<property>
<name>dfs.namenode.http-address.bjsxt.nn1</name>
<value>bei1:50070</value>
</property>
<property>
<name>dfs.namenode.http-address.bjsxt.nn2</name>
<value>bei2:50070</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://bei2:8485;bei3:8485;bei4:8485/bjsxt</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.bjsxt</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>
<name>dfs.ha.fencing.methods</name>
<value>sshfence</value>
</property>
<property>
<name>dfs.ha.fencing.ssh.private-key-files</name>
<value>/root/.ssh/id_dsa</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/opt/hadooptmp/data</value>
<!-- jn 临时文件地址 -->
</property>
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
9.4 克隆
9.5 修改主机名 IP 网关 mac
修改主机名
vim /etc/sysconfig/network
修改IP地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改DNS
vi /etc/resolv.conf 中的search ,nameserver
十、检查ssh本地免密码登陆
10.1 第一次检查
ssh localhost
PS:远程成功后记得exit退出
10.2 建立本地秘钥并将公共秘钥写入认证文件
# ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
# cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
10.3 再次检查
ssh localhost
PS:一样exit退出
10.4 在NameNode上将~/.ssh/authorized_keys文件复制到各节点上
scp ~/.ssh/authorized_keys root@hadoopsnn:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@hadoopdn1:~/.ssh/authorized_keys
scp ~/.ssh/authorized_keys root@hadoopdn2:~/.ssh/authorized_keys
10.5 编写/opt/sxt/soft/hadoop-2.5.1/etc/hadoop/hadoop-env.sh文件默认 hadoop取不到用户环境变量里的JAVA_HOME因此要手动指定
vim /opt/sxt/soft/hadoop-2.5.1/etc/hadoop/hadoop-env.sh
找到export JAVA_HOME=${JAVA_HOME}
修改成export JAVA_HOME=/opt/sxt/soft/jdk1.7.0_80
增长如下一行
export HADOOP_PREFIX=/opt/sxt/soft/hadoop-2.5.1
十一、 配置安装zookeeper
11.1 三台zookeeper:bei1,bei2,bei3
11.2 编辑zoo.cfg配置文件
修改dataDir=/opt/sxt/zookeeperdatadir
tickTime=2000
dataDir=/opt/sxt/zookeeperdatadir
clientPort=2181
initLimit=5
syncLimit=2
server.1=bei1:2888:3888
server.2=bei2:2888:3888
server.3=bei3:2888:3888
11.3 在dataDir目录中建立一个myid的文件,文件内容为1,2,3
十二、配置hadoop中的slaves 其中放置的是NN
*******这一步开始要认真按步骤作,若修改配置文件了,服务须要重启*******
1三、启动三个zookeeper:/opt/sxt/zookeeper-3.4.6/bin/zkServer.sh start
1四、启动三个JournalNode:./hadoop-daemon.sh start journalnode
1五、在其中一个namenode上格式化:bin/hdfs namenode -format
1六、把刚刚格式化以后的元数据拷贝到另一个namenode上
16.1启动刚刚格式化的namenode :hadoop-daemone.sh start namenode
16.2在没有格式化的namenode上执行:hdfs namenode -bootstrapStandby
16.3启动第二个namenode
1七、在其中一个namenode上初始化zkfc:hdfs zkfc -formatZK
1八、中止上面节点:stop-dfs.sh
1九、全面启动:start-dfs.sh
20、登陆页面jps检查 登陆页面检查