Hadoop伪分布配置

来源:互联网 发布:javascript引用ku 编辑:程序博客网 时间:2024/05/17 23:05

1.下载虚拟机

版本:VMware-workstation-full-12.5.7.20721

下载地址:链接:http://pan.baidu.com/s/1qY0Szfu 密码:yfg8


2.下载ubuntu

版本;ubuntu-16.04-desktop-amd64.iso

下载地址:链接:http://pan.baidu.com/s/1b3MCv8 密码:lhc3


3.安装虚拟机


安装下载好的ubuntu




4.更新APT&安装vim

按ctrl+alt+t打开命令终端,按ctrl+shfit+v进行粘贴

命令:sudo apt-get update


命令:sudo apt-get install vim



5.安装SSH,配置无密钥登录

sudo apt-get install -y openssh-server


使用密码登录ssh localhost


设置无密码登录:cd ~/.ssh

ssh-keygen -t rsa 后面的提示全部按回车即可


加入授权:cat ./id_rsa.pub >> ./authorized_keys


无密码登录



6.安装Jdk

先用java命令查看已有jdk版本


sudo apt-get install openjdk-8-jdk-headless


配置环境变量

dpkg -L openjdk-8-jdk-headless | grep'/bin/javac'

获得路径:

vim ~/.bashrc

在第一行添加路径

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64


然后点击 Esc,输入 wq,保存退出(如果按Esc没有反应,直接按shfit+z两次,直接保存退出)

source ~/.bashrc 对以上操作进行保存

然后进行检验,如下,两者结果相同,即为成功。


7.下载安装Hodoop

版本:

hadoop-2.7.3.tar.gz

下载地址:http://mirror.bit.edu.cn/apache/hadoop/common/stable/


解压到/usr/local

sudo tar -zxf ~/Downloads/hadoop-2.7.3.tar.gz -C /usr/local


改名并修改权限


检查版本



8.关闭这个系统,然后进行克隆


右键 管理 克隆



修改网络配置:

修改网络:右键 设置


点击高级,更新Mac地址


修改用户名:

sudo vim /etc/hostname


其余虚拟机名改为slave1,slave2。


查看ip地址

ifconfig




配置文件

sudo vim /etc/hosts


测试节点

ping master -c 3


重命名后重启。


9.ssh无密码登录节点

生成公钥

  1. cd~/.ssh# 如果没有该目录,先执行一次ssh localhost
  2. rm./id_rsa*# 删除之前生成的公匙(如果有)
  3. ssh-keygen -t rsa# 一直按回车就可以


让 master 节点需能无密码 SSH 本机,在 master 节点上执行:

cat ./id_rsa.pub >> ./authorized_keys

验证:ssh master



接着在 master 节点将上公匙传输到 slave1 和slave2 节点:

scp ~/.ssh/id_rsa.pub hadoop@slave2:/home/hadoop/

在子节点中,对公钥

  1. cat~/id_rsa.pub >> ~/.ssh/authorized_keys
  2. rm~/id_rsa.pub# 用完就可以删掉了


检测 在master中输入: ssh slave1


10.配置path变量

每个机器上都要配置
vim ~/.bashrc
添加如下内容

export PATH=$PATH:/usr/local/hadoop/bin:/usr/local/hadoop/sbin

保存后执行 source ~/.bashrc 使配置生效。


11.配置集群
设置了正常启动所必须的设置项: slaves、core-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml 。
回到根目录 cd /..

打开 slaves: vim usr/local/hadoop/etc/hadoop/slaves
修改如下:
slave1
slave2

在此文件夹下,创建文件masters,打开,添加如下内容
master


打开 core-site.xml: vim usr/local/hadoop/etc/hadoop/core-site.xml



修改如下:
<configuration>
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://Master:9000</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/usr/local/hadoop/tmp</value>
                <description>Abase for other temporary directories.</description>
        </property>
</configuration>


打开 hdfs-site.xml:vim usr/local/hadoop/etc/hadoop/hdfs-site.xml
修改如下:(dfs.replication根据子节点数量而定

<configuration>
        <property>
                <name>dfs.namenode.secondary.http-address</name>
                <value>master:50090</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/usr/local/hadoop/tmp/dfs/data</value>
        </property>
</configuration>


重命名:mapred-site.xml.template 为 mapred-site.xml 
文件位置:usr/local/hadoop/etc/hadoop/mapred-site.xml

打开: vim usr/local/hadoop/etc/hadoop/mapred-site.xml
添加内容:
  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>Master:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>Master:19888</value>
  13. </property>
  14. </configuration>



打开: vim usr/local/hadoop/etc/hadoop/yarn-site.xml
添加内容:
  1. <configuration>
  2. <property>
  3. <name>yarn.resourcemanager.hostname</name>
  4. <value>Master</value>
  5. </property>
  6. <property>
  7. <name>yarn.nodemanager.aux-services</name>
  8. <value>mapreduce_shuffle</value>
  9. </property>
  10. </configuration>



将配置文件克隆到其它节点
如果之前有配置过,需要把之前的数据删除
  1. cd/usr/local
  2. sudo rm-r ./hadoop/tmp# 删除 Hadoop 临时文件
  3. sudo rm-r ./hadoop/logs/*# 删除日志文件

在master节点压缩并传送
  1. tar-zcf ~/hadoop.master.tar.gz ./hadoop# 先压缩再复制
  2. cd~
  3. scp./hadoop.master.tar.gz slave1:/home/hadoop


在节点上操作:
  1. sudo tar-zxf ~/hadoop.master.tar.gz -C /usr/local
  1. sudo chown-R hadoop /usr/local/hadoop


11.启动集群
在master上启动:
  1. hdfs namenode -format# 首次运行需要执行初始化,之后不需要

  1. start-dfs.sh
  2. start-yarn.sh #关闭是stop-yarn.sh
  3. mr-jobhistory-daemon.sh start historyserver

通过命令 jps 可以查看各个节点所启动的进程。正确的话,在 Master 节点上可以看到 NameNode、ResourceManager、SecondrryNameNode、JobHistoryServer 进程。


在子节点中,如下





打开http://master:50070/



12.执行分布式实例
三台机器都关闭防火墙:
sudo service ufw stop

创建 HDFS 上的用户目录
  1. hdfs dfs-mkdir-p /user/hadoop
将 /usr/local/hadoop/etc/hadoop 中的配置文件作为输入文件复制到分布式文件系统中:
  1. hdfs dfs-mkdirinput
  2. hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml inp
通过查看 DataNode 的状态(占用大小有改变),输入文件确实复制到了 DataNode 中:



运行 MapReduce 作业
  1. hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep input output'dfs[a-z.]+'



输出结果:





关闭集群
  1. stop-yarn.sh
  2. stop-dfs.sh
  3. mr-jobhistory-daemon.sh stop historyserver





参考资料:
http://www.powerxing.com/install-hadoop/
http://www.powerxing.com/install-hadoop-cluster/