Fork me on GitHub

大数据学习系列(7)-- hadoop集群搭建

1、配置ssh免登陆

#进入到我的home目录
cd ~/.ssh

ssh-keygen -t rsa
执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)
将公钥拷贝到要免密登陆的目标机器上
ssh-copy-id localhost
---------------------------
ssh免登陆:
    生成key:
    ssh-keygen
    复制从A复制到B上:
    ssh-copy-id B
    验证:
    ssh localhost/exit,ps -e|grep ssh
    ssh A  #在B中执行

2、安装JDK
2.1 wget 下载jdk tar包

2.2 解压jdk
    #创建文件夹
    mkdir /home/hadoop/app
    #解压
    tar -zxvf jdk1.8.0_144.tar.gz -C /home/hadoop/app

2.3 将java添加到环境变量中
    vim /etc/profile
    #在文件最后添加
    export JAVA_HOME=/home/hadoop/app/jdk1.8.0_144
    export PATH=$PATH:$JAVA_HOME/bin

    #刷新配置
    source /etc/profile

3.安装hadoop2.8.3先上传hadoop的安装包到服务器上去/home/hadoop/

注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop
伪分布式需要修改如下配置文件:

3.1配置hadoop
第一个:hadoop-env.sh
    vim hadoop-env.sh
    # 修改jdk环境变量
    export JAVA_HOME=/usr/java/jdk1.8.0_144

第二个:core-site.xml

    <!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://node1:9000</value>
    </property>
    <!-- 指定hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/hadoop-2.8.3/tmp</value>
</property>

第三个:hdfs-site.xml   
    <!-- 指定HDFS副本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>dfs.secondary.http.address</name>
        <value>192.168.1.152:50090</value>
    </property>




第四个:mapred-site.xml (mv mapred-site.xml.template mapred-site.xml)
    mv mapred-site.xml.template mapred-site.xml
    vim mapred-site.xml
    <!-- 指定mr运行在yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

第五个:yarn-site.xml
    <!-- 指定YARN的老大(ResourceManager)的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>node1</value>
    </property>
    <!-- reducer获取数据的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

3.2 将hadoop添加到环境变量

vim /etc/proflie
    export JAVA_HOME=/usr/java/jdk1.8.0_144
    export HADOOP_HOME=/itcast/hadoop-2.8.3
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

3.3 格式化namenode(是对namenode进行初始化)
    hdfs namenode -format (hadoop namenode -format)

3.4 启动hadoop
    先启动HDFS
    sbin/start-dfs.sh

    再启动YARN
    sbin/start-yarn.sh

3.5 验证是否启动成功
    使用jps命令验证
    27408 NameNode
    28218 Jps
    27643 SecondaryNameNode
    28066 NodeManager
    27803 ResourceManager
    27512 DataNode

    http://node1:50070 (HDFS管理界面)
    http://node1:8088 (MR管理界面)
注意:

1、确保集群节点防火墙关闭

2、datanode可以正常启动,但是就是无法与namenode通讯,查看logs/下日志,会发现: Unable to connect to remote host:Connection refused
namenode下/etc/hosts 中有127.0.1.1(它监听的本地地址,是一个本地回环地址)


本地模式

wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.8.3/hadoop-2.8.3.tar.gz

#解压到/opt/moudles

tar -zxf hadoop-2.8.3/hadoop-2.8.3.tar.gz -C /opt/moudles

cd /opt/moudles/hadoop-2.8.3

mkdir wcinput

touch wc.input

vim wc.input  #写入一些单词

bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.3.jar wordcount wcinput wcoutput

伪分布式

# hadoop中创建一个临时目录

mkdir data    
mkdir data/tmp

# core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://aly_ye:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/moudles/hadoop-2.8.3/data/tmp</value>
    </property>
</configuration>

# hdfs-site.xml

<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

# 启动namenode

sbin/hadoop-daemon.sh start namenode

# 启动datanode

sbin/hadoop-daemon.sh start datanode

官方文档:http://hadoop.apache.org/docs/r2.8.3/hadoop-project-dist/hadoop-common/SingleCluster.html

hdfs垃圾回收

在core-site.xml配置垃圾回收时间:

<configuration>
    <property>
        <name>fs.trash.interval</name>
        <value>1000</value>
    </property>
</configuration>

启动方式

1、hadoop-daemon.sh、yarn-daemon.sh 逐一启动

2、start-dfs.sh、start-yarn.sh  分开启动(比较常用)

3、start-all.sh  一起启动



posted @ 2018-01-14 10:05  迁梦余光  阅读(190)  评论(0编辑  收藏  举报