欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Hadoop使用笔记

程序员文章站 2022-03-08 20:50:09
...

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启动:

[[email protected] 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

 

相关标签: hadoop