Hadoop集群环境搭建(virtualbox和centos7)

准备

           1.Cento7的安装

           2.vitualbox5.23版本(w10环境)

           3.java8的安装https://www.cnblogs.com/shihaiming/p/5809553.html

           4.hadoop2.6.0的安装

1.1 先创建一个NameNode节点,其余DataNode节点的配置由NameNode克隆得到

setting如下,使用桥接网络,关于虚拟机网络选择相关https://blog.csdn.net/yxc135/article/details/8458939

Hadoop集群环境搭建(virtualbox和centos7)_第1张图片

在storage可以添加cento7的镜像文件,也可以启动虚拟机后自行选择添加。

启动虚拟机后,优先关闭防火墙,最小化安装防火墙使用firewalld。

关闭防火墙可以提高hadoop的速度,而且端口使用也比较随意,虚拟机也无所谓安不安全-_-!!!

    systemctl status firewalld.service//检查防火墙状态
    systemctl stop firewalld.service//关闭防火墙
    systemctl disable firewalld.service//取消防火墙自启动

 配置主机名(同样的,三台datanode也要配置,DN1,DN2,DN3)

vi /etc/sysconfig/network 
# Created by anaconda
NETWORKING=yes
HOSTNAME=NN

1.2联网

在多次尝试自定义静态IP地址上网失败后,默认选择cento7动态分配的ip进行联网。

静态IP配置:https://blog.csdn.net/teisite/article/details/81196244

最小化安装的cento7没有ifconfig命令,使用

yum -y install net-tools

安装相关网络工具后可使用。

当前虚拟机NameNode的ip

Hadoop集群环境搭建(virtualbox和centos7)_第2张图片

测试ping通百度,平通宿主机后,进行ssh连接(虚拟机连接xshall),之后终端的命令都可以复制粘贴了。

Hadoop集群环境搭建(virtualbox和centos7)_第3张图片

输入虚拟机的ip地址后,输入预先创建的账号和密码,就可以连接上xshall了,需要注意端口号22没有被占用。

Hadoop集群环境搭建(virtualbox和centos7)_第4张图片

连接成功后用su命令输入之前设置的root密码,进入管理员模式。

2.1在虚拟机上安装和配置java8

参考https://www.cnblogs.com/shihaiming/p/5809553.html

虚拟机连接xftp,用于java8压缩文件的传输

Hadoop集群环境搭建(virtualbox和centos7)_第5张图片

同样的输入之前创好的账号和密码,连接上xftp。

Hadoop集群环境搭建(virtualbox和centos7)_第6张图片

在宿主机上安装好java8的压缩文件

Hadoop集群环境搭建(virtualbox和centos7)_第7张图片

找到压缩文件所在的目录,将其拖进虚拟机下的/usr/java目录中(没有需自行创建)

Hadoop集群环境搭建(virtualbox和centos7)_第8张图片

这里会遇到传输错误的问题,说明当前文件夹的权限不够

使用

chmod 777 java

赋予java文件夹最高权限,传输完成

Hadoop集群环境搭建(virtualbox和centos7)_第9张图片

进入java文件夹,使用

tar -zxvf jdk-8u201-linux-x64.tar.gz

解压java安装包,zxvf后跟的名字为实际的压缩包名字

配置java环境变量,进入环境变量文件

vi /etc/profile

在最后添加,java_home后根据具体的目录填写

JAVA_HOME=/usr/java/jdk1.8.0_201
export PATH=$JAVA_HOME/bin:$PATH 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 

执行如下命令完成配置

source /etc/profile

3.1安装hadoop并配置环境

下载链接https://pan.baidu.com/s/1-fRFBPhmft6GhSD1VBUjpw

提取码:cwuk

同样的将hadoop压缩包放到/home/m文件夹下

Hadoop集群环境搭建(virtualbox和centos7)_第10张图片

用tar -zxvf 解压hadoop,接下来进行Hadoop环境配置(简单配置)

3.2配置Hadoop环境变量(hadoop-env.sh),修改java_home路径和hadoop_conf_dir 路径

vi /home/loli/hadoop-2.6.0/etc/hadoop/hadoop-env.sh
# The java implementation to use.
export JAVA_HOME=/usr/java/jdk1.8.0_201

# The jsvc implementation to use. Jsvc is required to run secure datanodes
# that bind to privileged ports to provide authentication of data transfer
# protocol.  Jsvc is not required if SASL is configured for authentication of
# data transfer protocol using non-privileged ports.
#export JSVC_HOME=${JSVC_HOME}

export HADOOP_CONF_DIR=/home/loli/hadoop-2.6.0/etc/hadoop

配置hadoop本机变量:

vi /etc/profile

在尾部添加
JAVA_HOME=/usr/java/jdk1.8.0_201
HADOOP_HOME=/home/loli/hadoop-2.6.0
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export JAVA_HOME PATH CLASSPATH HADOOP_HOME

保存后使用source /etc/profile使生效

3.3配置yarn环境变量(yarn-env.sh)

vi /home/loli/hadoop-2.6.0/etc/hadoop/yarn-env.sh
将export JAVA_HOME=/home/y/libexec/jdk1.6.0/修改为
  export JAVA_HOME=/usr/java/jdk1.8.0_201

3.4配置核心组件(core-site.xml)

vi /home/loli/hadoop-2.6.0/etc/hadoop/core-site.xml
在之间插入




fs.defaultFS
hdfs://NN:9000



hadoop.tmp.dir
/home/loli/hadoop-2.6.0/tmp



3.5配置文件系统(hdfs-site.xml)

