hadoop 真实环境完全部署

前提 我们假设有三台机器分别为 master 192.168.0.106
slave1 192.168.0.105
slave2 192.168.0.107
他们的普通用户名字分别为 master slave1 slave2

安装hadoop集群真实环境大阶段分为三个步骤
1.安装jdk
2.安装hadoop
3.安装ssh

下面从这三个方面进行介绍保证成功安装以及部署
1.安装jdk不推荐利用系统方法 sudo apt-get install XX
这种方式

推荐使用从官网下载jdk1.8的压缩包,实现免安装版的

2.安装hadoop

推荐使用从官网下载hadoop1.2.1的压缩包,实现免安装版的


1,2安装方法类似

我们假设jdk hadoop安装到 unbuntu的系统文件夹 /opt
/opt是系统文件夹 要修改权限

a.   chmod a+x /opt
b.   拷贝hadoop-1.2.1.zip jdk1.8.0_66.zip
c.   sudo tar -xvf jdk1.8.0_66.tar.gz (使用tab按键进行补全)
d.   sudo tar -xvf hadoop-1.2.1.tar.gz

上述已经解压完毕
接下来需要配置环境变量,不在bin目录下便可以执行java 指令和hadoop指令
export JAVA_HOME=/opt/jdk1.8.0_66
export PATH=/opt/jdk1.8.0_66/bin:${PATH}
执行java -version 看到相关jdk信息安装成功,不过有一点小问题需要交代,在下文中hadoop
安装之后一起叙述

配置hadoop环境变量
export HADOOP_HOME=/opt/hadoop-1.2.1
export PATH=/opt/hadoop-1.2.1/bin:${PATH}

hadoop -version
执行java -version 看到相关jdk信息安装成功

问题:当我们把当前终端窗口关闭掉后 ,
下次重新打开终端执行java -version hadoop -version
发现错误
java 未找到指令
hadoop未找到指令
这样错误的原因是因为  并没有在unbuntu的/etc/profile
添加环境变量的语句
终端执行  sudo gedit /etc/profile
添加
export HADOOP_HOME=/opt/hadoop-1.2.1
export JAVA_HOME=/opt/jdk1.8.0_66
expot PATH=.:$/HADOOP_HOME/bin:$/JAVA_HOME/bin:${PATH}
这样就解决了,下次打开终端指令找到不到的原因

总结 上文 我们解决了1.2步骤 jdk,hadoop的安装

多台机器同理安装,也可以等建立了ssh连接后 使用scp指令
拷贝文件使多台机器达到配置环境一样的需求


3.ssh安装


公钥  告诉别人自己的公钥
私钥  只是留给自己使用,谁也不能告诉

a把自己的公钥 给了 b,c
a发了一段信息给b,c  
b,c用公钥解密看到了信息,除了b,c以外的用户都看不到
这个时候,b发送给a一个信息,信息的内容并不想让c知道
b发的信息通过a给b,c的公钥加密
a用自己的私钥解密


ssh 本地免密码登录原理
1.生成公钥
2.id_rsa.pub拷贝至authorized_keys
ssh localhost 测试是否需要在输入密码
如果需要修改文件权限即可解决


ssh 不同物理机免密码登录原理
1.master生成公钥
2.master把公钥发送给slave1 slave2
3.并拷贝至slave1,slave2的.ssh目录下的authorized_keys

如果出现permission deny等情况请你考虑authoried_keys文件权限是否为600
如果是检测 .ssh文件夹权限 以及父目录权限,本文之前博客有描述

 
ssh 安装生成公钥前往要用rsa算法!!!!在stackoverflow查询到
dsa算法在最新版的ssh安装是禁止被使用的!!就会出现ssh 'slave1@192.168.0.107' (注意这是 ssh 免密码登录普通用户slave )
ssh 192.168.0.107(ip地址) (事实上这是 免密码登录root用户!)


1、安装ssh

直接 sudo apt-get install openssh-server

2、查看ssh运行状态

ps -e | grep ssh

如果发现 sshd 和 ssh-agent 即表明 ssh服务基本运行正常

3、生成公钥和私钥

ssh-keygen -t rsa -P ""

4、将公钥追加到文件

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

5、测试ssh localhost

如果发现不用输入密码就可以登录那么 ssh无密码机制就算建立成功了。

6、失败原因之一:.ssh及其下属子文件的权限问题:

首选.ssh目录权限是700, 两个dsa 和 rsa的 私钥权限是600,其余文件权限是644.

ssh 不同物理机的具体步奏

1.首先我们需要在A机器上生成一对公钥和密钥对,生成的方法如下:

ssh-keygen -t rsa -P ''

2.使用如上述的命令,我们可以直接将A机器上的公钥拷贝到目标登录机上面,
实际上是复制到了 /root/.ssh/authorized_keys文件里
,其实我们也可以直接使用scp来进行拷贝,但要注意的是保证权限能够访问

 ssh-copy-id -i ~/.ssh/id_rsa.pub slave1@192.168.0.107

注意:第一需要输入密码来进行拷贝

 ssh 'slave1@192.168.0.107' 就再也不提示输入密码了

Last login: Tue Aug 30 11:42:01 2016 from 10.16.59.100


可能会遇到这样的问题 重复生成了公钥

ssh出错 sign_and_send_pubkey: signing failed: agent refused operation
Posted on2016-05-26

在服务器添加完公钥之后,ssh服务器然后报了这个错误

sign_and_send_pubkey: signing failed: agent refused operation

然后执行了以下命令才好。。

eval "$(ssh-agent -s)"
ssh-add

到此,ssh本地免密码不同物理机免密码成功,
我们想实现master ,slave1,slave2互相面密码登录就互发公钥就好啦

接下来是hadoop的配置

cd /opt/hadoop-1.2.1/conf
要修改如下几个文件 修改之后将 hadoop1.2.1 利用scp指令拷贝到其他机器上相同文件夹覆盖即可
hadoop.env文件修改jdk路径默认的是系统的
 
# The java implementation to use.  Required.
export JAVA_HOME=/opt/jdk1.8.0_66/


core-site.xml
<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://192.168.0.106:9000</value>  (填写主机地址)
    </property>

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/${user.name}/hadoop-data/tmp</value> (生成hadoop存储data的文件夹)
    </property>
</configuration>


hdfs.xml

<configuration>
    <property>
        <name>dfs.name.dir</name>
        <value>/home/${user.name}/hadoop-data/hdfs/name</value>
    </property>
    <property>
        <name>dfs.data.dir</name>
        <value>/home/${user.name}/hadoop-data/hdfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>

</configuration>

mapred-site
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>192.168.0.106:9001</value>
    </property>
</configuration>
slaves

192.168.0.105
192.168.0.107
填写其他子机器的ip地址

然后通过指令scp 拷贝其他的机器相同路径
U盘也可以。。不推荐

启动hadoop

执行指令
hadoop namenode -format

cd /opt/hadoop-1.2.1/bin

执行 start-dfs

就会看到 stat namenode start datanode start jobtracker 到此hadoop真实环境部署完全成功!

修改/etc/hosts

/etc/hostname 就不叙述了小问题

相关资源下载链接

http://download.csdn.net/detail/sz457763638/9718176

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值