ubuntu14.04部署hadoop环境(学习笔记)

    xiaoxiao2021-03-25  143

     

    第一步:准备三台虚拟机并创建3个hadoop用户

    修改hosts文件如下: sudo vim /etc/hosts

    127.0.0.1 localhost #127.0.1.1 ubuntu-14.04-Server ubuntu-14 #一定要注释掉 10.0.83.201 CDH 10.0.83.202 CDH1 10.0.83.173 CDH2

    并修改各台主机对应的主机名: sudo vim /etc/hostname CHD

    第二步:三台主机创建新用户且都设置ssh免密码登陆

    首先每台主机创建一个新用户叫hadoop。方法如下:

    sudo useradd -m hadoop -s /bin/bash sudo passwd hadoop sudo adduser hadoop sudo gpasswd -a hadoop root

    #这里的hadoop是自己随意设置的用户名 但3台服务器要统一用户名 其次每台机器上安装ssh:sudo apt-get install openssh-server 再次设置免密码登陆:可以借鉴  http://blog.csdn.net/thinkpadshi/article/details/46518457 参考我自己整理的方法:http://blog.csdn.net/u012969412/article/details/60961161

    第三步:安装jdk1.8

    参考:http://blog.csdn.net/u012969412/article/details/58056270 将jdk安装到目录 /usr/local/java中

    第四步:下载hadoop安装文件

    hadoop安装文件地址:http://mirrors.hust.edu.cn/apache/hadoop/common/ 下载到目录下~/hadoop/          三台主机都需要安装hadoop 执行指令:wget -r -O  hadoop-2.7.3.tar.gz "http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz"一定要在hadoop用户下执行解压指令:tar -zxvf hadoop-2.7.3.tar.gz  将hadoop解压安装到目录~/hadoop

    添加hadoop_home环境变量到:/etc/profile里

     

    # Java Env export JAVA_HOME=/usr/local/java/jdk1.8.0_121 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar # Hadoop Env export HADOOP_HOME=/home/hadoop/hadoop-2.7.3 export HADOOP_PREFIX=${HADOOP_HOME} export CLASSPATH=$($HADOOP_HOME/bin/hadoop classpath):$CLASSPATH export PATH=$PATH:$HADOOP_PREFIX/bin:$HADOOP_PREFIX/sbin export HADOOP_COMMON_HOME=${HADOOP_PREFIX} export HADOOP_HDFS_HOME=${HADOOP_PREFIX} export HADOOP_MAPRED_HOME=${HADOOP_PREFIX} export HADOOP_YARN_HOME=${HADOOP_PREFIX}

     

    每台机器执行:source /etc/profile  使环境变量生效 每台机器执行:hadoop version 查看hadoop是否安装成功。

    第五步:关闭防火墙

    $ sudo apt-get install ufw $ sudo ufw disable $ sudo ufw status

    第六步:需要在hadoop-2.6.0目录下创建一些目录

    1. 创建core-site.xml中hadoop.tmp.dir 的目录:hadoop-2.7.3/tmp                                # 这个目录start-dfs.sh时不会自动创建 2. 创建hdfs-site.xml中dfs.namenode.name.dir的目录:hadoop-2.7.3/dfs/name        # 这个目录start-dfs.sh时会自动创建 3. 创建hdfs-site.xml中dfs.datanode.data.dir的目录:hadoop-2.7.3/dfs/data               # 这个目录start-dfs.sh时会自动创建 4. 创建hdfs-site.xml中dfs.journalnode.edits.dir的目录:hadoop-2.7.3/dfs/journal     # 这个目录start-dfs.sh时会自动创建

    5. 创建journalnode的日志文件logs目录:hadoop-2.7.3/logs                                         # 这个目录start-dfs.sh时会自动创建

    第七步:修改...etc/hadoop/*配置文件

    同理配置其他两台机器(1) hadoop-env.sh 增加如下两行配置:

    export JAVA_HOME=/usr/local/java/jdk1.8.0_121

    (2) core-site.xml

     

    <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://CDH:8020</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/hadoop/hadoop-2.7.3/tmp</value> </property> </configuration>

    (3) hdfs-site.xml

     

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

    数据有三个副本(4) mapred-site.xml (需要用户新建文件,按照mapred-site.xml.default设置即可)

     

    <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> <!-- 这个值不能随便改 --> </property> </configuration>

    (5) yarn-env.sh 增加 JAVA_HOME 配置

     

    export JAVA_HOME=/usr/local/java/jdk1.8.0_121

    (6) yarn-site.xml

     

    <configuration> <!-- Site specific YARN configuration properties --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>CDH</value> <!-- 这个名字不能随便设置 得和hostname保持一致 --> </property> </configuration>

    (7) slaves

    CDH1 CDH2

    CDH(master) 即作为 NameNode 也作为 DataNode。 在 CDH1 和 CDH2 上做同样的配置

     

    scp /home/hadoop/hadoop-2.7.3/etc/hadoop/* hadoop@10.0.83.202:/home/hadoop/hadoop-2.7.3/etc/hadoop/ #并且在CDH1中修改蓝色部分数据 scp /home/hadoop/hadoop-2.7.3/etc/hadoop/* hadoop@10.0.83.173:/home/hadoop/hadoop-2.7.3/etc/hadoop/ #并且在CDH2中修改蓝色部分数据

    第八步:启动HDFS

    第一次启动HDFS集群:

    1、执行如下命令:

     

    $ start-dfs.sh

     

    目的是开启所有节点上的journalnode使得信息可以互联。

    2、初始化nn1节点上的namenode元数据+开启nn1的namenode: 

     

    $ hdfs namenode -format $ start-dfs.sh

    3、其他nn2,nn3等节点上同步nn1的初始化namenode元数据信息+开启nn2,nn3等节点的namenode:

     

    $ hdfs namenode -bootstrapStandby #在nn1节点上输入指令 $ start-dfs.sh

     

    4、将nn1节点standby状态改成active状态:

    $ hdfs haadmin -transitionToActive nn1

     

    5、查看hdfs的状态:

     

    $ hdfs haadmin -getServiceState nn1

    顺序一定不要变。

    6、为HDFS创建HDFS数据库中hadoop用户的工作环境: 

     

    $ hdfs dfs -mkdir -p /user/hadoop

     

    非第一次启动HDFS集群:

     

    $ start-dfs.sh $ hdfs haadmin -transitionToActive nn1

     

    第九步:操作HDFS并配置jar文件

    参考网址:http://blog.csdn.net/u012969412/article/details/64126714

    当使用java操作HDFS系统时,经常找不到包,需要将/hadoop-2.7.3/share/hadoop/hdfs/*.jar包添加到环境变量的classpath中

     

    for f in $HADOOP_HOME/share/hadoop/hdfs/*.jar; do CLASSPATH=${CLASSPATH}:$f done

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

                                             
    转载请注明原文地址: https://ju.6miu.com/read-2514.html

    最新回复(0)