硬件配置:1台NameNode节点、2台DataNode节点

一、Linux环境配置

这里我只配置NameNode节点,DataNode节点的操作相同。

1.1、修改主机名

命令:vi /etc/sysconfig/network
修改内容:
NETWORKING=yes
HOSTNAME=master
命令:hostname master

1.2、修改ip地址(桥接模式)

命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改内容:(保留最简配置)
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.12.80
NETMASK=255.255.255.0
GATEWAY=192.168.12.254
命令:service network restart 重启网络服务

1.3、配置主机名和ip地址的映射关系

命令:vi /etc/hosts
修改内容:
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.12.80 master
192.168.12.81 slave1
192.168.12.82 slave2

1.4、关闭防火墙

命令:service iptables status 查看防火墙状态
命令:service iptables stop  关闭防火墙

1.5、设置防火墙开机不启动

命令:chkconfig iptables --list 查看防火墙开机启动状态
命令:chkconfig iptables off  设置防火墙开机不启动

二、java环境配置

使用软件SSHSecureShellClient进行文件的上传、远程命令执行等。

2.1、上传jdk

创建文件夹用于存放jdk文件,下载用于linux操作系统的jdk版本。
命令:mkdir java

2.2、解压jdk

命令:tar -zxvf jdk-8u121-linux-x64.tar.gz -C /home/bi/java

2.3、修改环境变量

命令:vi /etc/profile
修改内容:
export JAVA_HOME=/home/bi/java/jdk1.8.0_121
export PATH=${JAVA_HOME}/bin:$PATH
命令:source /etc/profile 重新加载环境变量脚本

2.4、验证java是否生效

命令:java -version

2.5、将java文件夹复制到DataNode节点下,并配置JDK环境变量

命令:
scp -r java bi@slave1:/home/bi/java
scp -r java bi@slave2:/home/bi/java

三、hadoop环境配置

3.1、上传hadoop安装包

创建文件夹用于存放hadoop安装文件
命令:mkdir hadoop

3.2、解压hadoop安装包

命令:tar -zxvf hadoop-2.7.3.tar.gz -C /home/bi/hadoop
在hadoop中有几个重要的目录:
sbin:启动或者停止hadoop相关服务的脚本
bin:对hadoop相关服务进行操作的脚本
etc:hadoop相关配置文件
share:hadoop依赖的相关jar包和文档
lib:hadoop本地库

3.3、修改环境变量

命令:vi /etc/profile
修改内容:
export HADOOP_HOME=/home/bi/hadoop/hadoop-2.7.3
export PATH=${JAVA_HOME}/bin:$PATH:${HADOOP_HOME}/bin
命令:source /etc/profile

3.4、配置hadoop(完全分布式)

命令:mkdir data 在hadoop文件夹下创建data文件夹用于存放hdfs数据
进入目录/hadoop/hadoop-2.7.3/etc/hadoop下:
1)修改core-site.xml文件
<configuration>
<!-- 配置NameNode地址-->            
<property>
                    <name>fs.defaultFS</name>
                    <value>hdfs://master:9000</value>
            </property>
<!-- 配置HDFS数据存储目录 -->
            <property>
                    <name>hadoop.tmp.dir</name>
                    <value>/home/bi/hadoop/hadoop-2.7.3/data</value>
            </property>
</configuration>
2)修改hdfs-site.xml文件

<configuration>
<!-- 配置HDFS副本备份数 -->
            <property>
                    <name>dfs.replication</name>
                    <value>1</value>
            </property>
            <!-- 配置SecondaryNameNode地址 -->
            <property>
                    <name>dfs.namenode.secondary.http-address</name>
                    <value>master:50090</value>
            </property>
</configuration>
3)修改mapred-site.xml文件
<configuration>
<!-- 配置mapreduce运行在yarn上 -->
            <property>
                    <name>mapreduce.framework.name</name>
                    <value>yarn</value>
            </property>
            <property>
                    <name>mapreduce.jobhistory.address</name>
                    <value>master:10020</value>
            </property>
            <property>
                    <name>mapreduce.job.tracker</name>
                    <value>master:9001</value>
            </property>
