hadoop开发环境&&集群搭建

hadoop搭建流程

下载hadoop

由于之后需要搭建hbase,查看hbase兼容hadoop版本,所以选择Hadoop-2.7.5

hadoop开发环境&&集群搭建_第1张图片
image.png

下载地址为 http://hadoop.apache.org/releases.html

搭建Pseudo-Distributed

本地开发使用伪分布式集群

修改配置

etc/hadoop/core-site.xml


    
        fs.defaultFS
        hdfs://localhost:9000
    
    
        hadoop.tmp.dir
        /Users/titengjiang/Documents/DeveloperTool/hadoop/local/tmp
    

etc/hadoop/hdfs-site.xml,配置副本,以及namenode,datanode数据存放路径


  
  
    dfs.namenode.name.dir
    /Users/titengjiang/Documents/DeveloperTool/hadoop/local/name
  
  
    dfs.datanode.data.dir
    /Users/titengjiang/Documents/DeveloperTool/hadoop/local/hadoop/hdfs
  
  
    dfs.replication
    1
  

配置ssh免密码

ssh localhost

如果需要密码通过以下步骤,生成公钥并添加到ssh授权文件中

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys

启动

format namenode

第一启动需要格式化namenode

bin/hdfs namenode -format

启动本地伪分布式集群

sbin/start-dfs.sh
jps

显示出如下三个进程表示启动成功


image.png

测试
NameNode - http://localhost:50070/
使用demo测试

bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/titengjiang
bin/hdfs dfs -mkdir input
bin/hdfs dfs -put etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar grep input output 'dfs[a-z.]+'
hadoop开发环境&&集群搭建_第2张图片
image.png

注意user后面的username为当前启动hadoop的用户名

生产分布式集群搭建

生产服务器目前使用三台作为hadoop集群,每台服务器,每台服务器挂载12块硬盘


hadoop开发环境&&集群搭建_第3张图片
image.png

内存为


image.png

每台服务器友90G
部署计划如下

hadoop-1 namenode
hadoop-2 secondary datanode
hadoop-3 datanode

下载

安装jdk1.8,下载hadoop-2.7.5解压到每个服务器上.

创建用户配置ssh免密

三台配置ssh authorized_keys,将三台ssh 公钥写入authorized_keys中,通过
scp同步到每台服务器中

scp -P 2014  authorized_keys xg-mt-grandapm-lindb-1:~/.ssh/

相互测试ssh 是否免密

设置data1-data12目录权限

sudo chown -R username:usergroup /data2 /data3 /data4 /data5 /data6 /data7 /data8 /data9 /data10 /data11 /data12 

username:usergroup为实际的用户和用户组
目录没有读写权限启动时可能会出现如下错误


hadoop开发环境&&集群搭建_第4张图片
image.png

其实并不是硬盘损坏而是权限问题

配置hadoop-1 namenode

core-site.xml


    
        fs.defaultFS
        hdfs://xg-mt-grandapm-lindb-1:9000
    
    
        hadoop.tmp.dir
        /home/cassandra/platform/hadoop-2.7.5/tmp
    

xg-mt-grandapm-lindb-1为hadoop-1主机名

hdfs-site.xml


    
    
        dfs.namenode.http-address
        xg-mt-grandapm-lindb-1:50070
    

    
    
        dfs.namenode.secondary.http-address
        xg-mt-grandapm-lindb-2:50090
    

    
    
        dfs.namenode.name.dir
        /home/cassandra/platform/hadoop-2.7.5/name
    

    
    
        dfs.replication
        1
    
      
        dfs.namenode.datanode.registration.ip-hostname-check
        false
        

namenode 节点不作为datanode使用

mapred-site.xml 启动yarn

    
        mapreduce.framework.name
        yarn
    

yarn-site.xml

    
    
        yarn.resourcemanager.hostname
        xg-mt-grandapm-lindb-1
    

    
    
        yarn.nodemanager.aux-services
        mapreduce_shuffle
    

    
         yarn.nodemanager.aux-services.mapreduce.shuffle.class
         org.apache.hadoop.mapred.ShuffleHandler
    

slaves 配置管理的datanodes,每个节点一行

xg-mt-grandapm-lindb-2
xg-mt-grandapm-lindb-3

配置hadoop-2/3 datanode

scp hadoop-1的配置到2/3节点中

hdfs-site.xml 增加datanode配置,挂载12块硬盘


    dfs.datanode.data.dir/data1/hadoop/hdfs,/data2/hadoop/hdfs,/data2/hadoop/hdfs,/data3/hadoop/hdfs,/data4/hadoop/hdfs,/data5/hadoop/hdfs,/data6/hadoop/hdfs,/data7/hadoop/hdfs,/data8/hadoop/hdfs,/data9/hadoop/hdfs,/data10/hadoop/hdfs,/data11/hadoop/hdfs,/data12/hadoop/hdfs


  dfs.permissions
  false

namenode节点启动整个集群

bin/hdfs namenode -format
sbin/start-dfs.sh
sbin/start-yarn.sh

jps 检查进程
hadoop-1


image.png

image.png

hadoop-2


image.png

hadoop-3


image.png

使用伪分布式集群的方式测试分布测试
namenode


hadoop开发环境&&集群搭建_第5张图片
![image.png](http://upload-images.jianshu.io/upload_images/6874053-18fb6ca11511357a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

yarn


hadoop开发环境&&集群搭建_第6张图片
image.png

整个集群搭建完毕

你可能感兴趣的:(hadoop开发环境&&集群搭建)