Hadoop-3.2.1环境搭建(2)_伪分布模式

说明:

平台基于CentOS 7.x操作系统。用户名及软件安装目录如下:

环境 设置或路径
用户名 hduser
用户主目录 /home/hduser
软件安装包位于 /home/hduser/software
软件安装位置 /home/hduser/bigdata/

一、安装和配置JDK

将提前下载的"jdk-8u181-linux-x64.tar.gz"安装包,拷贝到CentOS中的"~/software"目录下 ;

1、使用如下命令,进入到"/usr/local"目录下:

$ cd /usr/local

2、在"/usr/local"目录下,将刚才的jdk拷贝到当前目录下:

$ sudo cp ~/software/jdk-8u181-linux-x64.tar.gz ./

3、解压缩"jdk-8u181-linux-x64.tar.gz"安装包到"/usr/local/"目录下:

$ sudo tar -zxvf jdk-8u181-linux-x64.tar.gz

4、配置环境变量

  首先,打开配置文件(如果未安装nano编辑器,可以使用vim编辑器打开):

$ sudo nano/etc/profile

  在打开的”/etc/profile”文件中,最后一行的后面一行,添加如下内容(注意,标点符号全都要是英文半角):

export JAVA_HOME=/usr/local/jdk1.8.0_181
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

  然后保存。

5、执行”/etc/profile”文件,让配置生效:

$ source /etc/profile

6、验证JDK环境变量是否配置正确:

$ javac -version
$ java -version

二、配置SSH无密登录

安装SSH服务,实现集群中SSH无密码连接(从主节点到从节点的无密码登录):

1、在终端下,执行如下的命令:(注:CentOS已自带SSH服务,略过此步)

$ yum -y install ssh
$ ls -a

2、本地SSH登录:

$ ssh localhost
$ exit

3、查看.ssh目录:

$ ls -a

4、进入.ssh目录:

$ cd .ssh

5、生成公私钥:

$ ssh-keygen -t rsa

  然后一路回车。

6、将公钥加入到授权文件:

$ ssh-copy-id hduser@localhost

7、测试SSH无密码登录:

$ ssh localhost
$ exit

  会发现这时不再需要输入密码。

三、安装Hadoop

1、将hadoop安装包"hadoop-3.2.1.tar.gz",拷贝到CentOS中的"~/software/"目录下 。

2、将Hadoop压缩包,解压缩到"/home/hduser/bigdata"目录(用户主目录/bigdata)下 :

$ cd ~
$ mkdir bigdata
$ cd bigdata
$ tar -zxvf ~/software/hadoop-3.2.1.tar.gz

3、打开"/etc/profile"配置文件,配置hadoop环境变量(注意,标点符号全都要是英文半角):

export HADOOP_HOME=/home/hduser/bigdata/hadoop-3.2.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_HOME/lib/native"

  然后保存。

4、执行"/etc/profile",让配置生效:

$ source /etc/profile

5、测试hadoop安装:

$ hadoop version

四、配置Hadoop

配置Hadoop,共需要配置5个文件(另外可选地配置workers文件),均位于Hadoop安装目录下的"etc/hadoop/"子目录下。首先进入到该目录下:

$ cd ~/bigdata/hadoop-3.2.1

1、配置hadoop-env.sh文件:

$ nano hadoop-evn.sh

然后找到并修改JAVA_HOME属性的值:

export JAVA_HOME=/usr/local/jdk1.8.0_181

2、配置core-site.xml文件:

$ nano core-site.xml

找到其中的"<configuration></configuration>"标签,在其中指定各个配置参数,如下所示:(注意,其中的cda是我自己的机器名,请你替换为你自己的机器名或IP地址)

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://cda:8020/</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hduser/bigdata/hadoop-3.2.1/dfs/tmp</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hduser.hosts</name>
        <value>*</value>
    </property>
    <property>
        <name>hadoop.proxyuser.hduser.groups</name>
        <value>*</value>
    </property>
</configuration>

3、配置hdfs-site.xml文件:

$ nano hdfs-site.xml

找到其中的"<configuration></configuration>"标签,在其中指定各个配置参数,如下所示:

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/hduser/bigdata/hadoop-3.2.1/dfs/name</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>/home/hduser/bigdata/hadoop-3.2.1/dfs/data</value>
    </property>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.datanode.max.transfer.threads</name>
        <value>4096</value>
    </property>
</configuration>

4、配置mapred-site.xml文件

$ nano mapred-site.xml

找到其中的"<configuration></configuration>"标签,在其中指定各个配置参数,如下所示:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapreduce.application.classpath</name>
        <value>$HADOOP_HOME/share/hadoop/mapreduce/*:$HADOOP_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
</configuration>

5、配置yarn-site.xml文件

$ nano yarn-site.xml

找到其中的"<configuration></configuration>"标签,在其中指定各个配置参数,如下所示:(注意,其中的cda是我自己的机器名,请你替换为你自己的机器名或IP地址)

<configuration>
    <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.resourcemanager.hostname</name>
        <value>cda</value>
    </property>
</configuration>

6、配置从节点workers:

使用如下命令打开workers文件,在该文件中指定集群的从节点机器名或IP地址。因为是伪分布集群,所以指定本机名即可:

$ nano workers

将里面的localhost删除,写入当前的机器名,即"cda" ,然后保存文件。(注意,cda是我自己的机器名,请替换为你自己的机器名或IP地址)

五、格式化HDFS文件系统

格式化HDFS(仅需执行格式化一次)。在终端窗口,执行下面的命令:

$ hdfs namenode -format

注:如果因为某些原因需要从头重新配置集群,那么在重新格式化HDFS之前,先把Haoop下的dfs目录删除。 这个目录是在hdfs-site.xml文件中自己指定的,其下有两个子目录name和data,重新格式化之前必须删除它们。

六、在Hadoop上执行MR程序

1、首先启动HDFS集群:

$ start-dfs.sh

2、使用jps命令查看当前节点上运行的服务:

$ jps

3、查看块状态报告:

$ hdfs dfsadmin -report

4、查看HDFS文件系统根目录:

$ hdfs dfs -ls /

5、成功启动后,可以通过Web界面查看NameNode 和 Datanode 信息和HDFS文件系统。

  NameNode Web接口:http://cda:9870。注意,其中的cda是我的机器名,请修改为你自己的机器名。

6、启动yarn:

$ start-yarn.sh
$ jps

7、启动historyserver历史服务器和timelineserver时间线服务器:

$ mapred --daemon start historyserver
$ yarn --daemon start timelineserver

8、运行pi程序:

先进入到程序示例.jar包所在的目录,然后运行MR程序:

$ cd ~/bigdata/hadoop-3.2.1/share/hadoop/mapreduce
$ hadoop jar hadoop-mapreduce-examples-3.2.1.jar pi 10 20

在输出内容中,可以找到计算出的PI值。

9、可以通过 Web 界面查看:

打开浏览器,在地址栏输入:http://cda:8088

查看任务进度:http://cda:8088/cluster ,在 Web 界面点击 “Tracking UI” 这一列的 History 连接,可以看到任务的运行信息。同样,URL中的cda是我的机器名,请替换为你自己的机器名。

10、关闭集群:

$ stop-yarn.sh
$ stop-dfs.sh
$ mapred --daemon stop historyserver
$ yarn --daemon stop timelineserver

《Flink原理深入与编程实战》