hadoop集群搭建01--hadoop 的安装配置
三台机器
Centos 7
192.168.2.37 计算机名称 master
192.168.2.38 计算机名称 slave1
192.168.2.39 计算机名称 slave2
版本
zookeeper-3.4.13
Hadoop-2.7.7
Hbase-2.1.0
apache-hive-2.1.1
jdk1.8
注:hadoop集群最少需要三台机,因为hdfs副本数最少为3,单机不算
注:以下操作3台机器都同样的步骤和配置文件都一样
1、创建hadoop用户,hadoopgroup组
groupadd -g 102 hadoopgroup # 创建用户组
useradd -d /opt/hadoop -u 10201 -g 102 hadoop #创建用户
passwd hadoop #给用户设置密码
2、下载hadoop相关文件(使用hadoop用户下载和操作以下步骤,除了特别说明的步骤,默认操作都是用hadoop用户在操作)
wget http://archive.apache.org/dist/hadoop/core/hadoop-2.7.7/hadoop-2.7.7.tar.gz
wget http://download.oracle.com/otn-pub/java/jdk/8u191-b12/2787e4a523244c269598db4e85c51e0c/jdk-8u191-linux-x64.tar.gz
3、安装jdk、hadoop
将下载的jdk、hadoop拷贝到服务器上,解压,修改目录名
tar xvf hadoop-2.7.7.tar.gz
tar xvf jdk-8u191-linux-x64.tar.gz
mv hadoop-2.7.7 hadoop
mv jdk1.8.0_191 jdk1.8
4,配置Java、hadoop环境变量
cd
vi .bashrc
在最后添加Java、hadoop环境变量,注意路径不要写错即可
```
#jdk
export JAVA_HOME=/opt/hadoop/jdk1.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASS_PATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#hadoop
export HADOOP_HOME=/opt/hadoop/hadoop
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
```
5、切换root用户,修改各机/etc/hosts
vi /etc/hosts
192.168.2.37 master
192.168.2.38 slave1
192.168.2.39 slave2
6、切换回hadoop 用户,创建ssh密钥 让3台机器hadoop 用户能无密码登录,每台机都执行以上步骤,创建 ssh 密钥
mkdir .ssh # 创建.ssh 目录
cd .ssh/
pwd
```
/opt/hadoop/.ssh
```
ssh-keygen -t rsa # 创建ssh秘钥,一路回车下去
```
id_rsa # 私钥,本机保存
id_rsa.pub #公钥,复制到其他机器
```
7、合并每台机器的公钥,然后再放到每台机器上
master :
复制公钥到文件 : cat id_rsa.pub >> authorized_keys
拷贝到 slave1 : scp authorized_keys hadoop@slave1:~/.ssh/authorized_keys
slave1 :
复制slave1的公钥到 authorized_keys : cat id_rsa.pub >> authorized_keys
拷贝到 slav2 : scp authorized_keys hadoop@slave2:~/.ssh/authorized_keys
slave2 :
复制公钥到文件 : cat id_rsa.pub >> authorized_keys
拷贝到 master : scp authorized_keys hadoop@master:~/.ssh/authorized_keys
拷贝到 slave2 : scp authorized_keys hadoop@slave1:~/.ssh/authorized_keys
复制代码
多机类推
至此,配置完成,现在各机hadoop用户可以免密登录。
8、修改 hadoop环境配置:hadoop-env.sh
进入路径: /opt/hadoop/hadoop/etc/hadoop,打开 hadoop-env.sh 修改:
export JAVA_HOME=/opt/hadoop/jdk1.8 # 执行jdk
9、修改hadoop核心配置文件 : core-site.xml ,添加如下内容
10、修改hdfs-site.xml ,添加如下内容
11,修改yarn-site.xml ,添加如下内容
12,修改mapred-site.xml ,添加如下内容
~
13,在hadoop 的conf 下面加一个master 文件和配置slaves 文件 和创建上面配置文件中的一些需要的目录
vi master
```
master
```
vi slaves
```
slave1
slave2
```
cd /opt/hadoop/hadoop/
mkdir tmp
mkdir name
mkdir data
chmod -Rf 777 tmp name data
14,启动,只需要在其中一台执行启动操作就行了
第一次启动得格式化
./bin/hdfs namenode -format
启动dfs
./sbin/start-dfs.sh
启动yarn
./sbin/start-yarn.sh
15,查看是否192.168.2.39:50070
启动后,如果活跃节点显示为零,说明伪分布没有真正的启动。原因是有的时候数据结构出现问题会造成无法启动datanode。如果使用hadoop namenode -format重新格式化仍然无法正常启动,原因是/tmp中的文件没有清除,则需要先清除/tmp/hadoop/*再执行格式化,即可解决hadoop datanode无法启动的问题。具体步骤如下所示:
# 删除hadoop:/tmp
$ hadoop fs -rmr /tmp
# 停止hadoop
$ stop-all.sh
# 删除/tmp/hadoop*
$ rm -rf /tmp/hadoop*
# 格式化
$ hadoop namenode -format
# 启动hadoop
$ start-all.sh