您的位置:首页 > 运维架构

hadoop集群环境搭建笔记

2013-05-21 14:58 423 查看
Hadoop安装笔记

1.本次安装的是hadoop集群环境,使用的是vmware虚拟机和centos等,安装步骤在博客内这篇文件中:
http://blog.csdn.net/huoyunshen88/article/details/8938289
我使用同网段不同集群安装的虚拟机,保证每个虚拟机如图本机一样可以相互通信。

由于我安装了一次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 J***A_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守护

SSH节点互信参考文章:http://blog.csdn.net/yangning5850/article/details/7547813

主机修改名称参考文章:http://blog.csdn.net/LinuxZhouYing/article/details/7278429
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: