hadoop搭建二:伪分布式

说明:搭建hadoop伪分布式,单纯以学习hadoop为目的。

版本:VMware 15 + CentOS 7 + Hadoop 2.6 + Java 8 + putty + win 10

系列:

 

一,网络配置

  1,查看主机名,修改为master

[hadoop@master ~]$ sudo vi /etc/hostname

  2,查看IP地址,修改IPADDR192.168.100.100

[hadoop@master ~]$ sudo vi /etc/sysconfig/network-scripts/ifcfg-ens33

  3,配置hosts文件

[hadoop@master ~]$ sudo vi /etc/hosts

在文件下面添加

192.168.100.100 master

   4,重启网络

[hadoop@master ~]$ sudo systemctl restart network

  5,测试,ping 3次master

[hadoop@master ~]$ ping master -c 3

 

二,SSH连接

   1,查看SSH

[hadoop@master ~]$ rpm -qa | grep ssh

   2,更新SSH

[hadoop@master ~]$ sudo yum install openssh

  3,测试SSH,如图所示,然后退出SSH

[hadoop@master ~]$ ssh localhost

  4, 配置SSH免密登录

创建目录

[hadoop@master ~]$ cd ~/.ssh/

生成密钥对(提示输入时都按回车即可)

[hadoop@master .ssh]$ ssh-keygen -t rsa

授权

[hadoop@master .ssh]$ cat id_rsa.pub >> authorized_keys

修改文件权限

[hadoop@master .ssh]$ chmod 600 ./authorized_keys

免密登陆SSH

[hadoop@master .ssh]$ ssh localhost

过程如图所示

 

三,安装Java

  1,查看java,有则卸载

[hadoop@master ~]$ rpm -qa | grep java

  2,解压Java

进入存放Java的路径(可通过共享文件夹来进行CentOS与Win的数据交流)

[hadoop@master ~]$ cd /mnt/hgfs/share/Application

解压Java到目录/usr/local

[hadoop@master Application]$ sudo tar -zxf jdk-8u231-linux-x64.tar.gz -C /usr/local            

进入目录/usr/local,查看

[hadoop@master Application]$ cd /usr/local/
[hadoop@master local]$ ll

将当前文件夹中的文件夹jdk1.8.0_231重命名为java

[hadoop@master local]$ sudo mv ./jdk1.8.0_231 ./java

修改文件夹java的所属用户和用户组

[hadoop@master local]$ sudo chown -R hadoop:hadoop ./java

  3,配置用户环境变量

[hadoop@master local]$ vi ~/.bashrc

在最后添加Java环境变量

# java Environment Variables
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

# PATH
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:

如下图所示

使环境变量立即生效

[hadoop@master local]$ source ~/.bashrc

   4,检查Java

[hadoop@master local]$ echo $JAVA_HOME
  /usr/local/java
[hadoop@master local]$ java -version
  java version "1.8.0_231"
  Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
  Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
[hadoop@master local]$ $JAVA_HOME/bin/java -version
  java version "1.8.0_231"
  Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
  Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
[hadoop@master local]$ jps
  11872 Jps

 

四,安装hadoop

  1,解压Hadoop

进入存放Hadoop的路径(可通过共享文件夹来进行CentOS与Win的数据交流)

[hadoop@master ~]$ cd /mnt/hgfs/share/Application

解压Hadoop到目录/usr/local

[hadoop@master Application]$ sudo tar -zxf hadoop-2.6.0.tar.gz -C /usr/local

进入目录/usr/local,查看

[hadoop@master Application]$ cd /usr/local/
[hadoop@master local]$ ll

将当前文件夹中的文件夹hadoop-2.6.0重命名为hadoop

[hadoop@master local]$ sudo mv ./hadoop-2.6.0 ./hadoop

修改文件夹hadoop的所属用户和用户组

[hadoop@master local]$ sudo chown -R hadoop:hadoop ./hadoop

  2,检查Hadoop,如果成功则显示Hadoop版本

[hadoop@master hadoop]$ cd /usr/local/hadoop
[hadoop@master hadoop]$ ./bin/hadoop version
  Hadoop 2.6.0

  3,配置用户环境变量

[hadoop@master hadoop]$ vi ~/.bashrc

bashrc文件总添加部分为

# java Environment Variables
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# hadoop Environment Variables
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"
export CLASSPATH=$CLASSPATH:$($HADOOP_HOME/bin/hadoop classpath)

# PATH
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:

使环境变量立即生效

[hadoop@master hadoop]$ source ~/.bashrc

  4,修改Hadoop配置文件

Hadoop的配置文件的目录为/usr/local/hadoop/etc/hadoop/

其主要配置文件为core-site.xml,hdfs-site.xml,yarn-site.xml,mapred-site.xml,slaves,hadoop-env.sh

进入配置文件目录,修改以下配置文件

[hadoop@master hadoop]$ cd /usr/local/hadoop/etc/hadoop/

(1)core-site.xml

