hadoop(1)-简单集群安装

hadoop HA集群安装:hadoop(2)-HA集群原理及搭建

1.安装

环境

  • 4台机器:hostname分别为:
    hadoop1
    hadoop2
    hadoop3
    hadoop4

依赖环境
1.hosts配置、ssh免密环境 、java环境(请参考其他教程,以下仅为简要说明)

# (1) 以hadoop1机器hosts改动为例
vim /etc/hosts

10.179.25.59       hadoop1   hadoop1
10.179.17.22       hadoop2   hadoop2
10.179.32.14       hadoop3   hadoop3
10.179.48.227      hadoop4   hadoop4

# 分发到其他机器
sudo scp /etc/hosts hadoop2:/etc/
sudo scp /etc/hosts hadoop3:/etc/
sudo scp /etc/hosts hadoop4:/etc/
# (2)ssh免密
ssh-keygen -t rsa
cd .ssh
cp id_rsa.pub authorized_keys
#(注意:ssh免密登录可能会失败,要注意.ssh整个文件夹给700权限)
sudo chmod 700 ~/.ssh
sudo chmod 700 /home/当前用户
sudo chmod 600 ~/.ssh/authorized_keys

# 最简单的方法将整个.ssh目录复制给其他机器
scp -r .ssh hadoop2:~/
scp -r .ssh hadoop3:~/
scp -r .ssh hadoop4:~/
# (3) java安装 设置软链
# 卸载openjdk,安装jdk1.8
ln -snf bigdata/jdk1.8.0_77 java-current
# 其他机器同理

确保能成功ssh到其他机器,java环境正常即可。

hadoop环境
准备hadoop包。如:

http://mirror.bit.edu.cn/apache/
wget http://mirror.bit.edu.cn/apache/hadoop/core/hadoop-2.7.6/hadoop-2.7.6.tar.gz

hadoop-current -> hadoop-2.7.6
java-current -> jdk1.8.0_77

分发
复制于其他机器:

 scp -r ~/{hadoop*,jdk*} hadoop2:~/
 scp -r ~/{hadoop*,jdk*} hadoop3:~/
 scp -r ~/{hadoop*,jdk*} hadoop4:~/

每个机器上设置软链:

ln -s jdk1.8.0_77 java-current
ln -s hadoop-2.7.6 hadoop-current

说明:
这里说下题外话,可直接忽略。上述分发的过程可以用其他方式,如结合pssh、pscp命令等,也可以将文件和软链一个打包再分发。
使用tar打包,tar打包默认会打包软链接(zip不会默认不会打包软链接)
tar -zvcf all-hadoop.tar.gz bigdata/jdk1.8.0_77 bigdata/hadoop-2.7.6 hadoop-current java-current
scp all-hadoop.tar.gz hadoop2:~/
scp all-hadoop.tar.gz hadoop3:~/
scp all-hadoop.tar.gz hadoop4:~/
载解压即可:
tar -zxvf all-hadoop.tar.gz


给hadoop用户添加sudo权限(或者免密的sudo权限)

sudo vim /etc/sudoers
# 修改内容如下:
root ALL = (ALL)ALL
hadoop ALL = (ALL)ALL

强制保存退出即可。

设置环境变量(可选)
sudo vim /etc/profile

export JAVA_HOME=/home/hadoop/java-current
export HADOOP_HOME=/home/hadoop/hadoop-current

export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

分发

 sudo scp /etc/profile hadoop2:/etc/
 sudo scp /etc/profile hadoop3:/etc/
 sudo scp /etc/profile hadoop4:/etc/
ssh hadoop2 "source /etc/profile" 
ssh hadoop3 "source /etc/profile" 
ssh hadoop4 "source /etc/profile" 
#已生效,但需要重开终端

测试java、hadoop,直接使用命令能识别即可。

2. 配置hadoop

(1)hadoop-env.sh

vim ~/hadoop-current/etc/hadoop/hadoop-env.sh
# export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/home/hadoop/java-current

(2)core-site.xml

 vim ~/hadoop-current/etc/hadoop/core-site.xml 
<configuration
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop1:9000</value>   
   </property>   
</configuration>

分析:hadoop1是你主节点所在主机的ip,而9000为端口

(3)hdfs-site.xml

 vim ~/hadoop-current/etc/hadoop/hdfs-site.xml
<configuration>
   <property>
       <name>dfs.namenode.name.dir</name>
       <value>file:///home/hadoop/data/dfs/nn</value>
    </property>
    <property>
       <name>dfs.datanode.data.dir</name>
       <value>file:///home/hadoop/data/dfs/dn</value>
   </property>
</configuration>

说明:鉴于测试环境可能会更换hadoop版本,namenode目录最好放在固定的位置,如file:///home/hadoop/data/dfs/nn, datanode放置file:///home/hadoop/data/dfs/dn

(4)mapred-site.xml
在hadoop的相关目录中没有此文件,但是有一个mapred-site.xml.template文件,将该文件复制一份为mapred-site.xml

vim ~/hadoop-current/etc/hadoop/mapred-site.xml
<configuration>
  <property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
  </property>
</configuration>

(5)yarn-site.xml

<configuration>
    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop1</value>
    </property>
    <!-- 指定reducer获取数据的方式-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.local-dirs</name>
        <value>file:///home/hadoop/data/yarn/nm</value>
    </property>
</configuration>

说明:鉴于测试环境可能会更换hadoop版本,namemaneger目录最好放在固定的位置,如file:///home/hadoop/data/yarn/nm

(6)slaves文件

vim slaves
hadoop2
hadoop3
hadoop4

说明:
若启动历史服务器和日志聚合,需要在mapred-site.xml和yarn-stie.xml中添加额外配置。参见历史服务

此步骤的所有操作仍然是在hadoop1节点上操作,复制至其他机器即可。

复制hadoop文件至hadoop2,3,4:

scp -r /home/hadoop/hadoop-current/etc/hadoop/* hadoop2:/home/hadoop/hadoop-current/etc/hadoop/
scp -r /home/hadoop/hadoop-current/etc/hadoop/* hadoop3:/home/hadoop/hadoop-current/etc/hadoop/
scp -r /home/hadoop/hadoop-current/etc/hadoop/* hadoop4:/home/hadoop/hadoop-current/etc/hadoop/

3.启动HDFS和YARN

1.格式化namenode

hadoop namenode -format

2.启动
start-all.sh 命令其实是Instead use start-dfs.sh and start-yarn.sh
start-dfs.sh 会启动 NameNodeSecondNameNode–>slave是DataNode
start-yarn.sh 会启动ResourceManage–>slave是NodeManage

说明:
关于服务的启动有多种方式,可以单独启动

以下hadoop1的进程:

7815 Jps
7028 NameNode
7458 ResourceManager

hadoop2、3、4:

3087 NodeManager
2919 DataNode
3426 Jps

4.验证

HDFS
hadoop1:50070


YARN
hadoop1:8088

5.hadoop停止

类似启动,在master下使用 stop-all.sh即可。

 stop-all.sh

完成!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值