0


Hadoop3.x完全分布式详细配置

1.服务器规划设计

2. 修改yum源 并 升级内核和软件

2.1 按照规划修改IP地址

vim /etc/sysconfig/network-scripts/ifcfg-ens32

2.1.1 配置完毕之后,重启网络

systemctl restart network

2.2 将yum 源修改为 阿里云的

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

2.3 清空yum 缓存

yum clean all

2.4 生成新的yum缓存

yum makecache

2.5 升级内核和软件

yum -y update

2.6 安装常用软件

yum -y install gcc gcc-c++ autoconf automake cmake make
zlib zlib-devel openssl openssl-devel pcre-devel
rsync openssh-server vim man zip unzip net-tools tcpdump lrzsz tar wget

2.7 关闭防火墙

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
systemctl stop firewalld
systemctl disable firewalld

2.8 修改主机名hostname

hostnamectl set-hostname hadoop101

2.9 修改hosts配置文件

vim /etc/hosts

将规划好的IP地址和主机名,写到hosts配置文件中

192.168.171.101 hadoop101
192.168.171.102 hadoop102
192.168.171.103 hadoop103

2.10 同步服务器时间

yum -y install ntp ntpdate

ntpdate cn.pool.ntp.org

3. 下载与安装jdk、hadoop、zookeeper

3.1 可以直接从网络中下载,也可以直接把本地的jdk、hadoop、zookeeper上传到虚拟机中

3.2 打开spark01,将jdk、hadoop、zookeepe上传到spark01的/usr/local/software下

3.3 解压 jdk、hadoop、zookeepe 并修改其文件名称

4. 环境变量配置

4.1 vim /etc/profile.d/my_env.sh

4.2 具体内容

export JAVA_HOME=/usr/local/software/jdk

export set JAVA_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"

export ZOOKEEPER_HOME=/usr/local/software/zookeeper

export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_ZKFC_USER=root
export HDFS_JOURNALNODE_USER=root
export HADOOP_SHELL_EXECNAME=root

export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

export HADOOP_HOME=/usr/local/software/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_CONF_DIR=$HADOOP_HOME/etc/hadoop

export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

4.3 环境变量生效

source /etc/profile

5. zookeeper配置

5.1 进入到zookeeper的conf目录下

cd zookeeper/cof

5.2 根据官方提供的zookeeper样例配置文件(zoo_sample.cfg),编写个自己的配置文件

vim zoo.cfg

设置以下内容

心跳单位,2s

tickTime=2000

zookeeper-3初始化的同步超时时间,10个心跳单位,也即20s

initLimit=10

普通同步:发送一个请求并得到响应的超时时间,5个心跳单位也即10s

syncLimit=5

内存快照数据的存储位置

dataDir=/home/zookeeper/data

事务日志的存储位置

dataLogDir=/home/zookeeper/datalog

当前zookeeper-3节点的端口

clientPort=2181

单个客户端到集群中单个节点的并发连接数,通过ip判断是否同一个客户端,默认60

maxClientCnxns=1000

保留7个内存快照文件在dataDir中,默认保留3个

autopurge.snapRetainCount=7

清除快照的定时任务,默认1小时,如果设置为0,标识关闭清除任务

autopurge.purgeInterval=1
#允许客户端连接设置的最小超时时间,默认2个心跳单位
minSessionTimeout=4000
#允许客户端连接设置的最大超时时间,默认是20个心跳单位,也即40s,
maxSessionTimeout=300000
#zookeeper-3 3.5.5启动默认会把AdminService服务启动,这个服务默认是8080端口
admin.serverPort=9001
#集群地址配置
server.1=spark01:2888:3888
server.2=spark02:2888:3888
server.3=spark03:2888:3888

备注:1.数据的存储位置与日志的存储位置,需要我们手动进行创建

       2.在zookeeper3.3.5中添加了AdminService服务

5.3 创建zookeeper数据目录与日志目录(配置文件中配置的目录)

mkdir -p /home/zookeeper/data

mkdir -p /home/zookeeper/datalog

6.hadoop配置

6.1 修改配置文件

cd $HADOOP_HOME/etc/hadoop

  • hadoop-env.sh
  • core-site.xml
  • hdfs-site.xml
  • workers
  • mapred-site.xml
  • yarn-site.xml

6.2 hadoop-env.sh 文件末尾追加

export JAVA_HOME=/usr/local/software/jdk

export HADOOP_OPTS="--add-opens java.base/java.lang=ALL-UNNAMED"

export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_ZKFC_USER=root
export HDFS_JOURNALNODE_USER=root
export HADOOP_SHELL_EXECNAME=root

export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

6.3 core-site.xml

<configuration>
  <!--HA集群名称,如:laoma,该值要和hdfs-site.xml中dfs.nameservices的配置保持一致-->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://laoma</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/hadoop/data</value>
  </property>
  <property>
    <name>ha.zookeeper.quorum</name>
    <value>spark01:2181,spark02:2181,spark03:2181</value>
  </property>
  <property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
  </property>
  <property>
    <name>dfs.permissions.enabled</name>
    <value>false</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.hosts</name>
    <value>*</value>
  </property>
  <property>
    <name>hadoop.proxyuser.root.groups</name>
    <value>*</value>
  </property>
