zoukankan      html  css  js  c++  java
  • [转] Hadoop 2.0 详细安装过程

    1. 准备

    创建用户

    useradd hadoop
    passwd hadoop

    创建相关的目录

    定义代码及工具存放的路径

    mkdir -p /home/hadoop/source
    mkdir -p /home/hadoop/tools

    定义数据节点存放的路径到跟目录下的hadoop文件夹, 这里是数据节点存放目录需要有足够的空间存放

    mkdir -p /hadoop/hdfs
    mkdir -p /hadoop/tmp
    mkdir -p /hadoop/log

    设置可写权限

    chmod -R 777 /hadoop

    定义java安装程序路径

    mkdir -p /usr/java

    2.安装

    安装JDK

    http://www.oracle.com/technetwork/java/javase/downloads/jdk-6u32-downloads-1594644.html
    在以上链接下载 linux64 下的jdk的安装文件: jdk-6u32-linux-x64.bin
    1. 将下载好的 jdk-6u32-linux-x64.bin 通 过 SSH 上传到 /usr/java 下

    scp -r ./jdk-6u32-linux-x64.bin root@hadoop1:/usr/java

    2. 进入 JDK 安装目录 cd /usr/java 并且执行 chmod +x jdk-6u32-linux-x64.bin
    3. 执行 ./jdk-6u32-linux-x64.bin
    4. 配置环境变量,执行 cd /etc 命令后执行 vi profile , 在行末尾添加

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

    5. 执行 chmod +x profile 将其变成可执行文件
    6. 执行 source profile 使其配置立即生效

    source /etc/profile

    7. 执行 java -version 查看是否安装成功

    这个步骤所有机器都必须安装

    [root@hadoop1 bin]# java -version
    java version "1.6.0_32"
    Java(TM) SE Runtime Environment (build 1.6.0_32-b05)
    Java HotSpot(TM) 64-Bit Server VM (build 20.7-b02, mixed mode)

    修改主机名

    修改主机名,所有节点均一样配置
    1. 连接到主节点 192.168.1.201 ,修改 network ,执行 vim /etc/sysconfig/network ,修改 HOSTNAME=hadoop1
    2. 修改 hosts 文件, 执行 cd /etc 命令后执行 vi hosts ,在行末尾添加:

    192.168.1.201   hadoop1
    192.168.1.202   hadoop2
    192.168.1.203   hadoop3
    192.168.1.204   hadoop4

    3. 执行 hostname hadoop1
    4. 执行 exit 后重新连接可看到主机名以修改 OK

    其他节点也修改主机名后添加 Host , 或者 host 文件可以在后面执行 scp 覆盖操作

    配置SSH无密码登陆

    SSH 无密 码原理简介 :
    首先在 hadoop1 上生成一个密钥对,包括一个公钥和一个私钥,并将公钥复制到所有的 slave(hadoop2-hadoop4) 上。
    然后当 master 通过 SSH 连接 slave 时, slave 就会生成一个随机数并用 master 的公钥对随机数进行加密,并发送给 master 。
    最后 master 收到加密数之后再用私 钥解密,并将解密数回传给 slave ,slave 确 认解密数无误之后就允许 master 不输入密码进行连接了

    具体步骤(在root用户和hadoop用户登陆情况下执行)

    1 、执行命令 ssh-keygen -t rsa 之后一路回车,查看刚生成的无密码钥对: cd .ssh 后执行 ll
    2 、把 id_rsa.pub 追加到授权的 key 里面去。 执行命令 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    3 、修改权限: 执行 chmod 600 ~/.ssh/authorized_keys
    4 、确保 cat /etc/ssh/sshd_config 中存在如下内容

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile .ssh/authorized_keys
    如需修改, 则在修改后执行重启 SSH 服 务命令使其生效 :service sshd restart

    5 、将公钥复制到所有的 slave 机器上 :scp ~/.ssh/id_rsa.pub 192.168.1.203 : ~/    然后 输入 yes ,最后输入 slave 机器的密码
    6 、在 slave 机器上创建 .ssh 文件夹 :mkdir ~/.ssh 然后执行 chmod 700 ~/.ssh (若文件夹以存在则不需要创建)
    7 、追加到授权文件 authorized_keys 执行命令 :cat ~/id_rsa.pub >> ~/.ssh/authorized_keys 然后执行 chmod 600 ~/.ssh/authorized_keys
    8 、重复第 4 步
    9 、验证命令 : 在 master 机器上 执行 ssh 192.168.1.203 发现主机名由 hadoop1 变成 hadoop3 即成功,最后删除 id_rsa.pub 文件 :rm -r id_rsa.pub
    按照以上步骤分别配置 hadoop1,hadoop2,hadoop3,hadoop4 ,要求每个都可以无密码登录

    源码下载

    HADOOP 版本
    最新版本 hadoop-2.0.5-alpha  安装包 为 hadoop-2.0.5-alpha.tar.gz
    下载官网地址 :http://www.apache.org/dyn/closer.cgi/hadoop/common/
    下载到 /home/hadoop/source 目录下

    wget http://ftp.riken.jp/net/apache/hadoop/common/hadoop-2.0.5-alpha/hadoop-2.0.5-alpha.tar.gz

    解压目录

    tar zxvf hadoop-2.0.5-alpha.tar.gz

    创建软连接

    cd /home/hadoop
    ln -s /home/hadoop/source/hadoop-2.0.5-alpha/ ./hadoop

    源码配置修改

    配置环境变量: vim /etc/profile
    添加:

    export HADOOP_DEV_HOME=/home/hadoop/hadoop
    export PATH=$PATH:$HADOOP_DEV_HOME/bin
    export PATH=$PATH:$HADOOP_DEV_HOME/sbin
    export HADOOP_MAPARED_HOME=${HADOOP_DEV_HOME}
    export HADOOP_COMMON_HOME=${HADOOP_DEV_HOME}
    export HADOOP_HDFS_HOME=${HADOOP_DEV_HOME}
    export YARN_HOME=${HADOOP_DEV_HOME}
    export HADOOP_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
    export HDFS_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop
    export YARN_CONF_DIR=${HADOOP_DEV_HOME}/etc/hadoop

    创建并配置hadoop-env.sh

    vim /usr/hadoop/hadoop-2.0.5-alpha/etc/hadoop/hadoop-env.sh

    在末尾添加 export JAVA_HOME=/usr/java/jdk1.6.0_27

    core-site.xml

    在 configuration 节点里面添加属性

    <property>
        <name>hadoop.tmp.dir</name>
        <value>/hadoop/tmp</value>
        <description>A base for other temporary directories</description>
    </property>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://192.168.1.201:9000</value>
    </property>

    添加 httpfs 的选项

    <property>
        <name>hadoop.proxyuser.root.hosts</name>
        <value>192.168.1.201</value>
    </property>
    <property>
        <name>hadoop.proxyuser.root.groups</name>
        <value>*</value>
    </property>

    slave配置

    vim /home/hadoop/hadoop/etc/hadoop/slaves 
    添加 slave 的 IP
    192.168.1.202
    192.168.1.203
    192.168.1.204

    配置hdfs-site.xml

    vim /home/hadoop/hadoop/etc/hadoop/hdfs-site.xml
    添加节点

    <property>
        <name>dfs.replication</name>
        <value>3</value>
    </property>
    
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:/hadoop/hdfs/name</value>
        <final>true</final>
    </property>
    
    <property>
        <name>dfs.federation.nameservice.id</name>
        <value>ns1</value>
    </property>
    
    <property>
        <name>dfs.namenode.backup.address.ns1</name>
        <value>192.168.1.201:50100</value>
    </property>
    
    <property>
        <name>dfs.namenode.backup.http-address.ns1</name>
        <value>192.168.1.201:50105</value>
    </property>
    
    <property>
        <name>dfs.federation.nameservices</name>
        <value>ns1</value>
    </property>
    
    <property>
        <name>dfs.namenode.rpc-address.ns1</name>
        <value>192.168.1.201:9000</value>
    </property>
    
    <property>
        <name>dfs.namenode.rpc-address.ns2</name>
        <value>192.168.1.201:9000</value>
    </property>
    
    <property>
        <name>dfs.namenode.http-address.ns1</name>
        <value>192.168.1.201:23001</value>
    </property>
    
    <property>
        <name>dfs.namenode.http-address.ns2</name>
        <value>192.168.1.201:13001</value>
    </property>
    
    <property>
        <name>dfs.dataname.data.dir</name>
        <value>file:/hadoop/hdfs/data</value>
        <final>true</final>
    </property>
    
    <property>
        <name>dfs.namenode.secondary.http-address.ns1</name>
        <value>192.168.1.201:23002</value>
    </property>
    
    <property>
        <name>dfs.namenode.secondary.http-address.ns2</name>
        <value>192.168.1.201:23002</value>
    </property>
    
    <property>
        <name>dfs.namenode.secondary.http-address.ns1</name>
        <value>192.168.1.201:23003</value>
    </property>
    
    <property>
        <name>dfs.namenode.secondary.http-address.ns2</name>
        <value>192.168.1.201:23003</value>
    </property>

    配置yarn-site.xml

    添加节点

    <property>
        <name>yarn.resourcemanager.address</name>
        <value>192.168.1.201:18040</value>
    </property>
    
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>192.168.1.201:18030</value>
    </property>
    
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>192.168.1.201:18088</value>
    </property>
    
    <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>192.168.1.201:18025</value>
    </property>
    
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>192.168.1.201:18141</value>
    </property>
    
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce.shuffle</value>
    </property>

    配置httpfs-site.xml

    同步代码到其他机器

    1.同步配置代 码
    先在 slaves 的机器上也 创 建

    mkdir -p /home/hadoop/source

    部署hadoop代 码 , 创 建 软连接 ,然后只要同步修改 过 的etc/hadoop下的配置文件即可
    2.同步 /etc/profile
    3.同步 /etc/hosts 

    scp -r /etc/profile root@hadoop2:/etc/profile
    scp -r /etc/hosts root@hadoop2:/etc/hosts

    其他机器以此操作

    3. Hadoop启动

    格式化集群

    hadoop namenode -format -clusterid clustername

    启动hdfs

    start-dfs.sh

    开启 hadoop dfs服务     

    启动Yarn

    start-yarn.sh

    启动httpfs

    httpfs.sh start
    使得对外可以提高 http 的 restful 接口服务

     4. 测试

    安装结果验证

    验证hdfs

    在各台机器执行 jps 看进程是否都已经启动 了

    [root@hadoop1 hadoop]# jps
    7396 NameNode
    24834 Bootstrap
    7594 SecondaryNameNode
    7681 ResourceManager
    32261 Jps
    [root@hadoop2 ~]# jps
    8966 Jps
    31822 DataNode
    31935 NodeManager
    进程启动正常

    验证是否可以登陆

    hadoop fs -ls hdfs://192.168.1.201:9000/ 
    hadoop fs -mkdir hdfs://192.168.1.201:9000/testfolder 
    hadoop fs -copyFromLocal ./xxxx hdfs://192.168.1.201:9000/testfolder 
    hadoop fs -ls hdfs://192.168.1.201:9000/ testfolder
  • 相关阅读:
    Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
    什么情况下Java程序会产生死锁?
    正确重写hashCode的办法
    浅析JVM类加载机制
    JVM中的新生代和老年代(Eden空间、两个Survior空间)
    解释循环中的递归调用
    get和post方法功能类似的,使用建议
    微信开发(五)微信消息加解密 (EncodingAESKey)
    PostgreSQL远程连接,发生致命错误:没有用于主机“…”,用户“…”,数据库“…”,SSL关闭的pg_hba.conf记录
    struts原理
  • 原文地址:https://www.cnblogs.com/JulyZhang/p/3156876.html
Copyright © 2011-2022 走看看