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默认端口,可以修改

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<property>
    <name>hadoop.tmp.dir</name>
    <value>/opt/dfs/tmp</value>
</property>
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://master-node:9000</value>
</property>

hdfs-site.xml​

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>dfs.name.dir</name>
    <value>/opt/dfs/name</value>
  </property>
  <property>
    <name>dfs.data.dir</name>
    <value>/opt/dfs/data</value>
  </property>
  <property>
    <name>dfs.replication</name>
    <value>3</value>
  </property>
  <property>
    <name>dfs.permissions</name>
    <value>false</value>
  </property>
</configuration>

hadoop-env.sh

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

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

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

slaves

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

yarn-site.xml

<?xml version="1.0"?>

<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master-node</value>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-pmem-ratio</name>
    <value>2.1</value>
  </property>
  <property>
    <name>yarn.nodemanager.vmem-check-enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>yarn.nodemanager.pmem-check-enabled</name>
    <value>false</value>
  </property>
</configuration>
  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_*
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容