日期:2014-05-16  浏览次数:20396 次

hadoop,hbase,hive安装全记录

操作系统:CentOS 5.5
Hadoop:hadoop-0.20.203.0
jdk1.7.0_01
namenode主机名:master,namenode的IP:10.10.102.15
datanode主机名:slave1,datanode的IP:10.10.106.8
datanode主机名:slave2,datanode的IP:10.10.106.9
一、hadoop 安装
1、建立用户
useradd hadoop
passwd hadoop
2. 安装 JDK *
先查看是否安装了java,并确定其版本,如果没有安装
rpm -i jdk-7u1-linux-x64.rpm
默认安装在/usr/java/下
3.设置环境变量 *
编辑 /etc/profile 文件,设置 JAVA_HOME 环境变量以及类路径:
export JAVA_HOME=/usr/java/jdk1.7.0_01(在8中用的是jdk1.6.0_25)
export JRE_HOME=/usr/java/jdk1.7.0_01/jre
export CLASSPASH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
4. 添加 hosts 的映射 *
编辑 /etc/hosts 文件:
10.10.102.15 master
10.10.106.8 slave1
10.10.106.8 slave2
5、配置SSH
这里暂时只是设置了master连接slave不需密码。slave连接master没设置。
[hadoop@master:~]$ssh-keygen? -t? rsa #在hadoop的根目录下,创建密钥对,放在.ssh文件夹中
[hadoop@master:.ssh]$cp id_rsa.pub authorized_keys? #进入.ssh,将公钥加入到authorized_keys
[hadoop@slave1:~]$mkdir .ssh #在slave1、slave2中建立目录
[hadoop@slave2:~]$mkdir .ssh
[hadoop@master:.ssh]$scp authorized_keys slave1:/home/hadoop/.ssh/ #将master的公钥给另外两者
[hadoop@master:.ssh]$scp authorized_keys slave2:/home/hadoop/.ssh/
Ssh 权限配置问题:(任何一点权限的配置错误有血的教训~~)
用户目录权限为 755 或者 700就是不能是77x
.ssh目录权限必须为755
rsa_id.pub 及authorized_keys权限必须为644
rsa_id权限必须为600
最后,在master中测试:ssh localhost date、ssh slave1 date、ssh slave2 date。不需要密码,则成功。
6、安装hadoop。
以master为例,slave完全相同
(1)[hadoop@master:~]$tar xzvf hadoop-0.20.203.0rc1.tar.gz? #解压
(2)添加环境变量
export HADOOP_HOME=/home/hadoop/hadoop-0.20.203.0
export PATH=$PATH:$HADOOP_HOME/bin
(3)创建hadoop本地临时文件夹
(如果设置临时文件夹,而是用默认/tmp/下,那因为其空间小,hdfs放几个大文件就报错)
[hadoop@master:~]mkdir tmp?
注意:tmp一定要有hadoop的读写权限,否则datanode 会 format失败。依然是血的教训啊~
(4)
修改masters:
master
修改slaves:
slave1
slave2

(5)配置hadoop
hadoop/conf/core-site.xml
<configuration>
???? <property>
??????????? <name>hadoop.tmp.dir</name>
??????????? <value>/home/hadoop/tmp/</value>
???? </property>

<!-- file system properties -->
????? <property>
??????????? <name>fs.default.name</name>
??????????? <value>hdfs://master:54310</value>
????? </property>
????? <property>
??????????? <name>io.sort.mb</name>? #指定了排序使用的内存,大的内存可以加快 job 的处理速度。
??????????? <value>1024</value>?
????? </property>

</configuration>
hadoop/conf/mapred-site.xml
<configuration>
????? <property>
??????????? <name>mapred.job.tracker</name>
??????????? <value>master:54311</value>
????? </property>
????? <property>
??????????? <name>mapred.map.child.java.opts</name>? #指定 map/reduce 任务使用的最大堆内存。较小的内存可能导致程序抛出

OutOfMemoryException 。
??????????? <value>-Xmx4096m</value>
????? </property>
????? <property>
??????????? <name>mapred.reduce.child.java.opts</name>
??????????? <value>-Xmx4096m</value>
????? </property>
</configuration>
hadoop/conf/hdfs-site