[hadoop@master hadoop]$ vi core-site.xml
<configuration>
    <property>
        <!-- 默认文件系统的名称 -->
        <!-- 通常指定namenode的URI地址,包括主机和端口 -->
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <!-- 指定hadoop运行时产生的临时存储目录。不安全,每次开机都会被清空 -->
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
    </property>
</configuration>

如下图所示

(2)hdfs-site.xml

[hadoop@master hadoop]$ vi hdfs-site.xml
<configuration>
    <property>
        <!-- 指定HDFS副本数量 -->
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <!-- 指定namenode在本地文件系统上的存储位置 -->
        <name>dfs.namenode.name.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/name</value>
    </property>
    <property>
        <!-- 指定datanode在本地文件系统上的存储位置 -->
        <name>dfs.datanode.data.dir</name>
        <value>file:/usr/local/hadoop/tmp/dfs/data</value>
    </property>
</configuration>

(3)yarn-site.xml

[hadoop@master hadoop]$ vi yarn-site.xml
<configuration>
    <property>
        <!-- 需配置成mapreduce_shuffle,才可运行MapReduce程序 -->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

(4)mapred-site.xml

[hadoop@master hadoop]$ mv mapred-site.xml.template mapred-site.xml
[hadoop@master hadoop]$ vi mapred-site.xml
<configuration>
    <property>
        <!-- 指定执行MapReduce作业运行时的框架 -->
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

(5)slaves

伪分布可以不配置

(6)hadoop-env.sh

这里不配置。

它是Hadoop的专属脚本,可以通过配置环境变量模拟其功能。比如,在环境变量中配置JAVA_HOME,因为在hadoop-env.sh中通过export JAVA_HOME=${JAVA_HOME}调用了环境变量中的JAVA_HOME

  5,格式化,成功如下图所示

[hadoop@master hadoop]$ /usr/local/hadoop/bin/hdfs namenode -format

 

   6,启动Hadoop

[hadoop@master hadoop]$ start-all.sh

如果是第一次还需要输入 yes 确认ssh  

  7,查看Java进程

[hadoop@master hadoop]$ jps

  8,查看hdfs信息

[hadoop@master hadoop]$ hdfs dfsadmin -report

 

 

五,hadoop使用

  1,创建用户目录

[hadoop@master hadoop]$ hadoop fs -mkdir -p /user/hadoop
[hadoop@master hadoop]$ hadoop fs -mkdir input

  2,常用HDSF命令

hadoop fs -help ls         查阅帮助
hadoop fs -ls [-R] <path>    [遍历]查看目录
hadoop fs -cat <path>    查看文件
hadoop fs -du <path>    显示文件大小
hadoop fs -rm [-r] <path>    [遍历]删除文件
hadoop fs -get <path>    拷贝<path>文件到本地
    fs -copyToLocal <path>    拷贝<path>文件到本地
hadoop fs -mkdir [-p] <path>    新建文件夹
hadoop fs -mv <path> <path>    移动文件(如果两个目录是相同的,则重命名文件)
hadoop fs -cp <path> <path>    HDFS内部复制
hadoop fs -put <文件> <path>    本地<文件>上传<path>
    fs -copyFromLocal<文件> <path>    本地<文件>上传<path>

  3,浏览器访问hadoop,需要关闭防火墙或者开放端口

http://192.168.100.100:50070
http://192.168.100.100:8088
<!-- 查看防火墙状态 -->
[hadoop@master share]$ sudo systemctl status firewalld

<!-- 永久开放50070端口 -->
[hadoop@master share]$ sudo firewall-cmd --zone=public --add-port=50070/tcp --permanent
<!--  更新防火墙规则 -->
[hadoop@master share]$ sudo firewall-cmd --reload
<!-- 永久关闭50070端口 -->
[hadoop@master share]$ sudo firewall-cmd --zone=public --remove-port=50070/tcp --permanent

<!-- 关闭防火墙 -->
[hadoop@master share]$ sudo systemctl stop firewalld

<!-- 打开防火墙 -->
[hadoop@master share]$ sudo systemctl start firewalld

<!-- 禁止防火墙开机启动 -->
[hadoop@master share]$ sudo systemctl disable firewalld

<!-- 允许防火墙开机启动 -->
[hadoop@master share]$ sudo systemctl enable firewalld

  4,打包,运行 jar包

[hadoop@master hadoop]$ jar -cvf WordCount.jar ./WordCount*.class
[hadoop@master hadoop]$ hadoop jar <jar path> <package main> <input path> <output path>

  5,添加外部 jar包

[hadoop@master Application]$ cp fastjson-1.2.4.jar /usr/local/hadoop/share/hadoop/common/

 

 

相关/转载:

1,Apache Hadoop 2.6.0

2,Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0

3,Hadoop伪分布环境搭建.docx

4,尚硅谷Hadoop教程(hadoop框架精讲)

posted @ 2020-03-10 16:34  子崖子崖  阅读(265)  评论(0)    收藏  举报