Hadoop集群环境搭建

1、软件环境:
    master: Ubuntu-server-15.1
    slaves: Ubuntu-server-15.1
    slaves: Ubuntu-server-15.1
    jdk:jdk1.7.0_79
    hadoop:hadoop-2.6.4
2、创建master软件安装的目录: /home/hadoop

3、安装软件:
    3.1、安装jdk:
        rz  jdk.tar.gz
        tar -zxvf jdk.tar.gz
    3.2、安装hadoop:
        同jdk安装 
4、修改主机名
    修改主机名,所有节点均一样配置
    4.1、连接到主节点192.168.216.131,修改 network,执行 vi /etc/hostname:hadoop1
    4.2、修改 hosts文件,执行 cd /etc命令后执行 vi hosts,在行末尾添加 :
        192.168.171.130 master
        192.168.171.128 slaves1
        192.168.171.129 slaves2
    4.3、执行 hostname master
    4.4、执行 exit后重新连接可看到主机名以修改 OK
      其他节点也修改主机名后添加 Host,或者 host文件可以在后面执行 scp覆盖操作
5、创建账户
    5.1、使用root登陆所有机器后,所有的机器都创建hadoop用户:
        useradd hadoop
        passwd hadoop
    5.2、进入当前用户名的主文件夹,修改.profile文件
    5.3、此时在 /home/下就会生成一个 hadoop目录,目录路径为 /home/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
6、配置ssh免密登录:
        在Hadoop启动以后,Namenode是通过SSH(Secure Shell)来启动和停止各个datanode上的各种守护进程的,这就须要在节点之间执行指令的时候是不须要输入密码的形式,故我们须要配置SSH运用无密码公钥认证的形式。以本文中的四台机器为例,现在Master是主节点,他须要连接Slave1、Slave2和Slave3。须要确定每台机器上都安装了ssh,并且datanode机器上sshd服务已经启动。切换到hhadoop用户( 保证用户hadoop可以无需密码登录,因为我们后面安装的hadoop属主是hadoop用户)
        6.1、 在每台主机生成密钥对
            #su hadoop
            #ssh-keygen -t rsa
            #cat ~/.ssh/id_rsa.pub
            这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。
        6.2、 将Master公钥添加到远程主机Slave1的 authorized_keys 文件中
            在/home/hadoop/.ssh/下创建authorized_keys
            #vim authorized_keys
            将刚才复制的公钥复制进去
            权限设置为600.(这点很重要,网没有设置600权限会导致登陆失败)
            测试登陆:
            $ ssh slaves1
            The authenticity of host 'slave2 (192.168.137.101)' can't be established.
            RSA key fingerprint is d5:18:cb:5f:92:66:74:c7:30:30:bb:36:bf:4c:ed:e9.
            Are you sure you want to continue connecting (yes/no)? yes
            Warning: Permanently added 'slave2,192.168.137.101' (RSA) to the list of known hosts.
            Last login: Fri Aug 30 21:31:36 2013 from slave1
            [hadoop@Slave1 ~]$
            同样的方法,将Master 的公钥复制到其他节点。
7、安装Hadoop
    7.1、切换为hadoop用户,下载安装包后,直接解压安装即可:
            #su - hadoop
            #wget http://apache.stu.edu.tw/hadoop/common/hadoop-2.6.4/hadoop-2.6.4.tar.gz
            #tar -zxvf hadoop-2.6.4.tar.gz
        我的安装目录为:
            /home/hadoop/hadoop-2.6.4
        为了方便,使用hadoop命令或者start-all.sh等命令,修改Master上/etc/profile 新增以下内容:
            export HADOOP_HOME=/home/hadoop/hadoop-2.6.4      #hadoop 安装目录
            export PATH=$PATH:$HADOOP_HOME/bin      
            export PATH=$PATH:$HADOOP_HOME/sbin
            export HADOOP_MAPARED_HOME=${HADOOP_HOME}
            export HADOOP_COMMON_HOME=${HADOOP_HOME}
            export HADOOP_HDFS_HOME=${HADOOP_HOME}
            export YARN_HOME=${HADOOP_HOME}
            export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
            export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
            export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
        修改完毕后,执行source /etc/profile 来使其生效。
    7.2、 配置etc/hadoop/hadoop-env.sh文件
        配置etc/hadoop/hadoop-env.sh文件,添加:
        export JAVA_HOME=/home/data/jdk1.7.0_79
        这里修改为你的jdk的安装位置。
        测试hadoop安装:
        /home/hadoop/hadoop-2.6.4/bin/hadoop jar hadoop-0.20.2-examples.jarwordcount conf/ /tmp/out
