hadoop集群部署-笔记
时间:2025-04-03
时间:2025-04-03
hadoop集群部署
1) 安装jdk
下载jdk-6u21-linux-i586.bin 然后修改/etc/profile:
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$PATH:$JAVA_HOME/bin
保存,并执行source /etc/profile 2) 配置host
Namenode的机器,需要配置集群中所有机器的ip 修改/etc/hosts
10.10.236.190 master 10.10.236.191 slave-A 10.10.236.193 slave-B
其他的datanode的/etc/hosts 只需要配置namenode的机器ip和本机ip
10.10.236.190 master 10.10.236.191 slave-A
修改hostname(可选)
vi /proc/sys/kernel/hostname 3) 建立ssh无密码登录 首先进到root目录下
root@master:~# $ssh-keygen -t rsa
进入.ssh目录
root@master:~/.ssh# cp id_rsa.pub authorized_keys
其余的datanode的机器 新建.ssh目录
root@slave-A:~# mkdir .ssh
在name(master)上远程拷贝
root@master:~/.ssh# scp authorized_keys slave-A:/root/.ssh/
测试ssh
4) 安装hadoop
下载Hadoop 解压到每台服务器的/data/soft 解压
root@master:/data/soft# tar zxvf hadoop-0.21.0.tar.gz
建立软连
root@master:/data/soft# ln -s hadoop-0.21.0 hadoop
然后修改/etc/profile
export HADOOP_HOME=/data/soft/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
5) 配置hadoop
1.修改conf/hadoop-env.sh,添加jdk支持
export JAVA_HOME=/usr/local/jdk
如果ssh端口不是默认的22,在conf/hadoop-env.sh里改下。如:
export HADOOP_SSH_OPTS="-p 1234"
2.修改conf/core-site.xml,增加下面内容
<property>
<name>http://www.77cn.com.cn</name>
<value>hdfs://master:54310</value> //这个才是真正决定namenode </property> <property>
<name>hadoop.tmp.dir</name>
<value>/data/hdfs/tmp</value> //临时文件,有问题的时候,可以删除 <description>A base for other temporary directories.</description> </property>
3.修改conf/hdfs-site.xml,增加下面内容
<property>
<name>http://www.77cn.com.cn.dir</name>
<value>/data/hdfs/name</value> //namenode持久存储名字空间,事务日志的本地路径 </property> <property>
<name>dfs.data.dir</name>
<value>/data/hdfs/data</value> //datanode存放数据的路径 </property> <property>
<name>dfs.datanode.max.xcievers</name> <value>4096</value> </property> <property>
<name>dfs.replication</name>
<value>1</value> //数据备份的个数,默认是3 </property>
3.修改conf/mapred-site.xml,增加下面内容
<property>
<name>mapred.job.tracker</name> //jobTracker的主机 <value>master:54311</value> </property>
4. .修改conf/masters,这个决定那个是secondarynamenode
master
5 .修改conf/slaves,这个是所有datanode的机器
slaves-A slaves-B
6) 将配置好的hadoop拷贝到所有的datanode
root@master:/data/soft/hadoop/conf# scp -rp /data/soft/hadoop-0.21.0 10.10.236.191:/data/soft/hadoop-0.21.0
在datanode上建立对应的软连
7) 格式化hdfs文件系统的namenode
root@master:/data/soft/hadoop# bin/hadoop namenode –format
输入Y
8) 启动hadoop集群
root@master:/data/soft/hadoop# bin/start-all.sh
9) Hdfs操作 建立目录
root@master:/data/soft/hadoop # bin/hadoop dfs -mkdir testdir
查看现有文件
root@master:/data/soft/hadoop # bin/hadoop dfs -ls
10) 关闭Hdfs
root@master:/data/soft/hadoop# bin/stop-all.sh
hadoop部署注意项
namenode磁盘: sas带RAID,多磁盘存储文件系统元信息.
datanode配置: 不带RAID, 双网卡: 一个用于内部数据传输,一个用于外部数据传输.
hadoop各节点的分布:namenode和jobtracker部署:namenode与jobtracker分离.tasktracker与datanode配对. Trash: hadoop回收站功能默认是禁止的,删除文件,就是直接删除了,所以要记得配置好trash。trash功能还是不错的,当rm后,它会move到当前文件夹下的.Trash目录下,误删文件后,可以到对应的.Trash目录下恢复文件,参考配置属性fs.trash.interval。 备份:namendoe的元数据切记做好多处备份,包括热备和冷备,否则元数据一丢,整个集群的数据都无法恢复了。热备:namenode的元数据配置写两份,一分写本地,另一份写远程nfs。冷备:定时拷贝namenode的元数据到远程的nfs,保留十天甚至更长。 Datanode的数据目录:如果datanode对应的机器上有多块磁盘,例如/disk1-/disk3,dfs.data.dir可以配置
为”/disk1/data,/disk2/data,/disk3/data”,datanode会在写数据时,以轮询的方式选择一个目录写入数据,一般这些目录是不同的块设备,不存在的目录会被忽略掉,参考配置属性dfs.data.dir.datanode如果有多个磁盘不建议做raid,因为做raid会有性能损失,还会导致一个磁盘坏了,整个硬盘也不能用了,而hadoop可以规避这个问题。
Tasktracker的中间输出目录: MapReduce产生的中间数据会特别多,为了减少磁盘压力,如果机器有多个磁盘,也可以像datanode的数据目录设为”/disk1/local,/disk2/local,/disk3/local”,参考配置属性mapred.local.dir。
map和reduce任务的JVM选项:mapred.child.java.opts配置map和reduce子进程的JVM属性,如果内存充裕,可以改为 -Xmx2400m.
Tasktracker的map和reducer数量配置: 属性mapred.tasktracker.map.tasks.maximum配置这个tasktracker同时可以最多跑多少个 …… 此处隐藏:12182字,全部文档内容请下载后查看。喜欢就下载吧 ……