1. Hadoop主要目录:

各组件配置文件路径:/usr/local/hadoop-3.0.3/etc/hadoop

各组件启动/关闭目录:/usr/local/hadoop-3.0.3/sbin 

 

2. Hadoop3的集群配置文件从slaves变成workers了,被坑了好久啊ToT

 

3. 能打开8088端口,但是打不开50070等

(1)看下端口是否已占用:

netstat -anp|grep 50070

(2)修改hadoop的配置文件:

cd /usr/local/hadoop-3.0.3/etc/hadoop
vi mapred-site.xml

添加:

<property>
  <name>mapred.job.tracker.http.address</name>
  <value>hadoop1:50030</value>
</property>
<property>
  <name>mapred.task.tracker.http.address</name>
  <value>hadoop1:50060</value>
</property>
vi hdfs-site.xml

添加:
 

<property>
  <name>dfs.http.address</name>
  <value>hadoop1:50070</value>
</property>

 

4. Hadoop主要端口:

组件

节点

默认端口

配置

用途说明

HDFS

DataNode

50010

dfs.datanode.address

datanode服务端口,用于数据传输

HDFS

DataNode

50075

dfs.datanode.http.address

http服务的端口

HDFS

DataNode

50475

dfs.datanode.https.address

https服务的端口

HDFS

DataNode

50020

dfs.datanode.ipc.address

ipc服务的端口

HDFS

NameNode

50070

dfs.namenode.http-address

http服务的端口

HDFS

NameNode

50470

dfs.namenode.https-address

https服务的端口

HDFS

NameNode

8020

fs.defaultFS

接收Client连接的RPC端口,用于获取文件系统metadata信息。

HDFS

journalnode

8485

dfs.journalnode.rpc-address

RPC服务

HDFS

journalnode

8480

dfs.journalnode.http-address

HTTP服务

HDFS

ZKFC

8019

dfs.ha.zkfc.port

ZooKeeper FailoverController,用于NN HA

YARN

ResourceManager

8032

yarn.resourcemanager.address

RM的applications manager(ASM)端口

YARN

ResourceManager

8030

yarn.resourcemanager.scheduler.address

scheduler组件的IPC端口

YARN

ResourceManager

8031

yarn.resourcemanager.resource-tracker.address

IPC

YARN

ResourceManager

8033

yarn.resourcemanager.admin.address

IPC

YARN

ResourceManager

8088

yarn.resourcemanager.webapp.address

http服务端口

YARN

NodeManager

8040

yarn.nodemanager.localizer.address

localizer IPC

YARN

NodeManager

8042

yarn.nodemanager.webapp.address

http服务端口

YARN

NodeManager

8041

yarn.nodemanager.address

NM中container manager的端口

YARN

JobHistory Server

10020

mapreduce.jobhistory.address

IPC

YARN

JobHistory Server

19888

mapreduce.jobhistory.webapp.address

http服务端口

HBase

Master

60000

hbase.master.port

IPC

HBase

Master

60010

hbase.master.info.port

http服务端口

HBase

RegionServer

60020

hbase.regionserver.port

IPC

HBase

RegionServer

60030

hbase.regionserver.info.port

http服务端口

HBase

HQuorumPeer

2181

hbase.zookeeper.property.clientPort

HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。

HBase

HQuorumPeer

2888

hbase.zookeeper.peerport

HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。

HBase

HQuorumPeer

3888

hbase.zookeeper.leaderport

HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。

Hive

Metastore

9083

/etc/default/hive-metastore中export PORT=<port>来更新默认端口


Hive

HiveServer

10000

/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口


ZooKeeper

Server

2181

/etc/zookeeper/conf/zoo.cfg中clientPort=<port>

对客户端提供服务的端口

ZooKeeper

Server

2888

/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分

follower用来连接到leader,只在leader上监听该端口。

ZooKeeper

Server

3888

/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分

用于leader选举的。只在electionAlg是1,2或3(默认)时需要。

hadoop3.0修改端口如下:

Namenode 端口:

