|
http://archive-primary.cloudera.com/cdh5/cdh/5/
一.准备工作
1.修改Linux主机名,每台都得配置
[root@h24 ~]# vim /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=h201
2.修改IP /etc/sysconfig/network-scripts/ifcfg-eth0
3.修改主机名和IP的映射关系(h24,h25为主,h21,h22,h23为从)
[root@h24 ~]# vim /etc/hosts
192.168.1.21 h21
192.168.1.22 h22
192.168.1.23 h23
192.168.1.24 h24
192.168.1.25 h25
######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机、阿里云主机等)
/etc/hosts里面要配置的是内网IP地址和主机名的映射关系
4.关闭防火墙
#查看防火墙状态
[root@h24 ~]# service iptables status
#关闭防火墙
[root@h24 ~]# service iptables stop
#查看防火墙开机启动状态
[root@h24 ~]# chkconfig iptables --list
#关闭防火墙开机启动
[root@h24 ~]# chkconfig iptables off
5台机器 创建hadoop 用户
[root@h24 ~]# useradd hadoop
[root@h24 ~]# passwd hadoop
hadoop 密码:123456
前4步用root用户操作,操作完后重启机器
5.ssh免登陆hadoop用户操作
[root@h24 ~]# su - hadoop
#生成ssh免登陆密钥
#进入到我的home目录
cd ~/.ssh
ssh-keygen -t rsa (四个回车)
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
[hadoop@h21 ~]$ ssh-keygen -t rsa
[hadoop@h22 ~]$ ssh-keygen -t rsa
[hadoop@h23 ~]$ ssh-keygen -t rsa
[hadoop@h24 ~]$ ssh-keygen -t rsa
[hadoop@h25 ~]$ ssh-keygen -t rsa
[hadoop@h21 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
[hadoop@h21 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
[hadoop@h21 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
[hadoop@h21 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
[hadoop@h21 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
[hadoop@h22 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
[hadoop@h22 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
[hadoop@h22 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
[hadoop@h22 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
[hadoop@h22 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
[hadoop@h23 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
[hadoop@h23 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
[hadoop@h23 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
[hadoop@h23 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
[hadoop@h23 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
[hadoop@h24 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
[hadoop@h24 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
[hadoop@h24 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
[hadoop@h24 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
[hadoop@h24 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
[hadoop@h25 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h21
[hadoop@h25 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h22
[hadoop@h25 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h23
[hadoop@h25 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h24
[hadoop@h25 ~]$ ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub h25
6.安装JDK,配置环境变量等root用户操作( //根据自己的路金配置)
卸载系统之前jdk版本(便于已安装的jdk生效)
[root@h24 ~]$rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
[root@h24 tmp]# tar -zxvf jdk-7u25-linux-i586.tar.gz -C /usr/local
[root@h24 ~]# vim /etc/profile 或者在用户下 vim .bash_profile
export JAVA_HOME=/usr/local/jdk1.7.0_25
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile 或者 source .bash_profile
查看java版本
[root@h24 ~]# java -version
————————————————————————————————
(/etc/bashrc
export JAVA_HOME=/usr/jdk1.7.0_25
export JRE_HOME=$JAVA_HOME/jre
export PATH=$JAVA_HOME/bin:$PATH)
————————————————————————————————
二.集群规划:
主机名 IP 安装软件 运行进程
h24 192.168.1.24:jdk、hadoop
namenode resourcemanage
DFSZKFailoverController(zkfc)
h25 192.168.1.25:jdk、hadoop
namenode resourcemanage
DFSZKFailoverController(zkfc)
h21 192.168.1.21:jdk、hadoop、zookeeper
datanode nodemanage
journalnode QuorumPeerMain
h22 192.168.1.22:jdk、hadoop、zookeeper
datanode nodemanage
journalnode QuorumPeerMain
h23 192.168.1.23:jdk、hadoop、zookeeper
datanode nodemanage
journalnode QuorumPeerMain
三.安装步骤:
1.安装配置zooekeeper集群(在hadoop-server3上)
1.1解压
[root@h21 tmp]# tar zxvf zookeeper-3.4.5-cdh5.5.2.tar.gz -C /usr/local/
1.2修改配置
[root@h21 tmp]# cd /usr/localzookeeper-3.4.5/conf/
[root@h21 conf]# cp zoo_sample.cfg zoo.cfg
[root@h21 conf]# vim zoo.cfg
修改添加:
dataDir=/usr/local/zookeeper-3.4.5-cdh5.5.2/data
dataLogDir=/usr/local/zookeeper-3.4.5-cdh5.5.2/log
在最后添加:
server.1=192.168.1.23:2888:3888
server.2=192.168.1.24:2888:3888
server.3=192.168.1.25:2888:3888
保存退出
然后创建一个data文件夹
[root@h21 ~]# cd /usr/local/zookeeper-3.4.5-cdh5.5.2/
[root@h21 zookeeper-3.4.5-cdh5.5.2]# mkdir -pv data log
再创建一个空文件
touch /usr/localzookeeper-3.4.5/data/myid
最后向该文件写入ID
echo 1 > /usr/localzookeeper-3.4.5/data/myid
1.3将配置好的zookeeper拷贝到其他节点
[root@h21 ~]# scp -r /usr/localzookeeper-3.4.5/ h22:/usr/local
[root@h21 ~]# scp -r /usr/localzookeeper-3.4.5/ h23:/usr/local
注意:修改hadoop-server4、hadoop-server5对应/usr/localzookeeper-3.4.5/data/myid内容
hadoop-server4:
echo 2 > /usr/localzookeeper-3.4.5/data/myid
hadoop-server5:
echo 3 > /usr/localzookeeper-3.4.5/data/myid
2.安装配置hadoop集群(在hadoop-server1上操作)
2.1解压
[root@h24 tmp]# tar -zxvf hadoop-2.6.0-cdh5.5.2.tar.gz -C /usr/local/
mv hadoop-2.6.0-cdh5.5.2 hadoop-2.6.0
2.2配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)
#将hadoop添加到环境变量中
vim /etc/profile或者在用户下 vim .bash_profile
export JAVA_HOME=/usr/local/jdk1.7.0_25
export HADOOP_HOME=/usr/local/hadoop-2.6.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
#hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下
[root@h24 local]# cd /usr/local/hadoop-2.6.0/etc/hadoop
2.2.1修改vim hadoop-env.sh
export JAVA_HOME=/usr/local/jdk1.7.0_25
2.2.2修改vim core-site.xml
fs.defaultFShdfs://ns1/hadoop.tmp.dir/usr/local/hadoop-2.6.0/tmpha.zookeeper.quorumh21:2181,h22:2181,h23:21812.2.3修改vim hdfs-site.xml dfs.nameservicesns1dfs.ha.namenodes.ns1nn1,nn2dfs.namenode.rpc-address.ns1.nn1h24:9000dfs.namenode.http-address.ns1.nn1h24:50070dfs.namenode.rpc-address.ns1.nn2h25:9000dfs.namenode.http-address.ns1.nn2h25:50070dfs.namenode.shared.edits.dirqjournal://h21:8485;h22:8485;h23:8485/ns1dfs.journalnode.edits.dir/usr/local/hadoop-2.6.0/journaldatadfs.ha.automatic-failover.enabledtruedfs.client.failover.proxy.provider.ns1org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProviderdfs.ha.fencing.methodssshfenceshell(/bin/true)dfs.ha.fencing.ssh.private-key-files/home/hadoop/.ssh/id_rsadfs.ha.fencing.ssh.connect-timeout300002.2.4 拷贝生成 [root@h211 hadoop]# cp mapred-site.xml.template mapred-site.xml修改vim mapred-site.xmlmapreduce.framework.nameyarn2.2.5修改vim yarn-site.xmlyarn.resourcemanager.ha.enabledtrueyarn.resourcemanager.cluster-idyrcyarn.resourcemanager.ha.rm-idsrm1,rm2yarn.resourcemanager.hostname.rm1h24yarn.resourcemanager.hostname.rm2h25yarn.resourcemanager.zk-addressh21:2181,h22:2181,h23:2181yarn.nodemanager.aux-servicesmapreduce_shuffle2.2.6修改vim slaves(slaves是指定子节点的位置)h21h22h23—————————————————————————————————————————————————————————————-------------------------------------------********************************************************************************************************2.2.7配置免密码登陆#首先要配置hadoop-server1到hadoop-server2、hadoop-server3、hadoop-server4、hadoop-server5的免密码登陆#在hadoop-server1上生产一对钥匙ssh-keygen -t rsa#将公钥拷贝到其他节点,包括自己ssh-copy-id h201ssh-copy-id h202ssh-copy-id h203ssh-copy-id h204ssh-copy-id h205#注意:resourcemanager到nodemanager要配置免密登录#注意:两个namenode之间要配置ssh免密码登陆,别忘了配置hadoop-server2到hadoop-server1的免登陆在hadoop-server2上生产一对钥匙ssh-keygen -t rsassh-copy-id -i h201**********************************************************************************************************____________________________________________________________________________________________________________2.4将配置好的hadoop拷贝到其他节点[root@h24 ~]$ scp -r /usr/local/hadoop-2.6.0/ h21:/usr/local/[root@h24 ~]$ scp -r /usr/local/hadoop-2.6.0/ h22:/usr/local/[root@h24 ~]$ scp -r /usr/local/hadoop-2.6.0/ h23:/usr/local/[root@h24 ~]$ scp -r /usr/local/hadoop-2.6.0/ h25:/usr/local/授权[root@h24 ~]$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R[root@h25 ~]$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R[root@h21 ~]$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R[root@h22 ~]$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R[root@h23 ~]$chown hadoop.hadoop /usr/local/hadoop-2.6.0/ -R配置环境变量[root@h24 ~]$ su - hadoop[hadoop@h24 ~]$ vi .bash_profile /etc/profileexport JAVA_HOME=/usr/local/jdk1.7.0_25export JAVA_BIN=/usr/local/jdk1.7.0_25/binexport PATH=$PATH:$JAVA_HOME/binexport>通过浏览器访问:http://192.168.1.212:50070NameNode 'h212:9000' (active)这个时候hadoop-server2上的NameNode变成了active这个时候hadoop-server1的网页刷新后 无显示处于宕机状态在执行命令:hadoop fs -ls /-rw-r--r-- 3 root supergroup 1926 2015-06-24 15:36 /profile刚才上传的文件依然存在!!!手动启动那个挂掉的NameNodesbin/hadoop-daemon.sh start namenode通过浏览器访问:http://192.168.1.24:50070NameNode 'h24:9000' (standby)验证YARN:运行一下hadoop提供的demo中的WordCount程序:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar wordcount /profile /outOK,大功告成!!!测试集群工作状态的一些指令 :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@h21 bin]$ ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfgError contacting service. It is probably not running.解决办法[hadoop@h21 bin]$ vim zkServer.sh在文件最后添加jdk环境变量export JAVA_HOME=/usr/jdk1.7.0_25export HADOOP_HOME=/usr/local/hadoop-2.6.0export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin[hadoop@h21 bin]$ ./zkServer.sh stopJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfg[hadoop@h21 bin]$ ./zkServer.sh startJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfg此时其他节点也要开启[hadoop@h21 bin]$ ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfgMode: follower[hadoop@h22 bin]$ ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfgMode: leader[hadoop@h23 bin]$ ./zkServer.sh statusJMX enabled by defaultUsing config: /usr/local/zookeeper-3.4.5-cdh5.5.2/bin/../conf/zoo.cfgMode: follower警告:[hadoop@h24 ~]$ hadoop fs -put WordCount.txt /profile/18/06/21 02:56:39 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java>
|
|
|