Hadoop安装笔记 

 1.本次安装的是hadoop集群环境,使用的是vmware虚拟机和centos等,安装步骤在博客内这篇文件中: 

  





 我使用同网段不同集群安装的虚拟机,保证每个虚拟机如图本机一样可以相互通信。 

 由于我安装了一次centos,所以其他机器的虚拟机是复制这个centos的,密码账号相同 



1)安装ssh和sshd 

sshd是centos中提供的ssh服务,不用安装。 

 

2)master 生成ssh密钥与公钥 

首先把在hadoop master的机器上生成密钥与公钥,把公钥复制到slave机器上,slave机可以无密码信任访问master机了。 

[root@master ~]#  ssh-keygen -t rsa 

输入默认提示保存秘钥的目录如:/root/.ssh/id_rsa 

[root@master ~]# ls /root/.ssh/id_rsa 

id_rsa  id_rsa.pub  目录中生成密钥文件id_rsa和公钥文件id_rsa.pub; 

输入用户密码默认为空。 

生成通信秘钥: 

[root@master ~]# cat id_rsa.pub >> authorized_keys   

把这个授权文件拷贝到slave机器上,就可以让他们互信了。 

 
[hadoop@master ~]$scp authorized_keys 10.132.30.249:/home/root/.ssh/      
[hadoop@master ~]$
#把本机的文件放置到slave机(10.132.30.249)文件目录下,确保远程目录存在
 
 
slave 生成ssh密钥与公钥

 
再在hadoop slave的机器上生成密钥与公钥,如上操作,就可以实现master机无密码访问slave了。 

第二次生成要小心不要覆盖从master机拷贝过来的授信文件authorized_keys,所以生成时重命名,复制到master后,mv掉之前master生成的生成文件authorized_keys 

[root@slave1 ~]# scp authorized_keys1 10.132.30.48:/root/.ssh/ 

注意:对与root用户如上配置既正确,对应hadoop其他用户等, 

[hadoop@master .ssh]$ chmod 644 authorized_keys 

这一步非常关键,必须保证authorized_keys只对其所有者有读写权限,其他人不允许有写的权限,否则SSH是不会工作的。 

 

 

3)为了方便两台机器的访问,修改系统配置文件的主机名称,以后可以使用域名访问. 

配置文件格式说明 

一般/etc/hosts 的内容一般有如下类似内容: 

127.0.0.1 localhost.localdomain localhost 

[root@master ~]# hostname    //查看机器名 

[root@master ~]# hostname -i //查看本机器名对应的ip地址  

在master和slave的hosts文件中配置主机名和对应的ip。 

具体需要修改  /etc/hosts文件,主机名查询静态表,添加如下内容: 

127.0.0.1 localhost.localdomain localhost   #注意不要修改三部分解释: 127.0.0.1:网络IP地址; localhost.localdomain:主机名或域名;  localhost:主机名别名; 

10.132.30.249  com.slave1       slave1      # 

10.132.30.48   com.master       master  

修改 /etc/sysconfig/network 配置文件 

vi /etc/sysconfig/network     

添加本机的ip地址即可如 

master 机10.132.30.249  

做完所有操作,重启机器,可以使用主机名ping通,也发现etc/sysconfig/network 配置文件的本机IP被修改为机器名称了. 

 

3).权限配置 

3.1)建立用户组 

[root@master ~]# groupadd hadoop 

3.2)建立用户 

[root@master ~]# adduser hadoop -g hadoop 

3.3)添加权限 

vi /etc/sudoers 

在文件中添加如下: 

hadoop  ALL=(ALL:ALL) ALL 

 

 

3.4)修改hadoop文件夹用户名,用户组 

[root@slave1 ~]# chown -R hadoop:hadoop /opt/hadoop/ 



4).安装,配置hadoop 

添加hadoop-env.sh环境变量 ,如果是windows编译,记得转码,修改可执行权限 

export JAVA_HOME=/usr/java/jdk1.7.0_09/ 

 

修改hadoop几个重要的配置文件,注意编码格式为utf-8, 



如果将hadoop-env.sh用Windows下的编辑软件编辑以后,使用dos2unix工具修正下,在conf/目录下执行“dos2unix hadoop-env.sh”就OK了。 

 

export HADOOP_HOME=/opt/hadoop/hadoop-1.0.4/ 

export PATH=$PATH:$HADOOP_HOME/bin 

core-site.xml 

<configuration>      

<property>   

  <name>fs.default.name</name>   

  <value>hdfs://localhost:9000</value>   

</property>   

<property> 

  <name>hadoop.tmp.dir</name> 

<value>/hadoop</value> 

</property> 

</configuration>  

 

hdfs-site.xml 

<configuration> 

    <property> 

<name>dfs.replication</name> 

<value>1</value> 

     </property> 

</configuration> 



mapred-site.xml 

<configuration>        

     <property>     

          <name>mapred.job.tracker</name>     

          <value>localhost:9001</value>     

     </property>     

</configuration>   



5).启动hadoop 

[hadoop@master bin]$ ./hadoop namenode -format 

* start-all.sh 启动所有的Hadoop守护。包括namenode, datanode, jobtracker, tasktrack 

* stop-all.sh 停止所有的Hadoop 

* start-mapred.sh 启动Map/Reduce守护。包括Jobtracker和Tasktrack 

* stop-mapred.sh 停止Map/Reduce守护 

* start-dfs.sh 启动Hadoop DFS守护.Namenode和Datanode 

* stop-dfs.sh 停止DFS守护