50470 --> 9871

50070 --> 9870

8020 --> 9820

Secondary NN 端口:

50091 --> 9869

50090 --> 9868

Datanode 端口:

50020 --> 9867

50010 --> 9866

50475 --> 9865

50075 --> 9864

 

5. 外网访问Hadoop:

使用命令:

netstat -ant

查看本地开放的端口,显示的是:

127.0.0.1 50070

默认的绑定IP就是在127.0.0.1上。于是,修改默认参数:

在hdfs-site.xml中,更改开放端口的绑定IP:

<property>
  <name>dfs.http.address</name>
  <value>0.0.0.0:50070</value>
</property>

将绑定IP改为0.0.0.0,而不是本地回环IP,这样,就能够实现外网访问本机的50070端口了。

 

开放端口:

1. 开放端口命令:

iptables -I INPUT -p tcp --dport 50070 -j ACCEPT

2.保存:

iptables save

3.重启服务:

iptables restart

4.查看端口是否开放:

iptables -L -n

centos6的iptables是这样的:

/etc/init.d/iptables save

 

6.上传后的文件查看:

在Hadoop中上传的文件和目录在linux下是看不到的,因为它是对应Hadoop系统的目录,不是对应linux系统的目录了

① 通过web页面查看

打开http://hadoop:50070

Utiltiles->Browser the file system

② 在linux的hadoop安装目录下查看

cd /usr/local/hadoop-2.9.1
cd bin
./hadoop fs -ls /

【最后的/代表根目录开始查找,也可以指定目录】

 

7. 出现File XXX could only be replicated to 0 nodes instead of minReplication (=1). 
There are 2 datanode(s) running and 2 node(s) are excluded in this operation.错误的解决方法

我采用的是分布式集群,使用hadoop dfsadmin -report命令查看集群状态,没有问题。

后来想起来是不是没有datanode服务器的防火墙,执行以下命令,把所有机器的防火墙都关了,果然成功上传。

systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

 

8.删除指定目录下的所有文件:

hadoop fs -rm -r -skipTrash /agentlog/*

 

9. Flume启动:

flume-ng agent --name flume-log-agent --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/flume-log-agent.conf -Dflume.root.logger=INFO,console

 

10.MapReduce:

执行:

hadoop jar /home/hadoop/Downloads/hadoop-MapReduce-1.0-SNAPSHOT.jar org.apache.hadoop.examples.wordcount /agentlog/ /user/sun/MapReduce/wordCountX

查看结果:

hadoop fs -cat /user/sun/MapReduce/wordCount3/part-r-00000

 

11.ZooKeeper启动:

[hadoop@hadoop zookeeper]$ bin/zkServer.sh start ./conf/zoo.cfg

查看:

zkServer.sh status conf/zoo.cfg

如果查看Status发觉启动有问题,则关闭各节点的防火墙:

systemctl stop firewalld.service

 

12. Hbase启动:

start-hbase.sh
hbase shell

 

13. Java连接Hbase时报错:

INFO org.apache.zookeeper.ClientCnxn: Opening socket connection to server nametestnode/192.168.31.92:2181. Will not attempt to authenticate using SASL (unknown error)

WARN org.apache.zookeeper.ClientCnxn: Session 0x0 for server null, unexpected error, closing socket connection and attempting reconnect
java.net.ConnectException: refused

解决:用了ntpdate 把各服务器时间调整一致

yum install ntpdate -y
ntpdate 0.asia.pool.ntp.org
hwclock --systohc

查看时间:

date

 

14. Flume的进程管理:

设为后台进程(不受ssh远程客户端关闭影响):

setsid flume-ng agent --name flume-log-agent --conf $FLUME_HOME/conf --conf-file $FLUME_HOME/conf/flume-log-agent.conf -Dflume.root.logger=INFO,console

查看flume进程:

ps -ef |grep flume

删除进程:

kill 进程id

删除端口进程:

lsof -i :44444|grep -v "PID"|awk '{print "kill -9",$2}'|sh