标签:hadoop mapreduce hadoop集群 集群 分布式
转载请注明出处http://blog.csdn.net/l1028386804/article/details/46316051
计算机集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。
集群系统中的单个计算机通常称为节点,通常通过局域网连接。
集群技术的特点:
1、通过多台计算机完成同一个工作。达到更高的效率
2、两机或多机内容、工作过程等完全一样。如果一台死机,另一台可以起作用
(在伪分布模式下继续)
上传jdk-6u24-linux-i586.bin到/home/
#cd /home/
#./jdk-6u24-linux-i586.bin
#mvjdk-6u24-linux-i586.bin jdk
#vi /etc/profile,在文件尾部添加
export JAVA_HOME=/home/jdk
export PATH=$JAVA_HOME/bin:$PATH
保存退出
#source/etc/profile
#java -version
修改机器名
#hostname <机器名>
#vi /etc/sysconfig/network
HOSTNAME=<机器名> 保存退出,重启
修改/etc/hosts
修改/etc/sysconfig/network-scripts/相应的网络配置
关闭防火墙
#service iptables stop
192.168.1.240 hadoop0
192.168.1.241 hadoop1
192.168.1.242 hadoop2
192.168.1.243 hadoop3
DEVICE="eth0"
BOOTPROTO="static"
ONBOOT="yes"
TYPE="Ethernet"
IPADDR=192.168.1.240
PREFIX=24
GATEWAY=192.168.1.1
C:\WINDOWS\system32\drivers\etc\hosts
从namenode到本身及各datanode免密码登录
在各机器上执行
#ssh-keygen -b 1024 -t rsa 一路回车
在~/.ssh/生成文件id_rsa id_rsa.pub
在namenode机器上执行:
#cd ~/.ssh/
#scp id_rsa.pub root@<各datanode的IP>:/home
在各datanode机器上执行:
#cd /home/
#cat id_rsa.pub>>/root/.ssh/authorized_keys
Hadoop运行过程中需要管理远端Hadoop守护进程,在Hadoop启动以后,NameNode是通过SSH(Secure Shell)来无密码登录启动和停止各个DataNode上的各种守护进程的同样原理,DataNode上也能使用SSH无密码登录到NameNode。
#cp hadoop-1.0.4.tar.gz /home
#cd /home
#tar -zxvf hadoop-1.0.4.tar.gz
#mv hadoop-1.0.4 hadoop
#vi /etc/profile
export JAVA_HOME=/home/java
export HADOOP_HOME=/home/hadoop
exportPATH=$JAVA_HOME/bin:$PATH::$HADOOP_HOME/bin
保存退出
#source /etc/profile
export JAVA_HOME=/home/java
export HADOOP_HEAPSIZE=1024
export HADOOP_PID_DIR=/home/hadoop/pids
保存退出
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop0:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/tmp</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.hosts.exclude</name>
<value>/home/hadoop/conf/excludes</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hadoop0:9001/</value>
</property>
hadoop0
hadoop1
hadoop2
hadoop3
把hadoop0的hadoop目录、jdk目录、/etc/hosts、/etc/profile复制到hadoop1,hadoop2、hadoop3节点
#cd $HADOOP_HOME/..
#scp -r hadoop hadoop1:/home
#scp -r hadoop hadoop2:/home
#scp -r hadoop hadoop3:/home
在hadoop0上
第一次启动Hadoop,必须先格式化namenode
#cd $HADOOP_HOME /bin
#hadoop namenode –format
启动Hadoop
#cd $HADOOP_HOME/bin
#./start-all.sh
如果启动过程,报错safemode相关的Exception
执行命令
# hadoop dfsadmin -safemode leave
然后再启动Hadoop
停止Hadoop
cd $HADOOP_HOME/bin
#./stop-all.sh
#hadoop dfsadmin -report
1.修改新节点的/etc/hosts,增加namenode的主机名与IP
2.修改namenode的配置文件conf/slaves
添加新增节点的ip或host
3.在新节点的机器上,启动服务
#cd $HADOOP_HOME/bin
#./hadoop-daemon.sh start datanode
#./hadoop-daemon.sh start tasktracker
4.在NameNode节点执行
# hadoop dfsadmin -refreshNodes
5.均衡block
在新节点上执行(如果是增加多个节点,只需在一个新节点)
#cd $HADOOP_HOME/bin
# ./start-balancer.sh
1. 必须确保slave的firewall已关闭;
2. 确保新的slave的ip已经添加到master及其他slaves的/etc/hosts中,反之也要将master及其他slave的ip添加到新的slave的/etc/hosts中
<property>
<name>dfs.hosts.exclude</name>
<value>/usr/local/hadoop/conf/excludes</value>
</property>
dfs.hosts.exclude定义的文件内容为,每个需要下线的机器,一行一个。
#hadoopdfsadmin -refreshNodes
hadoopdfsadmin -report
可以查看到现在集群上连接的节点
正在执行Decommission,会显示:
DecommissionStatus : Decommission in progress
执行完毕后,会显示:
DecommissionStatus : Decommissioned
一旦完成了机器下架,它们就可以从excludes文件移除了
登录要下架的机器,会发现DataNode进程没有了,但是TaskTracker依然存在,需要手工处理一下
准许进入dfs.hosts/mapred.hosts
必须排除dfs.hosts.exclude/mapred.hosts.exclude
在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束。安全模式主要是为了系统启动的时候检查各个DataNode上数据块的有效性,同时根据策略必要的复制或者删除部分数据块。运行期通过命令也可以进入安全模式。在实践过程中,系统启动的时候去修改和删除文件也会有安全模式不允许修改的出错提示,只需要等待一会儿即可。 NameNode在启动的时候首先进入安全模式,如果datanode丢失的block达到一定的比例(1- dfs.safemode.threshold.pct),则系统会一直处于安全模式状态即只读状态。 dfs.safemode.threshold.pct(缺省值0.999f)表示HDFS启动的时候,如果DataNode上报的block个数达到了 元数据记录的block个数的0.999倍才可以离开安全模式,否则一直是这种只读模式。如果设为1则HDFS永远是处于SafeMode。
hadoop dfsadmin-safemode enter | leave | get |wait
hadoop-test-*.jar TestDFSIO -write -nrFiles 10 -fileSize 1000
hadoop-test-*.jar TestDFSIO -read -nrFiles 10 -fileSize 1000
hadoop job –list #列出正在运行的Job
hadoop job –kill <job_id> #kill job
hadoop fsck / #检查HDFS块状态,是否损坏
hadoop fsck / -delete #检查HDFS块状态,删除损坏块
hadoop dfsadmin –report #检查HDFS状态,包括DN信息
hadoop dfsadmin –safemode enter | leave
Namenode与Datanode是互相都可以ssh无密码访问
在hosts文件中127.0.0.1 不要与hadoop0一起设置
标签:hadoop mapreduce hadoop集群 集群 分布式
原文地址:http://blog.csdn.net/l1028386804/article/details/46316051