vi /home/loli/hadoop-2.6.0/etc/hadoop/hdfs-site.xml
在之间插入





dfs.replication
4

 


dfs.permissions
false



3.6配置yarn-site.xml

vi /home/loli/hadoop-2.6.0/etc/hadoop/yarn-site.xml
在之间插入






yarn.resourcemanager.hostname
NN



yarn.nodemanager.aux-services
mapreduce_shuffle

3.7配置MapReduce计算框架文件(mapred-site.xml)

复制mapred-site.xml.template并改名
cp /home/loli/hadoop-2.6.0/etc/hadoop/mapred-site.xml.temolate /home/loli/hadoop-2.6.0/etc/hadoop/mapred-site.xml
在之间插入
`



mapreduce.framework.name
yarn



3.8配置Master的slaves文件(slaves)

vi /home/loli/hadoop-2.6.0/etc/hadoop/slaves
里面会有缺省的localhost,可以删掉
将所有slave节点主机名,一行一个写到该文件里
DN1
DN2
DN3

4.1主节点的环境配置已经完成,现在克隆datanode节点

参考http://frainmeng.github.io/2015/11/04/virtualbox%E5%A4%8D%E5%88%B6%E8%99%9A%E6%8B%9F%E6%9C%BA/

Hadoop集群环境搭建(virtualbox和centos7)_第11张图片

成功连接上xshall,xftp

Hadoop集群环境搭建(virtualbox和centos7)_第12张图片

Hadoop集群环境搭建(virtualbox和centos7)_第13张图片

5.1设置ssh免密登陆

在每个节点的~文件夹下创建.ssh文件(已有可以不用创建)

在NameNode上使用

ssh-keygen -t rsa

创建密钥。产生,第一个是私钥,第二个是公钥。将公钥分别复制到各DataNode节点。datanode节点的.ssh文件要自行创建,.ssh文件下需用touch创建一个id_rsa.pub保存公钥。

id_rsa,id_rsa.pub两个文件

 使用,进行复制,每个节点复制记得更换相应的ip地址

scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa.pub
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa.pub
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/id_rsa.pub

Hadoop集群环境搭建(virtualbox和centos7)_第14张图片

全部复制完成。

将datanode里的id_rsa.pub文件复制到(这里namenode的.ssh目录下需创建authorized_keys)每台datanode都要进行的操作

authorized_keys

//生成authorized_keys
>cat id_rsa.pub >> authorized_keys

//然后把authorized_keys scp到master
>scp ~/.ssh/authorized_keys [email protected]:~/.ssh/authorized_keys 

//所有机器都要改
//.ssh/ 文件夹权限改为700
//authorized_keys文件权限改为600
>chmod 700 ~/.ssh
>chmod 600 ~/.ssh/authorized_keys

测试远端登录:不需要密码,即ssh免密登录成功。

6.1配置hosts,所有节点都一样

vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.4.16 NN
192.168.4.48 DN1
192.168.4.63 DN2
192.168.4.73 DN3

重启reboot(所有节点)。

7.1格式化namenode

执行:hadoop namenode -format

如果不好使,可以重启linux

当出现:successfully,证明格式化成功

19/03/25 14:56:26 INFO common.Storage: Storage directory /home/loli/hadoop-2.6.0/tmp/dfs/name has been successfully formatted.
19/03/25 14:56:26 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
19/03/25 14:56:26 INFO util.ExitUtil: Exiting with status 0
19/03/25 14:56:26 INFO namenode.NameNode: SHUTDOWN_MSG: 
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at NN/192.168.4.16
************************************************************/

7.2进入hadoop中的sbin目录启动hadoop相关服务

cd /home/loli/hadoop-2.6.0/sbin

使用start-dfs.sh启动

DN1: datanode running as process 3345. Stop it first.
DN2: starting datanode, logging to /home/loli/hadoop-2.6.0/logs/hadoop-root-datanode-namenode.out
DN3: starting datanode, logging to /home/loli/hadoop-2.6.0/logs/hadoop-root-datanode-namenode.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
ECDSA key fingerprint is SHA256:+80GiOqSsCJkefY9527/CCs/MGqkBYsNpuLPSTCkJ7w.
ECDSA key fingerprint is MD5:cb:7c:80:72:5a:81:02:5f:08:2f:e5:59:a8:59:12:df.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added '0.0.0.0' (ECDSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /home/loli/hadoop-2.6.0/logs/hadoop-root-secondarynamenode-namenode.out

即全部启动成功

我这里之前出现了一个问题,已经被我解决,具体看我这篇博客:https://mp.csdn.net/postedit/88795541

7.3接着启动yarn的相关服务

cd /home/loli/hadoop-2.6.0/sbin
使用 start-yarn.sh 启动yarn相关服务

starting yarn daemons
starting resourcemanager, logging to /home/loli/hadoop-2.6.0/logs/yarn-root-resourcemanager-namenode.out
DN2: starting nodemanager, logging to /home/loli/hadoop-2.6.0/logs/yarn-root-nodemanager-namenode.out
DN1: starting nodemanager, logging to /home/loli/hadoop-2.6.0/logs/yarn-root-nodemanager-namenode.out
DN3: starting nodemanager, logging to /home/loli/hadoop-2.6.0/logs/yarn-root-nodemanager-namenode.out

8.1最终使用jps命令查看结果

namenode:

datanode:

成功。

使用网页输入192.168.4.16:50070

Hadoop集群环境搭建(virtualbox和centos7)_第15张图片

 无误

你可能感兴趣的:(Hadoop集群环境搭建(virtualbox和centos7))