Hadoop hdfs配置

网络情况:网络为:192.168.80.0,网关为192.168.80.2,掩码为255.255.255.0,域名202.196.32.1。

Hadoop平台规划:三台linux主机使用64位CentOS7系统,采用最小化安装。用户为都为hadoop,master为192.168.80.5,slaver1为192.168.80.6,slaver2为192.168.80.7。

一、在主机master上配置

1.安装CentOS 7,选择最小化安装,其它可以采用默认。

2.(root)设置静态IP(*.*.*.5)地址:vi /etc/sysconfig/network-scripts/ifcfg-ens33

开户网络:ifup ens33

3.使用putty连接该主机。

(root)帐户添加帐户hadoop:useradd hadoop;passwd hadoop

(root) hostnamectl set-hostname master //修改主机名master:

exec bash //让修改的主机名立即生效

vi /etc/hosts  //添加三个ip 和 三个主机名的对应关系。此处全部加上,复制后,另外两个机器就不用再添加了。

4.(root)关闭selinux和firewalld:

setenforce 0  //关闭运行的selinux

vi /etc/sysconfig/selinux  //重启selinux不会再运行

systemctl stop firewalld  //停止防火墙

systemctl disable firewalld //设置防火墙不开机自动启动

5.(root)修改yum源为ustc的源。

cd /etc/yum.repos.d  //切换工作目录

mv CentOS-Base.repo CentOS-Base.repo.bak

vi CentOS-Base.repo  //新建文件,添加内容参考:https://lug.ustc.edu.cn/wiki/mirrors/help/centos

yum makecache  //更新yum

yum install rsync

yum install vim

yum install wget

6.(root)安装java运行环境。

1)下载jdk,需要到官方网络注册帐号,得到下载地址后进行下载:wget https://download.oracle.com/otn/java/jdk/8u211-b12/478a62b7d4e34b78b671c754eaaf38ab/jdk-8u211-linux-x64.tar.gz?AuthParam=1559117532_f52bb505fc34d78fff04ffb70d990331

2)tar xvf jdk.tar.gz

3)vim /etc/profile,添加三行

export JAVA_HOME=/opt/jdk1.8.0_211

export CLASSPATH=.:$JAVA_HOME/lib

export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile,输入java -version,测试。

7.复制出另外两个系统,(root)修改主机名分别为slaver1和slaver2,并分别设置IP地址(*.*.*.6)和(*.*.*.7)。

可参考第2,3步。设置完成后,重启网络:ifdown ens33;ifup ens33

8.测试三个主机间的连接通连,使用ping master;ping slaver1;ping slaver2

二、配置免密登录

1.在三个主机上分别使用hadoop帐户分别运行ssh-keygen.

2.把slaver1的生成的公钥上传到master上。

scp id_rsa.pub hadoop@master:/home/hadoop/.ssh/slaver1.pub

3.把slaver2的生成的公钥上传到master上。

scp id_rsa.pub hadoop@master:/home/hadoop/.ssh/slaver2.pub

4.在master上把master、slaver1,slaver2的公钥合在一起:

cat id_rsa.pub slaver1.pub slaver2.pub >authorized_keys

5. chmod 600 authorized_keys  //修改该文件的权限为600

6.把该文件再上传到slaver1和slaver2主机的相应位置。

scp authorized_keys hadoop@slaver1:/home/hadoop/.ssh/authorized_keys

scp authorized_keys hadoop@slaver2:/home/hadoop/.ssh/authorized_keys

7.(root) vim /etc/ssh/sshd_config

PubkeyAuthentication yes  去掉前面#

8.(root)把该配置文件上传到slaver1和slaver2主机的相应位置。

scp /etc/ssh/sshd_config  root@slaver1:/etc/ssh/sshd_config

scp /etc/ssh/sshd_config  root@slaver2:/etc/ssh/sshd_config

9.重启3个主机的sshd服务

systemctl restart sshd

10.使用hadoop帐户测试3个主机中,任意2个的免密登录是否正常(包括自己)。

ssh master;ssh slaver1;ssh slaver2

三、配置hadoop平台,使用hadoop用户在master主机上配置,配置好后传到另外两个主机。

1. 在/home/hadoop下: wget  http://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-2.9.2/hadoop-2.9.2.tar.gz  //下载hadoop软件包

2. tar -xvf hadoop-2.9.2.tar.gz