8、配置集群
    8.1、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.171.130:9000</value>
        </property>
    8.2、slave配置
        vim /home/spark/hadoop-2.6.4/etc/hadoop/slaves
        添加 slave的 IP
        192.168.171.130
        192.168.171.128
        192.168.171.129
    8.3、配置hdfs-site.xml:
        vim /home/spark/hadoop-2.6.4/etc/hadoop/hdfs-site.xml
            添加节点
                <property>
                <name>dfs.replication</name>
                <value>2</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.171.130:50100</value>
                </property>

                <property>
                <name>dfs.namenode.backup.http-address.ns1</name>
                <value>192.168.171.130:50105</value>
                </property>

                <property>
                <name>dfs.federation.nameservices</name>
                <value>ns1</value>
                </property>

                <property>
                <name>dfs.namenode.rpc-address.ns1</name>
                <value>192.168.171.130:9000</value>
                </property>

                <property>
                <name>dfs.namenode.rpc-address.ns2</name>
                <value>192.168.171.130:9000</value>
                </property>

                <property>
                <name>dfs.namenode.http-address.ns1</name>
                <value>192.168.171.130:23001</value>
                </property>

                <property>
                <name>dfs.namenode.http-address.ns2</name>
                <value>192.168.171.130: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.171.130:23002</value>
                </property>

                <property>
                <name>dfs.namenode.secondary.http-address.ns2</name>
                <value>192.168.171.130:23002</value>
                </property>

                <property>
                <name>dfs.namenode.secondary.http-address.ns1</name>
                <value>192.168.171.130:23003</value>
                </property>

                <property>
                <name>dfs.namenode.secondary.http-address.ns2</name>
                <value>192.168.171.130:23003</value>
                </property>
    8.4、配置yarn-site.xml
        添加节点
            <property>
            <name>yarn.resourcemanager.address</name>
            <value>192.168.171.130:18040</value>
            </property>

            <property>
            <name>yarn.resourcemanager.scheduler.address</name>
            <value>192.168.171.130:18030</value>
            </property>

            <property>
            <name>yarn.resourcemanager.webapp.address</name>
            <value>192.168.171.130:18088</value>
            </property>

            <property>
            <name>yarn.resourcemanager.resource-tracker.address</name>
            <value>192.168.171.130:18025</value>
            </property>

            <property>
            <name>yarn.resourcemanager.admin.address</name>
            <value>192.168.171.130:18141</value>
            </property>

            <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
            </property>

            <property>
            <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
            <value>org.apache.hadoop.mapred.ShuffleHandler</value>
            </property>

            <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
            </property>

            <property>
            <name>yarn.log.server.url</name>
            <value>http://192.168.171.130:19888/jobhistory/logs</value>
            </property>
            <property>
            <name>yarn.application.classpath</name>
            <value>
            /home/hadoop/hadoop-2.6.4/etc/*,
            /home/hadoop/hadoop-2.6.4/etc/hadoop/*,
            /home/hadoop/hadoop-2.6.4/lib/*,
            /home/hadoop/hadoop-2.6.4/share/hadoop/common/*,
            /home/hadoop/hadoop-2.6.4/share/hadoop/common/lib/*,
            /home/hadoop/hadoop-2.6.4/share/hadoop/mapreduce/*,
            /home/hadoop/hadoop-2.6.4/share/hadoop/mapreduce/lib/*,
            /home/hadoop/hadoop-2.6.4/share/hadoop/hdfs/*,
            /home/hadoop/hadoop-2.6.4/share/hadoop/hdfs/lib/*,           
            /home/hadoop/hadoop-2.6.4/share/hadoop/yarn/*,
            /home/hadoop/hadoop-2.6.4/share/hadoop/yarn/lib/*
            </value>
            </property>

    8.5、配置mapred-site.xml
        添加节点
            <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
            </property>

            <property>
            <name>mapreduce.jobhistory.address</name>
            <value>192.168.171.130:10020</value>
            <description>MapReduce JobHistory Server IPC host:port</description>
            </property>

            <property>
            <name>mapreduce.jobhistory.webapp.address</name>
            <value>192.168.171.130:19888</value>
            <description>MapReduce JobHistory Server Web UI host:port</description>

            </property>
            <property>
            <name>mapred.child.java.opts</name>
            <value>-Xmx3000m -Xmx3000m -XX:-UseGCOverheadLimit</value>
            </property>

            <property>
            <name>mapreduce.reduce.memory.mb</name>
            <value>4096</value>
            </property>

            <property>
            <name>mapreduce.map.memory.mb</name>
            <value>4096</value>

            </property>
            <property>
            <name>mapreduce.task.timeout</name>
            <value>600000</value>
            </property>

    8.6、配置httpfs-site.xml
        添加 httpfs的选项
            <property>
            <name>hadoop.proxyuser.root.hosts</name>
            <value>192.168.171.130</value>
            </property>
            <property>
            <name>hadoop.proxyuser.root.groups</name>
            <value>*</value>
            </property>


9、同步代码到其他机器
    9.1、同步配置代码
        master# scp -r /home/hadoop/hadoop-2.6.4 root@slaves1:/home/hadoop/
        master# scp -r /home/hadoop/hadoop-2.6.4 root@slaves2:/home/hadoop/
    9.2、同步 /etc/profile
    9.3、同步 /etc/hosts
        #scp -r /etc/profile root@slaves1:/etc/profile
        #scp -r /etc/profile root@slaves2:/etc/profile
        #scp -r /etc/hosts root@slaves1:/etc/hosts
        #scp -r /etc/hosts root@slaves2:/etc/hosts
    其他机器以此操作
10、Hadoop启动
    格式化集群
        hadoop namenode -format -clusterid clustername
        hdfs namenode -format
        /home/hadoop/hadoop-2.6.4/sbin
    启动hdfs执行,开启 hadoop dfs服务:
        start-dfs.sh
    启动Yarn
        开启 yarn资源管理服务:
            start-yarn.sh
            hadoop-daemons.sh start secondarynamenode
    启动日志服务
        mr-jobhistory-daemon.sh start historyserver


   启动httpfs,使得对外可以提高 http的restful接口服务:
        开启 httpfs服务
        httpfs.sh start
11、测试
    安装结果验证
    验证hdfs
    在各台机器执行 jps看进程是否都已经启动了
        [root@master hadoop]# jps
            7396 NameNode
            24834 Bootstrap
            7594 SecondaryNameNode
            7681 ResourceManager
            32261 Jps
        [root@slaves1 ~]# jps
            8966 Jps
            31822 DataNode
            31935 NodeManager
        进程启动正常
    查看集群状态
        查看hdfs:http://192.168.171.130:50070/
        查看RM:http://192.168.171.130:8088/
    验证是否可以登陆
        hadoop fs -ls hdfs://192.168.171.130:9000/ 
        hadoop fs -mkdir hdfs://192.168.171.130:9000/testfolder 
        hadoop fs -copyFromLocal ./testData hdfs://192.168.171.130:9000/testfolder 
        hadoop fs -ls hdfs://192.168.171.130:9000/testfolder
        hadoop fs -copyFromLocal article.log hdfs://192.168.171.130:9000/testfolder/testData/
        hadoop jar ../share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.4.jar wordcount         hdfs://192.168.171.130:9000/testfolder/testData/article.log hdfs://192.168.171.130:9000/testfolder/oup_put
    看以上执行是否正常
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值