</configuration>

6.4 hdfs-site.xml

<configuration>
  <!--配置集群的名字-->
  <property>
    <name>dfs.nameservices</name>
    <value>laoma</value>
  </property>
  <!-- laoma下面有两个NameNode,分别是nn1,nn2 -->
  <property>
    <name>dfs.ha.namenodes.laoma</name>
    <value>nn1,nn2</value>
  </property>
  <!-- laoma下面有两个NameNode,nn1-RPC -->
  <property>
    <name>dfs.namenode.rpc-address.laoma.nn1</name>
    <value>spark01:8020</value>
  </property>
  <!-- laoma下面有两个NameNode,nn2-rpc -->
  <property>
    <name>dfs.namenode.rpc-address.laoma.nn2</name>
    <value>spark02:8020</value>
  </property>
  <!-- laoma下面有两个NameNode,nn1-http -->
  <property>
    <name>dfs.namenode.http-address.laoma.nn1</name>
    <value>spark01:9870</value>
  </property>
  <!-- laoma下面有两个NameNode,nn2-http -->
  <property>
    <name>dfs.namenode.http-address.laoma.nn2</name>
    <value>spark02:9870</value>
  </property>
 <!-- 指定NameNode的edits元数据在JournalNode上的存放位置 -->
  <property>
    <name>dfs.namenode.shared.edits.dir</name>
    <value>qjournal://spark01:8485;spark02:8485;spark03:8485/laoma</value>
  </property>
  <!-- 指定该集群出故障时,哪个实现类负责执行故障切换 -->
  <property>
    <name>dfs.client.failover.proxy.provider.laoma</name>
    <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
  </property>
 <!-- 配置隔离机制方法-->
  <property>
    <name>dfs.ha.fencing.methods</name>
    <value>sshfence</value>
  </property>
  <!-- 使用sshfence隔离机制时需要ssh免登陆 -->
  <property>
    <name>dfs.ha.fencing.ssh.private-key-files</name>
    <value>/root/.ssh/id_rsa</value>
  </property>
  <!-- 指定JournalNode在本地磁盘存放数据的位置 -->
  <property>
    <name>dfs.journalnode.edits.dir</name>
    <value>/home/hadoop/journalnode/data</value>
  </property>
  <!-- 开启NameNode失败自动切换 -->
  <property>
    <name>dfs.ha.automatic-failover.enabled</name>
    <value>true</value>
  </property>
  <property>
    <name>dfs.safemode.threshold.pct</name>
    <value>1</value>
  </property>
</configuration>

6.5 workers

spark01
spark02
spark03

6.6 mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
  <!-- yarn历史服务端口 -->
  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>spark01:10020</value>
  </property>
  <!-- yarn历史服务web访问端口 -->
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>spark01:19888</value>
  </property>
</configuration>

6.7 yarn-site.xml

<configuration>

    <!-- 启用resourcemanager -->
    <property>
        <name>yarn.resourcemanager.ha.enabled</name>
        <value>true</value>
    </property>
    <!-- 集群ID设置的名字-->
    <property>
        <name>yarn.resourcemanager.cluster-id</name>
        <value>laoma</value>
    </property>
    <!--resourcemanager设置了两台互为备份-->
    <property>
        <name>yarn.resourcemanager.ha.rm-ids</name>
        <value>rm1,rm2</value>
    </property>
    <!--rm1与rm2的地址-->
    <property>
        <name>yarn.resourcemanager.hostname.rm1</name>
        <value>spark01</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname.rm2</name>
        <value>spark02</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm1</name>
        <value>spark01:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address.rm2</name>
        <value>spark02:8088</value>
    </property>
    <!--配置zookeeper的地址-->
    <property>
        <name>yarn.resourcemanager.zk-address</name>
        <value>spark01:2181,spark02:2181,spark03:2181</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.nodemanager.env-whitelist</name>
        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    <!-- 是否将对容器实施物理内存限制 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>false</value>
    </property>

    <!-- 是否将对容器实施虚拟内存限制。 -->
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>
    <!-- 开启日志聚集 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>

    <!-- 设置yarn历史服务器地址 -->
    <property>
        <name>yarn.log.server.url</name>
        <value>http://spark01:19888/jobhistory/logs</value>
    </property>

    <!-- 保存的时间7天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>
</configuration>

7. 虚拟机克隆

7.1 将设置好的spark01虚拟机进行克隆,生成spark02、spark03 虚拟机

7.1.1 由于克隆过来的spark02与spark03的IP地址都是spark01的IP地址,因此我们可以在修改spark02主机信息的时候,关闭spark01与spark03的虚拟机,依次类推

7.2 需要修改spark02/spark03虚拟机中的,IP地址与主机名称

如:hostnamectl set-hostname spark02

8. 配置免密码登录

8.1 在spark01上创建本地密钥并将公共密钥写入认证文件

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

8.2 将认证密钥写到spark01/spark02/spark03主机上

ssh-copy-id root@spark01

ssh-copy-id root@spark02

