2015.07.12hadoop伪分布安装

来源:互联网 发布:05后小虎哥称霸网络 编辑:程序博客网 时间:2024/06/05 12:48
hadoop伪分布安装

 

  1. Hadoop2的伪分布安装步骤【使用root用户用户登陆】other进去超级用户拥有最高的权限

    1.1(桥接模式)设置静态IP ,,修改配置文件,虚拟机IP192.168.1.99重启网卡,网关192.168.1.1是物理机下面的默认网关,

    执行命令

    vi /etc/sysconfig/network-scripts/ifcfg-eh0

     

    修改内容:

    TYPE="Ethernet"

    BOOTPROTO="static"

    ONBOOT="yes"

    IPADDR="192.168.1.99"

    GATEWAY="192.168.1.1"

    DNS1="192.168.1.1"

    NETMASK=255.255.255.0

     

    重启网卡,执行命令service network restart

     

    验证:执行命令 ifconfig

     

    1.2修改主机名(主机名类似于域名(baidu.com))

    <1>修改当前会话中的主机名,执行命令hostname hadoop

    <2>修改配置文件中的主机名,执行命令vi /etc/sysconfig/network

    验证:重启机器reboot -h now

    命令vi三种模式 只读,不能写

                编辑,能读,也能写(敲击键盘ai

    命令,需要执行命令(按Esc键,然后按Shift+:组合键,输入wq保存退出)

    编辑文件强退时会产生(没保存时vi就自动保存成.a.swp)交换分区缓存文件(.a.swp) 查看隐藏文件使用命令ls -a

    1.3把hostnameIP绑定

    执行命令vi /etc/hosts,增加一行内容,如下

    192.168.1.99 hadoop (虚拟机的IP地址)

    保存退出。

    验证:ping hadoop

    1.4关闭防火墙

    执行命令 service iptables stop

    验证:service iptables status

    1.5关闭防火墙的自动运行(防火墙重启后可能会自动启动)

    执行命令 chkconfig iptables off

    验证:chkconfig --list | grep iptableschkconfig是检查自动运行的配置项,--list是显示所有结果)

    1.6 ssh免密码登录(类似与telnet命令,是明文传输包括密码,不安全。ls /root/.shh/查看(重启命令service shhd restartA要免密码登录BAB的自身shh是可以运行,A将公钥文件复制给B中的authorized_keys文件,AB发送登录请求,BA发送随机的字符串,A用私钥加密字符串后的数据发回BB自身将公钥加密之前的字符串,然后对比加密后的数据,如果比对匹配则可通信,反之不可通信)

    <1>执行命令ssh-keygen -t rsa(-t指定加密类型,rsa是加密的算法一种)产生密钥,位于~/.shh文件夹中(id_rsa.pub是公钥文件id_rsa是私钥文件

    <2>执行命令(将自己的公钥文件拷贝到其他机器)ssh-copy-id -i hadoop ((不安全偷懒)或者将crxy2的密钥文件拷贝到hadoopcrxy2执行命令scp /root/.ssh/* crxy1:/root/.shh/(cp ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys)

    验证:ssh localhost

     

    主节点->(公钥)子节点,子节点->(字符串)主节点,主节点->(密钥加密字符串)自己公钥加密字符串配对

    公钥到了对方那里会放到authorized_keys文件夹中,ssh验证的时候会读取authorized_keys文件夹的内容

    2.7安装jdk

    <1>执行命令rm -rf/usr/local/*删除所有内容(r是递归删除,f是强制删除*是全部)

    <2>使用winscpjdk文件从windows复制到/usr/local目录下

    <3>执行命令 chmod u+x jdk-8u31-linux-x64.tar.gz 赋予执行权限

    <4>执行命令(当前目录/usr/local/) tar -zxvf jdk-8u31-linux-x64.tar.gz(./jdk-6u24-linux-i586.bin 解压缩)

    <5>执行命令 mv jdk-8u31 jdk 重命名

    <6>执行命令 vi /etc/profile 设置环境变量,增加了2行内容

    export JAVA_HOME=/usr/local/jdk

    export PATH=.:$JAVA_HOME/bin:$PATH

    保存退出

    执行命令 source /etc/profile 让该设置立即生效

    验证:java -version

    安装hadoop(注意是64位的,如果是32位需要编译)

    <1>执行命令 tar -zxvf(z是压缩格式,x是解压,f是文件) hadoop-2.6.0.tar.gz进行解压缩

    <2>执行命令 mv hadoop-2.6.0 hadoop 重命名

    <3>执行命令 vi /etc/profile 设置环境变量,增加了1行内容

    export HADOOP_HOME=/usr/local/hadoop

    修改了1行内容

    export PATH=.:$HADOOP_HOME:$JAVA_HOME/bin:$PATH

    保存退出

    执行命令 source /etc/profile 让该设置立即生效

    <4>修改hadoop的配置文件,位于$HADOOP_HOME/etc/hadoop 目录下的

    修改3个配置文件,分别是hadoop-env.shcore-site.xmlhdfs-site.xml

    注意:查看hadoop版本:进入$hadoop_home/lib/native,执行file libhadoop.so.1.0.0(我们知道在64位机器上需要编译源码,可是为什么要编译源码,编译源码后,会有什么效果。
    1.为什么需要编译Java文件?
    你写出来的都是*.JAVA文件,JVM能执行的都是*.CLASS文件,所以需要编译


    2.
    为什么要编译hadoop文件?
    只有编译后的hadoop,才能被就jvm执行,才能被安装

    3.hadoop
    Java文件,Java文件不是一处编译,处处运行的吗?为什么还要编译?
    处处运行是有前提条件的,就是有虚拟机执行,虚拟机分为两种32位,64位。
    如果是32虚拟机编译的文件,只能运行于32虚拟机
    如果是64虚拟机编译的文件,只能运行于64虚拟机

     

     

     

    关闭防火墙

     

     

    参考一下

    疑问:老师操设置完环境变量后并没有source /etc/profile就可以echo $JAVA_HOME,而我操作时却需要source /etc/profile才能echo $JAVA_HOME

     

    注意细节,最后是</configuration>,不然就会报错。

    HDFS伪分布搭建

    修改配置文件etc/hadoop/hadoop-env.sh

    JAVA_HOME=/usr/local/jdk(安装jdk所在的路径)

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

    <configuration>

    <property>

    <name>fs.default.name</name>

    <value>hdfs://hadoop:9000</value>

    </property>

        <property>

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

    <value>/usr/local/hadoop/tmp</value>

    </property>

    <property>

    <name>fs.trash.interval</name>

    <value>1440</value>

    </property>

     

    </configuration>

     

    //备注:<value>/usr/local/hadoop/tmp</value>(备注hadoop运行时产生的数据文件所存在的目录,具有读写权限)

     

     

    修改配置文件etc/hadoop/hdfs-site.xml:

    <configuration>

    <property>

    <name>dfs.replication</name>

    <value>1</value>(指的是副本数)

    </property>

    </configuration>

     

    格式化文件系统

    $ bin/hdfs namenode -format(格式化)

    启动hdfs集群:

    $ sbin/start-dfs.sh

    访问web浏览器:

    (NameNode ) http://localhost:50070/

    练习:

    创建目录:

    $ bin/hdfs dfs -mkdir /user

    $ bin/hdfs dfs -mkdir /user/root

    复制文件:

    $ bin/hdfs dfs -put /etc/profile input

    关闭集群:

    $ sbin/stop-dfs.sh

    启动不成功查看日志文件

    用浏览器查看hdfshttp://hadoop50070/)(能查看就说明HDFS已启动成功啦!恭喜恭喜!)

     

    试验(验证hdfs是启动成功)

     

     

     

     

     

     

    报错情况与解决办法:

     

    配置文件修改错了!重新修改一次!

     

     

    先停止hdfs(sbin/stop-all.sh),删除hadoop下的logs文件夹,然后再删除tmp文件夹,再格式化NameNode(bin/hdfs namenode -format),最后启动hdfs(sbin/start-all.sh)

     

     

0 0
原创粉丝点击