hadoop完全分布式搭建(CentOS 6.5)

  • hadoop完全分布式搭建(CentOS 6.5)
    • 1. 关闭防火墙
    • 2. 修改hostname
    • 3. 修改网络映射hosts
    • 4. 配置免密登录
    • 5. 准备软件环境
    • 6. 配置环境变量
    • 7. 修改hadoop配置文件
      • 7.1 hadoop-env.sh 和 yarn-env.sh
      • 7.2 core-site.xml
      • 7.3 hdfs-site.xml
      • 7.4 mapred-site.xml
      • 7.5 yarn-site.xml
      • 7.6 配置slaves
    • 8. 格式化namenode
    • 9. 启动hadoop
    • 10. web端测试
    • 11. hdfs上传下载文件测试
    • 12. 测试MapReduce
    • 13. 补充
      • 13.1 可能出现的错误
        • 13.1.1 System times on machines may be out of sync. Check system time and time zones.
      • 13.2 查看MapReduce运行历史日志
    • 14. 参考

hadoop完全分布式搭建(CentOS 6.5)

1. 关闭防火墙

sudo service iptables stop

关闭防火墙自启

sudo chkconfig iptables off

注意:所有的机器防火墙都要关

2. 修改hostname

  • master节点
vim /etc/sysconfig/network
# ----------
HOSTNAME=master
  • slave1节点
vim /etc/sysconfig/network
# ----------
HOSTNAME=slave1
  • slave2节点
vim /etc/sysconfig/network
# ----------
HOSTNAME=slave2

3. 修改网络映射hosts

vim /etc/hosts
# -------
192.168.100.132 master
192.168.100.133 slave1
192.168.100.134 slave2

注意:所有的机器都要改

4. 配置免密登录

  • 生成密钥
ssh-keygen -t rsa # 一路回车
  • 将集群中的所有公钥集中到某台机器,生成免密授权登录文件
    • slave1:
      bash
      scp ~/.ssh/id_rsa.pub master:/home/hduser/.ssh/slave1
    • slave2:
      bash
      scp ~/.ssh/id_rsa.pub master:/home/hduser/.ssh/slave1
    • master
      bash
      cat id_rsa.pub >> authorized_keys
      cat slave1 >> authorized_keys
      cat slave2 >> authorized_keys
      chmod 600 authorized_keys # 必须改,不然不能免密登录
  • 将授权列表分发给slave1和slave2
scp ~/.ssh/authorized_keys slave1:/home/hduser/.ssh/authorized_keys
scp ~/.ssh/authorized_keys slave2:/home/hduser/.ssh/authorized_keys

5. 准备软件环境

把Hadoop、JDK的压缩包上传到集群中的每台机器、并解压。
可以先配好一台机器中的配置文件,再将软件复制到其他机器,减少配置的工作量。

6. 配置环境变量

vim /etc/profile
# -------
export HADOOP_HOME=/hadoop/hadoop-2.6.5
export JAVA_HOME=/hadoop/jdk1.8.0_172
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$JAVA_HOME/bin

注意:所有的机器都要改

7. 修改hadoop配置文件

7.1 hadoop-env.sh 和 yarn-env.sh

添加JAVA_HOME

7.2 core-site.xml

<property>
    <name>fs.defaultFSname>
    <value>hdfs://master:9000value>
    <description>默认的文件系统description>
property>

<property>
    <name>hadoop.tmp.dirname>
    <value>/hadoop/hadoop-2.6.5/datavalue>
    <description>description>
property>

7.3 hdfs-site.xml

<property>
    <name>dfs.replicationname>
    <value>2value>
    <description>数据块备份数description>
property>
<property>
    <name>dfs.permissions.enabledname>
    <value>falsevalue>
    <description>关闭权限检查description>
property>

7.4 mapred-site.xml

<property>
    <name>mapreduce.framework.namename>
    <value>yarnvalue>
    <description>指定运行mapreduce的框架description>
property>

7.5 yarn-site.xml

<property>
    <name>yarn.resourcemanager.hostnamename>
    <value>mastervalue>
    <description>指定namenode节点的地址description>
property>
<property>
    <name>yarn.nodemanager.aux-servicesname>
    <value>mapreduce_shufflevalue>
    <description>NodeManager上运行的附属服务description>
property>
<property>
    <name>yarn.nodemanager.aux-services.mapreduce_shuffle.classname>
    <value>org.apache.hadoop.mapred.ShuffleHandlervalue>
    <description>指定shuffle类description>
property>
<property>
    <name>yarn.log-aggregation-enablename>
    <value>truevalue>
    <description>是否启用日志聚合,将slave节点的日志聚合至masterdescription>
property>

7.6 配置slaves

slave1
slave2

8. 格式化namenode

hadoop namenode -format

9. 启动hadoop

# 启动HDFS
start-dfs.sh
# 启动yarn
start-yarn.sh

10. web端测试

  • HDFS的web端: http://master:50070
  • MapReduce的web端: http://master:8088

11. hdfs上传下载文件测试

hadoop fs -put aa.txt /
hadoop fs -get /aa.txt

12. 测试MapReduce

使用hadoop自带的测试例
* 计算圆周率

hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 5 5
  • wordcount(单词计数)
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount  

注意:指定的输出目录在HDFS中必须 不存在,否则会出错

13. 补充

13.1 可能出现的错误

13.1.1 System times on machines may be out of sync. Check system time and time zones.

需要同步集群的时间,解决方案如下:

sudo yum -y install ntp ntpdate
ntpdate cn.pool.ntp.org

13.2 查看MapReduce运行历史日志

在mapred-site.xml增加配置

<property>
    <name>mapreduce.jobhistory.addressname>
    <value>master:10020value>
    <description>MapReduce JobHistory Server IPC host:portdescription>
property>
<property>
    <name>mapreduce.jobhistory.webapp.addressname>
    <value>master:19888value>
    <description>MapReduce JobHistory Server Web UI host:portdescription>
property>

启动服务

mr-jobhistory-daemon.sh start historyserver

14. 参考

  • http://hadoop.apache.org/docs/r2.6.5/hadoop-project-dist/hadoop-common/SingleCluster.html

你可能感兴趣的:(大数据)