Hadoop使用笔记

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主要端口:

组件节点默认端口配置用途说明
HDFSDataNode50010dfs.datanode.addressdatanode服务端口,用于数据传输
HDFSDataNode50075dfs.datanode.http.addresshttp服务的端口
HDFSDataNode50475dfs.datanode.https.addresshttps服务的端口
HDFSDataNode50020dfs.datanode.ipc.addressipc服务的端口
HDFSNameNode50070dfs.namenode.http-addresshttp服务的端口
HDFSNameNode50470dfs.namenode.https-addresshttps服务的端口
HDFSNameNode8020fs.defaultFS接收Client连接的RPC端口,用于获取文件系统metadata信息。
HDFSjournalnode8485dfs.journalnode.rpc-addressRPC服务
HDFSjournalnode8480dfs.journalnode.http-addressHTTP服务
HDFSZKFC8019dfs.ha.zkfc.portZooKeeper FailoverController,用于NN HA
YARNResourceManager8032yarn.resourcemanager.addressRM的applications manager(ASM)端口
YARNResourceManager8030yarn.resourcemanager.scheduler.addressscheduler组件的IPC端口
YARNResourceManager8031yarn.resourcemanager.resource-tracker.addressIPC
YARNResourceManager8033yarn.resourcemanager.admin.addressIPC
YARNResourceManager8088yarn.resourcemanager.webapp.addresshttp服务端口
YARNNodeManager8040yarn.nodemanager.localizer.addresslocalizer IPC
YARNNodeManager8042yarn.nodemanager.webapp.addresshttp服务端口
YARNNodeManager8041yarn.nodemanager.addressNM中container manager的端口
YARNJobHistory Server10020mapreduce.jobhistory.addressIPC
YARNJobHistory Server19888mapreduce.jobhistory.webapp.addresshttp服务端口
HBaseMaster60000hbase.master.portIPC
HBaseMaster60010hbase.master.info.porthttp服务端口
HBaseRegionServer60020hbase.regionserver.portIPC
HBaseRegionServer60030hbase.regionserver.info.porthttp服务端口
HBaseHQuorumPeer2181hbase.zookeeper.property.clientPortHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HBaseHQuorumPeer2888hbase.zookeeper.peerportHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HBaseHQuorumPeer3888hbase.zookeeper.leaderportHBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。
HiveMetastore9083/etc/default/hive-metastore中export PORT=<port>来更新默认端口 
HiveHiveServer10000/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口 
ZooKeeperServer2181/etc/zookeeper/conf/zoo.cfg中clientPort=<port>对客户端提供服务的端口
ZooKeeperServer2888/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分follower用来连接到leader,只在leader上监听该端口。
ZooKeeperServer3888/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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值