hadoop 学习之Hadoop 2.8.x 分布式安装



一、环境准备

1、主机操作系统:处理器:i5,主频:2.4G,内存:12G,Windows64

2、虚拟机软件:VMware Workstation 10 

3、虚拟机操作系统:CentOs-7.0  64位 

4、JDK:1.8 64位

5、hadoop:2.8.2

6、虚拟三台服务器 master(192.168.35.170)、slave1(192.168.35.171)、slave2(192.168.35.172)

二、设置固定IP地址

1、使用命令: vi   /etc/sysconfig/network-scripts/ifcfg-ens33 

2、新加入以下配置信息(注意以下标红色要修改为自己的IP地址)以下为我的master 的IP地址  

IPADDR0=192.168.35.170
PREFIXO0=24
GATEWAY0=192.168.35.255
DNS1=8.8.8.8

3、用#注释掉 BOOTPROTO=dhcp

4、修改 ONBOOT=yes

5、按esc  再输入命令  :wq  退出写入保存 

6、使用命令:ifconfig  进行配置查看

7、使用命令:service network restart 进行网络重新启动

8、使用命令:ping  验证master(192.168.35.170) 与 slave1(192.168.35.171)、slave2 (192.168.35.172) 是否相通


9、根据以上几步进行 slave1、slave2的网络配置

10、使用命令:vi   /etc/hosts   修改master、slave1、slave2的hosts 文件 文件内容如下

下图为master 的配置文件  slave1、slave2也一样

三台机器hosts 文件设置完之后 在master通过ping  slave1.hadoop  是否可以通;

三、JDK 安装

1、用root账号在usr目录下创建java文件夹

2、上传jdk压缩包  jdk-8u161-linux-x64.tar.gz 到 usr/java 目录中

3、使用命令: tar  zxvf   jdk-8u161-linux-x64.tar.gz   解压

4、使用命令:mv  jdk1.8.0_161   jdk1.8  更改文件夹名称

5、使用命令:vi  /etc/profile   修改配置文件(就是配置java 环境变量)



6、按键盘 i 按键进行编辑;把以下配置放在文件最后面

export JAVA_HOME=/usr/java/jdk1.8
export JRE_HOME=/usr/java/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH

7、按键盘 esc 按键、 再输入 :wq  进行退出写入保存;不写入保存命令为       :q!

8、使用命令: source   /etc/profile  使配置文件生效

9、使用命令: java   -version  进行验证jdk是否安装成功

如上图 出现 Java version “1.8.0_161” 表示安装成功

四、关闭防火墙(要不上传文件到hadoop会报错)

CentOS 7.0默认使用的是firewall作为防火墙

关闭firewall:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running

注意:三台服务均要关闭

五、设置ssh 免密登录(以上四步均用root 账号操作)

1、使用命令:su hadoop   切换到hadoop用户下

2、使用命令:cd ~  切换到 ~ 目录中

3、使用命令:ssh-keygen   生成秘钥文件(出现 enter  file ........  按回车就可以了)

4、此时已生成  .ssh 目录(此目录 用ls 是无法查看到的 直接cd  .ssh 进入该目录)

5、使用命令:cat ~/id_rsa.pub >> ~/.ssh/authorized_keys     将公钥拷贝到 authorized_keys 文件中

6、用同样的方式操作 slave1、slave2 服务器

7、将三台服务器的  authorized_keys 的内容合并成一个 authorized_keys 文件; 然后替换掉三台服务器的authorized_keys

以上为合并完的文件内容

8、更改权限

 chmod 755 ~
 chmod 700 ~/.ssh

chmod 600 ~/.ssh/authorized_keys

9、使用命令:  systemctl restart sshd.service    重启三台服务器的 ssh

10、在三台服务器的hadoop用户下 测试 ssh是否可免密登录(不能用root 测试  )

  如:在master服务器 测试  ssh  slave1.hadoop 、 ssh slave2.hadoop

         在 slave1 服务器 测试  ssh  master.hadoop 、ssh salve2.hadoop