</configuration>
4)修改yarn-site.xml文件
<configuration>
            <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>
<!-- 配置resourcemanager的地址 -->
            <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.resource-tracker.address</name>
                     <value>master:8031</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.admin.address</name>
                     <value>master:8033</value>
            </property>
            <property>
                     <name>yarn.resourcemanager.webapp.address</name>
                     <value>master:8088</value>
            </property>
</configuration>
5)修改slaves文件
修改内容:(删除文件中其他内容)
slave1
slave2
6)修改hadoop-env.sh、mapred-env.sh、yarn-env.sh文件
修改内容:
export JAVA_HOME=/home/bi/java/jdk1.8.0_121

3.5、配置ssh免密码登录

1)执行下列命令,让master节点能够免密码登录自身服务器
命令:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 0600 ~/.ssh/authorized_keys
2)让master节点可以免密码登录到两个子节点(slave1、slave2)
为了实现这个功能,两个slave节点的公钥文件中必须要包含主节点的公钥信息,这样master就可以顺利安全的访问这两个slave节点了。
命令:
scp -r id_rsa.pub bi@slave1:/home/bi/.ssh/authorized_keys
scp -r id_rsa.pub bi@slave2:/home/bi/.ssh/authorized_keys
命令:测试免密码登录是否成功
ssh slave1
ssh slave2

3.6、将master节点配置的hadoop文件复制到两个子节点(slave1、slave2)

命令:
scp -r hadoop bi@slave1:/home/bi
scp -r hadoop bi@slave2:/home/bi

3.7、格式化NameNode

命令:hdfs namenode -format

3.8、启动hadoop

命令:sbin目录
sbin/start-all.sh

3.9、查看启动结果

命令:jps(master节点)
命令:jps(slave节点)
也可以打开界面:192.168.12.80:50070、192.168.12.80:8088查看节点状态

最新文章

  1. bat转exe工具 Bat To Exe Converter v2.4.7 绿色版
  2. 关于Access restriction: The type &#39;Application&#39; is not API (restriction on required library)
  3. Spark Streaming资源动态申请和动态控制消费速率剖析
  4. UI拼图导出脚本,兼容cegui的ImageSet格式
  5. 手把手教你玩转Git分布式版本控制系统!
  6. Careercup - Microsoft面试题 - 5718181884723200
  7. flask开发restful api系列(5)-短信验证码
  8. append与after区别
  9. Javac 编译原理
  10. 【TCP协议】(1)---TCP协议详解
  11. Servlet创建完美教程
  12. LightOJ - 1074 Extended Traffic(标记负环)
  13. python 全栈开发,Day106(结算中心(详细),立即支付)
  14. 【死磕jeesite源码】jeesite添加多数据源
  15. python 修改excel
  16. FASIC: A Fast-recovery, Adaptively Spanning In-band Control Plane in Software-Defined Network
  17. 求助OPC Opc.IDiscovery m_discovery = new OpcCom.ServerEnumerator();
  18. 关于Sphinx中使用 RealTime Index的问题
  19. oracle 空值排序,排在最前面或者最后面
  20. MySQL时间字段究竟使用INT还是DateTime

热门文章

  1. Ubuntu 14.04 用户如何安装深度音乐播放器和百度音乐插件
  2. 如何判断 Session是否存在
  3. Spring IOC原理分析
  4. stm32 SysTick系统定时器
  5. mysql打印用户权限的小技巧
  6. hadoop之yarn详解(命令篇)
  7. MySQL无法启动问题解决Warning: World-writable config file ‘/etc/my.cnf’ is ignored
  8. prometheus 配置项注意事项
  9. centos7下postgresql数据库安装及配置
  10. PAT Advanced 1073 Scientific Notation (20 分)