Hadoop安装

建议使用版本
hadoop2.7.1+hbase1.2.1+hive2.0.0+zookeeper3.4.8
这里我使用的hadoop2.8,但是hadoop2.8并不支持base1.0之后的版本
推荐使用Hadoop2.7版本
注意阿里云配置的时候非本机host和hostname改为内网连接地址

hadoop版本对应.png

hbase对应.png

安装hadoop

  1. 修改hostname
# 机器ip与hostname对应关系
# host1   master-node
# host2   data-node1
# host3   data-node2

# 具体命令如下(演示master-node,其他两个类似)
hostname master-node
vim /etc/hostname
修改为master-node 保存退出,重新连接服务器,会发现名称已修改
  1. 修改hosts文件
vim /etc/hosts  # 添加以下内容 注意三台机器一致
host1   master-node
host2   data-node1
host3   data-node2

# wq!保存退出,用ping检查机器之间是否相通
ping -c 3 data-node1
  1. 配置私钥,为了三台机器免密登录
# 以master-node 为例 其他类似
ssh-keygen -t rsa -P ''     #回车
# 秘钥文件会存在/root/.ssh/  目录下
cat /root/.ssh/id_rsa.pub  
#  查看秘钥文件
  1. 配置authorized_keys
# 以master-node 为例 其他类似 
# 创建authorized_keys
# 注意文件位置对应 与hosts中顺序对应,不然会ssh不上,这是个大坑
touch /root/.ssh/authorized_keys  

# 将三台机器中的id_rsa.pub中的内容全都复制到authorized_keys中 每个秘钥一行
# 建议在window下写好authorized_keys 再分别传到/etc/.ssh/目录下
# 不建议使用 NotePad++ 这软件修改xml等配置文件在linux上会报一个错 无法解决

# authorized_keys 示例如下 注意@后面名字是否为对应机器hostname
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvoWi6uhuAQLuWpAy3cLQn3ge4dhTHfHGUHvN8gPyjFq91OJQkgu43QJHD89REEo+a3aysBcyg7SW3rOfpn7HPO4MBFDZXhttS5fFzDroq6xIcM1GH6Qsd5yJYLZruD/9pg4fO3JZ8IsUH1Sge7K3OnmDFNOVzfFSaLplKCZoTaWKfFqtHhEzU0MwiUegNl03zF8Dr4K665HIc7uPKV4VeW1WgNrCM/LcGYZhHBYkRC5iGj/PRDMxjV3V1WCh/7oZeGsMEb7luGdZRC10UO0psUuKs1LnmrS9cO92TBTGKJDP70SmgTzgjmaaEcTUBAhbdZPIoO3SU9XxG2zRdm0x1 root@master-node
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSA/Rw0wG7egHT2eFnLtrxq72mMYQuYL7HnmM3ePcUcrIXO3hGEoPrrPCM3Zh6zCNxgc2NjQBXIFYCpgHTgNKixGNKXOKjhqK0fvbOH4Z6jiCjLdrxZ2ZDvrZkurUiqEgyQ1tc4DmKRkfxQVNXbS4HFZgUquR6meXv+R5122pEF7+fdcH1YgQ1YAoZXV87+PcOVjhHab09EgZMTrI/E9GDR9E5QF/ZHtZOa9OGUIQMNkZ/Q98vJ5JV6GWp4kKPx7PeypBQWwvPSz7ZXxc6kzgRjYTsjpMZW2fZgvaJWYDBYukB54RPkyHlfwslHSQh/Hi/IrfjeZEbJbBGt0KkYSrP root@data-node1
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCz5+sbGk+7Ob12NkHbo+FxZTESZMKrjhXR9SKBNbdjOwpt/AaRIDMMO07q37QEYyPSmj9CHeFUH5RQS5QaTykZpBsaZ771fGw01TZDQ/fxId+71XQgruGqG/A673K2Awr0H9NOlWPhpDUdj/n5aXA0soUs83jRbtTXKF3cTeB4zy59AtjbGPH0og98Lon3qsR092qrzSrm/arUJfRsLY1SGwy/dq16U38hAFBi0zz1oyZAIC+D85GcddmRszrf5iADKPuIPUyUAmuZ15MrAzPXIljpu+lwaxRjv0Sm7Z/NKhGyQCvzCYJH68uSzHNV/pNKFBEP38zgNczyPDcioBqp root@data-node2

# 分别拷贝到三台机器etc/.ssh目录下
# 用ssh命令  测试无密登录

ssh data-node1
# 第一次使用 会提示是否保存连接 如果没有没有ping通检查这一步骤 
  1. 安装jdk(注:必须使用jdk1.8以上版本,1.8以前的版本hadoop并不支持)
# 三台机器jdk统一安装在同一目录 便于以后写配置文件
# 详细安装这里不介绍 命令检查下jdk就好
javac
  1. 安装配置hadoop(这里以2.8版本为例,强烈不建议使用hadoop3.0以上)
# 三台机器重复此操作
cd /opt/hadoop
tar -zxvf hadoop-2.8.0.tar.gz

# 配置环境变量
vim /etc/profile

# 添加内容如下
HADOOP_HOME=/usr/local/hadoop/hadoop-2.8.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

#立即生效
source /etc/profile

修改以下配置文件
core.site.xml 9000端口为hadoop默认端口,可以修改





    hadoop.tmp.dir
    /opt/dfs/tmp


    fs.defaultFS
    hdfs://master-node:9000

hdfs-site.xml​





  
    dfs.name.dir
    /opt/dfs/name
  
  
    dfs.data.dir
    /opt/dfs/data
  
  
    dfs.replication
    3
  
  
    dfs.permissions
    false
  

hadoop-env.sh

#改为本机对应的jdk路径
export JAVA_HOME=${JAVA_HOME}

mapred-site.xml (mapred-site.xml.template 参考模板)





  
    mapreduce.framework.name
    yarn
  

slaves

# 添加如下内容
data-node1
data-node2

yarn-site.xml




  
    yarn.resourcemanager.hostname
    master-node
  
  
    yarn.nodemanager.vmem-pmem-ratio
    2.1
  
  
    yarn.nodemanager.vmem-check-enabled
    false
  
  
    yarn.nodemanager.pmem-check-enabled
    false
  

  1. hadoop启动
  • 初始化namenode(注意:只能初始化一次,如果初始化多次需要删除所有机器下/etc/dfs目录)
hadoop namenode -format
  • 启动推荐使用官方命令
# 推荐
start-dfs.sh
start-yarn.sh

# 可以 但不建议使用
start-all.sh

# 停止命令
stop-yarn.sh
stop-dfs.sh

# 不建议
stop-all.sh

# 使用jps 查看启动进程
jps

# 如果出现 ResourceManager NameNode 则说明启动成功
# 访问 master-node:8088 查看yarn是否启动
# 访问 master-node:50070 查看namenode是否启动 

到此hadoop安装完成

报错总结

  1. jps报process information unavailable
# 有些经常没有正常结束就会这样 
# 资源消耗过大或者没有结束进程就重启进程
# 使用此命令会删除所有hadoop进程
rm -rf /tmp/hsperfdata_*

你可能感兴趣的:(Hadoop安装)