出现last  login: Fri  Apr  6  19:01:25  2018  表示免密登录成功

exit  退出 到本机

六、开始hadoop 安装

1、使用命令:su root 切换到用root

2、使用命令:mkdir  /usr/hadoop、 mkdir /usr/hadoop/dfs、 mkdir  /usr/hadoop/tmp、mkdir  /usr/hadoop/dfs/data、mkdir  /usr/hadoop/dfs/name

3、使用命令: cd  /usr/hadoop 目录下

4、上传hadoop的hadoop-2.8.2.tar.gz压缩文件

5、使用命令:tar xf  hadoop-2.8.2.tar.gz 解压

6、使用命令:mv  hadoop-2.8.2   hadoop-2.8  修改文件名

7、使用命令:vi  /etc/profile  修改配置文件 在最后加入以下内容

export HADOOP_HOME=/usr/hadoop/hadoop-2.8
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

8、esc    :wq   退出保存     source  /etc/profile  使文件生效

9、使用命令:hadoop version  验证配置是否成功

10、配置 hadoop-2.8/etc/hadoop/hadoop-env.sh

修改文件中的 export JAVA_HOME=/usr/java/jdk1.8

11、修改配置文件 hadoop-2.8/etc/hadoop/core-site.xml

<configuration>    <property>        <name>fs.defaultFS</name>        <value>hdfs://master.hadoop:9000</value>    </property>    <property>        <name>hadoop.tmp.dir</name>        <value>file:/usr/hadoop/tmp</value>    </property>    <property>        <name>io.file.buffer.size</name>        <value>131702</value>    </property> </configuration>

11、修改配置文件 hadoop-2.8/etc/hadoop/hdfs-site.xml

 
 

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/hadoop/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/hadoop/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master.hadoop:9001</value>
    </property>
    <property>
    <name>dfs.webhdfs.enabled</name>
    <value>true</value>
    </property>
 </configuration>

12、使用命令 :cp    mapred-site.xml.template   mapred-site.xml

修改配置文件 mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master.hadoop:10020</value>
    </property>
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master.hadoop:19888</value>
    </property>
 </configuration>

13、修改配置文件  yarn-site.xml

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
        <value>org.apache.hadoop.mapred.ShuffleHandler</value>
    </property>
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master.hadoop:8032</value>
    </property>
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master.hadoop:8030</value>
    </property>
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master.hadoop:8031</value>
    </property>
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master.hadoop:8033</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master.hadoop:8088</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>768</value>
    </property>
 </configuration>

修改 master.xml 文件 (无此文件 可将slaves.xml 拷贝更改)

将 localhost  改为 192.168.35.170

修改 slaves.xml 文件

将localhost 改为 

192.168.35.171
192.168.35.172

14、将master服务器的 hadoop 文件夹拷贝到 slave1、slave2 服务器
 执行命令:scp  /usr/hadoop      [email protected]:/usr/
                  scp /usr /hadoop    [email protected]:/usr/
15、使用命令:chown  -R  hadoop:hadoop  hadoop   将master、slave1、slave2 的 /usr/hadoop 文件夹授权给 hadoop 用户
16、使用命令:shutdown -r now  重启各服务器
17、三台服务器用 hadoop 账号登录 ; 执行命令: hadoop namenode –format  格式化
18、三台服务器用  cd   /usr/hadoop/hadoop-2.8/sbin 目录下  执行 ./start-all.sh  启动hadoop
19、使用命令:jps 查看
master

slave1

slav2 与slave1 一样

七、验证hadoop

1、使用命令:mkdir  /home/hadoop/input 创建input 文件夹

2、使用命令:cd   /home/hadoop/input 目录下

3、使用命令: echo "hello word">>test.txt

4、使用命令:hadoop fs -mkdir -p /home/hadoop/in  在运行的hadoop中创建文件

5、使用命令:hadoop fs -put /home/hadoop/input/    /home/hadoop/in

6、使用命令:hadoop fs -ls /home/hadoop/in   进行查看

   




猜你喜欢

转载自blog.csdn.net/chichichichi/article/details/79835001