vmware14+centos7+hadoop2.9+jdk8 搭建记录

1 vmware三个虚拟机创建,设置ip

创建虚拟机没什么可说的,放个图,安装包官网都有


成功后,centos7默认不联网,以centos1为例设置

vi /etc/sysconfig/network-scripts/ifcfg-ens33
点击i进入编辑模式

其中有一项,设置为yes

ONBOOT=yes

完成后点击esc,然后输入:wq保存

重启network

service network restart
查询该虚拟机的ip
ip addr

这里是虚拟机的ip地址


2 jdk安装,hadoop安装(三个虚拟机分别执行)


获得了三个虚拟机的ip之后,winSCP链接(用什么链接工具都可以,反正放弃vmware自带的shell界面,太坑了)

opt下创建了两个文件夹,back和softwares,back放安装包,softwares是安装目录

把jdk和hadoop的压缩包分别传入三个虚拟机里


进入/opt/softwares,执行

tar -zxvf /opt/softwares/jdk-8u151-linux-x64.tar.gz
tar -zxvf /opt/softwares/hadoop-2.9.0.tar.gz

3 环境设置(三个虚拟机分别执行

3.1配置jdk和hadoop环境变量

vi /etc/profile
添加内容

#Java
export JAVA_HOME=/opt/softwares/jdk1.8.0_151
export PATH=$PATH:$JAVA_HOME/bin
#Hadoop
export HADOOP_HOME=/opt/softwares/hadoop-2.9.0
export PATH=$PATH:$HADOOP_HOME/bin
alias tohd='cd /opt/softwares/hadoop-2.9.0/'
JAVA_HOME和HADOOP_HOME都是安装路径,最后输入的是方便访问hadoop目录的快捷命令

使配置生效

source /etc/profile
验证

java -version
hadoop version
看看有输出版本就证明对了


3.2设置hosts

vi /etc/hosts
添加三个虚拟机地址

192.168.30.129 master
192.168.30.130 server1
192.168.30.131 server2

3.3设置防火墙

取消master的防火墙,或者把所有hadoop用到的端口开放,我是直接取消防火墙了

3.4创建hadoop用户

useradd hadoop
passwd 123456

如果提示密码太简单,则再输入一回密码就好了

chown -R hadoop.hadoop /opt
设置opt的所有者为hadoop,这样之后采用hadoop用户操作opt的时候就不会提示权限问题了

3.5 设置主机名

hostnamectl set-hostname 主机名

我三台虚拟机设置的分别是master(namenode的机器,管理机),server1,server2

 

4 ssh免密设置

master作为管理服务器,需要连接server1和server2时候做到无密码连接,所有需要公钥认证。在master上生成公钥私钥,

然后把公钥放在server1和server2上,并且放在授权列表里,就可以实现无密码登录。

此处操作全部使用hadoop用户


4.1 master服务器操作

生成秘钥

cd /home
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

ssh-keygen 生成秘钥

-t rsa 设置秘钥类型为rsa秘钥

-P 无密码

-f 生成的密钥文件

执行命令后一路回车就行,/home/hadoop/.ssh目录下会生成id_rsa.pub(公钥)和id_rsa(私钥)两个文件。

加入信任列表

cd hadoop/.ssh
cat id_rsa.pub >> authorized_keys

authorized_keys这个文件就是ssh信任的公钥文件。

设置.ssh文件夹权限和authorized_keys文件权限

chmod 700 .ssh
chmod 600 .ssh/authorized_keys

4.2 server1和server2进行设置(以server1为例,server2同样操作)

master服务器上,/home/hadoop/.ssh下执行命令

把id_rsa.pub文件放入server1中

scp id_rsa.pub hadoop@server1:/home/hadoop

进入server1服务器,/home/hadoop下 ,创建.ssh文件夹

ssh hadoop@server1
cd /home/hadoop
mkdir .ssh
cd .ssh

把id_rsa.pub公钥放入hadoop用户信任列表

cat id_rsa.pub >> .ssh/authorized_keys
设置权限
chmod 700 ../.ssh
chmod 600 authorized_keys
4.3 验证(master服务器)

ssh server1
ssh server2

如果不需要输入密码,那就证明成功了


5.设置hadoop配置文件

 首先进入master服务器/opt/softwares/hadoop-2.9.0w/etc/hadoop/位置

 需要修改的文件有以下几个


 伪分布模式的话只需要修改hadoop-env.sh,core-site.xml,hdfs-site.xml,我没有试过,直接采用完全分布

5.1 hadoop-env.sh

 配置JAVA_HOME指向jdk安装路径


5.2yarn-env.sh

 同样配置JAVA_HOME

5.3slaves

写入两个node节点的名字


5.4core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/opt/softwares/hadoop-2.9.0/temp</value>
        <description>hadoop的运行临时文件的主目录</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://master:9000</value>
        <description>HDFS的访问路径</description>
    </property>
</configuration>
5.5hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
        <description>文件block的副本数</description>
    </property>
    <property>
        <name>dfs.http.address</name>
        <value>master:50070</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/opt/softwares/hadoop-2.9.0/tmp/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/opt/softwares/hadoop-2.9.0/tmp/dfs/data</value>
    </property>
</configuration>


5.6 mapred-site.xml

<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>master:9001</value>
    </property>
    <property>
        <name>mapred.map.tasks</name>
        <value>20</value>
    </property>
    <property>
        <name>mapred.reduce.tasks</name>
        <value>4</value>
    </property>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

5.7 yarn-site.xml
<configuration>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>

    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>

    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>

    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>

    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>

    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
        <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
</configuration>
5.8 复制到server1 server2

此时所在目录为/opt/softwares/hadoop-2.9.0/etc/hadoop,执行命令

scp * hadoop@server1:/opt/softwares/hadoop-2.9.0/etc/hadoop
scp * hadoop@server2:/opt/softwares/hadoop-2.9.0/etc/hadoop
 会把刚才配置的xml发送到server1和server2上


6.验证(在master上执行)

 进入hadoop根目录,执行命令,格式化namenode,无报错代表执行成功

bin/hdfs namenode -format
 启动hdfs

sbin/start-dfs.sh
 执行完成之后,在master上 执行jps之后能看namenode和secondarynamenode两个进程,在server1和server2上执行能看到datanode进程


启动yarn

sbin/start-yarn.sh
 执行完成之后,在master上执行jps能看到namenode,secondarynamenode,resourcemanage,在server1和server2上执行能看到datanode和nodemanager


查看集群状态

bin/hdfs dfsadmin –report
 浏览器访问master:50070 查看hdfs状态


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值