生产环境hadoop集群部署在物理机上好还是虚拟机上好

2024-12-25 20:21:27
推荐回答(2个)
回答1:

前期准备
l 两台linux虚拟机(本文使用redhat5,IP分别为 IP1、IP2)
l JDK环境(本文使用jdk1.6,网上很多配置方法,本文省略)
l Hadoop安装包(本文使用Hadoop1.0.4)
搭建目标
210作为主机和节点机,211作为节点机。
搭建步骤
1修改hosts文件
在/etc/hosts中增加:

IP1 hadoop1
IP2 hadoop2

2 实现ssh无密码登陆
2.1 主机(master)无密码本机登陆

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

直接回车,完成后会在 ~/.ssh/ 生成两个文件: id_dsa 和 id_dsa.pub 。
这两个是成对出现,类似钥匙和锁。
再把 id_dsa.pub 追加到授权 key 里面 ( 当前并没有 authorized_key s文件 ) :

cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

ssh localhost hostname

还是要输入密码,一般这种情况都是因为目录或文件的权限问题,看看系统日志,确实是权限问题
.ssh下的authorized_keys权限为600,其父目录和祖父目录应为755

2.2 无密码登陆节点机(slave)
slave上执行:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

生成.ssh目录。
将master上的authorized_keys复制到slave上:

scp authorized_keys hadoop2:~/.ssh/

实验:在master上执行

ssh hadoop2

实现无密码登陆。
3 配置Hadoop
3.1拷贝hadoop
将hadoop-1.0.4.tar.gz ,拷贝到usr/local 文件夹下,然后解压。
解压命令:

tar –zxvf hadoop-1.0.4.tar.gz

3.2查看 cat /etc/hosts

IP1 hadoop1
IP2 hadoop2

3.3 配置 conf/masters 和 conf/slaves
conf/masters:
1

IP1

conf/slaves:
1
2

IP2
IP2

3.4 配置 conf/hadoop-env.sh
加入
1

export JAVA_HOME=/home/elvis/soft/jdk1.7.0_17

3.5 配置 conf/core-site.xml
1
2
3
4


fs.default.name
hdfs://IP1:9000


3.6 配置 conf/hdfs-site.xml
加入


dfs.http.address
IP1:50070


dfs.name.dir
/usr/local/hadoop/namenode


dfs.data.dir
/usr/local/hadoop/data


dfs.replication
2


3.7 配置conf/mapred-site.xml
加入


mapred.job.tracker
192.168.1.50:8012


3.8 建立相关的目录
1

/usr/local/hadoop/ //hadoop数据和namenode目录

【注意】只创建到hadoop目录即可,不要手动创建data和namenode目录。
其他节点机也同样建立该目录。
3.9 拷贝hadoop文件到其他节点机
将hadoop文件远程copy到其他节点(这样前面的配置就都映射到了其他节点上),
命令:
1

scp -r hadoop-1.0.4 IP2:/usr/local/

3.10 格式化Active master
命令:

bin/hadoop namenode -format

3.11 启动集群 ./start-all.sh
现在集群启动起来了,看一下,命令:
1

bin/hadoop dfsadmin -report

2个datanode,打开web看一下
浏览器输入:IP1:50070
打完收工,集群安装完成!

回答2:

大讲台 实战项目最多的Hadoop在线学习平台