ssh-copy-id root@spark03

8.3 测试连接服务,是否需要输入密码

如当前是 spark01主机,可以连接 spark02主机、spark03主机,进行测试

ssh root@spark02

ssh root@spark03

8.4 分发密钥

scp -r /.ssh/ root@spark02:/
scp -r /.ssh/ root@spark03:/

9 zookeeper配置myid

9.1 myid写到 zookeeper环境配置信息中设置的数据的目录中

9.1.1 spark01中写入 1

echo 1 > /home/zookeeper/data/myid

9.1.2 spark02中写入 2

echo 2 > /home/zookeeper/data/myid

9.1.3 spark03中写入 3

echo 3 > /home/zookeeper/data/myid

11. hadoop-ha 初始化

11.1 先启动三台zookeeper,因为NameNode和ResouceManger有写信息需要注册到zookeeper上

zkServer.sh start

11.2 三个节点启动JournalNode

方式一:低版本 使用

hadoop-daemon.sh start journalnode

方式二:高版本 使用

hdfs --daemon start journalnode

11.3 目前有两个namenode服务器,在其中一个namenode上格式化

hdfs namenode -format

把刚刚格式化之后的元数据拷贝到另外一个namenode节点上

拷贝的目录是:core-site.xml 中 hadoop.tmp.dir 中配置的数据源,例如:本案例配置的是/home/hadoop/data,则需要将data整个的文件夹拷贝到另一个服务器上的/home/hadoop下

例如:scp -r /home/hadoop/data root@spark02:/home/hadoop

11.3.1 启动刚刚格式化的namenode

方式一:hadoop-daemon.sh start namenode

方式二:hdfs --daemon start namenode

11.3.2 在没有格式化的namenode上执行

hdfs namenode -bootstrapStandby

11.3.3 启动第二个namenode

方式一:hadoop-daemon.sh start namenode

方式二:hdfs --daemon start namenode

11.3.4 在其中一个namenode上初始化

hdfs zkfc -formatZK

将你的信息注册到zookeeper上

11.4 全面停止节点:stop-dfs.sh

11.5 全面启动节点:start-all.sh

12. 启动历史服务(哪个节点设置了历史服务器,在哪个节点上执行)

mapred --daemon start historyserver

13. 最后都启动之后,查看每个节点上的进程情况

14.开机与关机

14.0 开机:

先启动 zookeeper之后,

在 第一台服务器上执行 start-dfs.sh start-yarn.sh 即可,其它服务器都启动成功。

14.1 方式一

关机之前 依关闭服务(在第一台服务器上即可)

stop-yarn.sh
stop-dfs.sh

开机后 依次开启服务(在第一台服务器上即可)

start-dfs.sh
start-yarn.sh

14.2 方式二:

关机之前关闭服务(在第一台服务器上即可)

stop-all.sh

开机后开启服务(在第一台服务器上即可)

start-all.sh

注意:如果在启动集群的时候,只有一个namenode节点启动了,另一个namenode节点没有启动。则可以,在三台服务器上执行hdfs --daemon start journalnode,然后在第一台服务器上执行start-all.sh 即可。

15. 修改windows下hosts文件

15.1 C:\Windows\System32\drivers\etc\hosts

内容追加:

192.168.171.101 spark01
192.168.171.102 spark02
192.168.171.103 spark03

16. 测试

16.1 浏览器访问集群

http://spark01:9870

http://spark01:8088 (此链接访问的时候默认跳转到 http://spark02:8088)

http://spark01:19888

16.2 测试hdfs

本地文件系统创建 测试文件 wcdata.txt

vim wcdata.txt

内容如下:

Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive
FlinkHBase Flink
Hive StormHive Flink HadoopHBase
HiveHadoop Spark HBase StormHBase
Hadoop Hive FlinkHBase Flink Hive StormHive
Flink HadoopHBase Hive
Spark HBaseHive Flink
Storm Hadoop HBase SparkFlinkHBase
StormHBase Hadoop Hive

16.2.1 在 HDFS 上创建目录 /wordcount/input

hdfs dfs -mkdir -p /wordcount/input

16.2.2 查看 HDFS 目录结构

hdfs dfs -ls /

hdfs dfs -ls /wordcount

hdfs dfs -ls /wordcount/input

16.2.3 上传本地测试文件 wcdata.txt 到 HDFS 上 /wordcount/input

hdfs dfs -put wcdata.txt /wordcount/input

16.2.4 检查文件是否上传成功

hdfs dfs -ls /wordcount/input

hdfs dfs -cat /wordcount/input/wcdata.txt

17. 测试mapreduce

17.1 计算 PI 的值

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar pi 10 10

17.2 单词统计

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.5.jar wordcount /wordcount/input/wcdata.txt /wordcount/result

hdfs dfs -ls /wordcount/result

hdfs dfs -cat /wordcount/result/part-r-00000

标签: hadoop 大数据

本文转载自: https://blog.csdn.net/majingbobo/article/details/134357726
版权归原作者 老马聊技术 所有, 如有侵权,请联系我们删除。

“Hadoop3.x完全分布式详细配置”的评论:

还没有评论