3.(root)配置环境变量:vim /etc/profile

export HADOOP_HOME=/home/hadoop/hadoop-2.9.2

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

以下操作是在hadoop帐户下。

4.(hadoop) cd hadoop-2.9.2; mkdir hdptmp  //在hadoop-2.9.2下创建目录hdptmp

mkdir -p dfs/name;mkdir -p dfs/data

5. 配置hadoop-env.sh。

cd  hadoop-2.9.2/etc/hadoop;vim hadoop-env.sh;

export JAVA_HOME=/opt/jdk1.8.0_211

export HADOOP_CONF_DIR=/home/hadoop/hadoop-2.9.2/etc/hadoop

source hadoop-env.sh

6. 配置core-site.xml

cd  hadoop-2.9.2/etc/hadoop;vim core-site.xml;

<configuration></configuration>节点中间加入。

    <property>

        <name>hadoop.tmp.dir</name>

        <value>/home/hadoop/hadoop-2.9.2/hdptmp</value>

    </property>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://master:9000</value>

    </property>

7.配置hdfs-site.xml

cd  hadoop-2.9.2/etc/hadoop;vim hdfs-site.xml;

<configuration></configuration>节点中间加入。

<property>

   <name>dfs.namenode.name.dir</name>

   <value>/home/hadoop/hadoop-2.9.2/dfs/name</value>

</property>

<property>

   <name>dfs.datanode.data.dir</name>

   <value>/home/hadoop/hadoop-2.9.2/dfs/data</value>

</property>

<property>

   <name>dfs.replication</name>

   <value>2</value>

</property>

8.配置mapred-site.xml.

cd  hadoop-2.9.2/etc/hadoop; cp mapred-site.xml.template mapred-site.xml;vim mapred-site.xml;

<configuration></configuration>节点中间加入。

<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

9.配置yarn-site.xml

cd  hadoop-2.9.2/etc/hadoop;vim yarn-site.xml;

<configuration></configuration>节点中间加入。

   <property>

        <name>yarn.resouremanager.hostname</name>

        <value>master </value>

   </property>

   <property>

        <name>yarn.nodemanager.aux-services</name>

        <value>mapreduce_shuffle</value>

   </property>

<property>

    <name>yarn.resourcemanager.address</name>

    <value>master:8032</value>

  </property>

  <property>

    <name>yarn.resourcemanager.scheduler.address</name>

    <value>master:8030</value>

  </property>

  <property>

    <name>yarn.resourcemanager.resource-tracker.address</name>

    <value>master:8031</value>

  </property>

10.配置slaver,cd  hadoop-2.9.2/etc/hadoop;vim slavers; 添加主机名。

slaver1

slaver2

11.把master上配置的hadoop相关文件传到另外两个机器上。

scp -r hadoop-2.9.2 hadoop@slaver1:/home/hadoop/

scp -r hadoop-2.9.2 hadoop@slaver2:/home/hadoop/

12.启动

master服务器启动hadoop,从节点会自动启动,进入/home/hadoop/hadoop-2.9.2目录

(1)初始化输入命令, bin/hdfs namenode  -format

(2)全部启动sbin/start-all.sh

(3)停止的话,输入命令,sbin/stop-all.sh

(4)输入命令jps。如果运行成功的话:master机器上应该是4个进程,slaver1和slaver2机器上应该是3个进程。

13、Web访问

(1)浏览器打开http://192.168.80.5:8088/  hadoop的管理

(2)浏览器打开http://192.168.80.5:50070/ hdfs文件系统管理

四、测试程序

1. hdfs dfs -mkdir /test; hdfs dfs -ls /  在分布式文件系统中创建目录test

2.touch words  在本地创建文件,随便输入一些单词,以空格分开。

3. hdfs dfs -put words /test   把words文件上传到分布式文件系统中

4./home/hadoop/hadoop-2.9.2/bin/hadoop jar /home/hadoop/hadoop-2.9.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.9.2.jar wordcount /test/words /test/output

或我的位置或任意你的hadoop位置

/usr/local/hadoop-2.8.2/bin/hadoop  jar   /usr/local/hadoop-2.8.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.2.jar wordcount  /test/words /test/output

5.查看结果:

bin/hdfs dfs -cat /test/output/part-r-00000

发布了755 篇原创文章 · 获赞 652 · 访问量 129万+

猜你喜欢

转载自blog.csdn.net/zhangchen124/article/details/104686152