4.1.1项目经验之HDFS存储多目录
1)确认HDFS的存储目录,保证存储在空间最大硬盘上
2)在hdfs-site.xml文件中配置多目录,最好提前配置好,否则更改目录需要重新启动集群
dfs.datanode.data.dir
file:///${hadoop.tmp.dir}/dfs/data1,file:///hd2/dfs/data2,file:///hd3/dfs/data3,file:///hd4/dfs/data4
4.1.2项目经验之支持LZO压缩配置
cp hadoop-lzo-0.4.20.jar /opt/module/hadoop-2.7.2/share/hadoop/common/
cd /opt/module/hadoop-2.7.2/share/hadoop/common/
[hadoop@hadoop102 /opt/module/hadoop-2.7.2/share/hadoop/common]$xsync hadoop-lzo-0.4.20.jar
vim core-site.xml
(1)web和进程查看
Ø Web查看:http://hadoop102:50070
Ø 进程查看:jps查看各个节点状态。
(2)当启动发生错误的时候:
Ø 查看日志:/home/atguigu/module/hadoop-2.7.2/logs
Ø 如果进入安全模式,可以通过hdfs dfsadmin -safemode leave
Ø 停止所有进程,删除data和log文件夹,然后hdfs namenode -format 来格式化
4.1.3项目经验之基准测试
1)测试HDFS写性能
测试内容:向HDFS集群写10个128M的文件
[hadoop@hadoop102 /opt/module/hadoop-2.7.2/share/hadoop/mapreduce]
h
a
d
o
o
p
j
a
r
/
o
p
t
/
m
o
d
u
l
e
/
h
a
d
o
o
p
−
2.7.2
/
s
h
a
r
e
/
h
a
d
o
o
p
/
m
a
p
r
e
d
u
c
e
/
h
a
d
o
o
p
−
m
a
p
r
e
d
u
c
e
−
c
l
i
e
n
t
−
j
o
b
c
l
i
e
n
t
−
2.7.2
−
t
e
s
t
s
.
j
a
r
T
e
s
t
D
F
S
I
O
−
w
r
i
t
e
−
n
r
F
i
l
e
s
10
−
f
i
l
e
S
i
z
e
128
M
B
2
)
测
试
H
D
F
S
读
性
能
测
试
内
容
:
读
取
H
D
F
S
集
群
10
个
128
M
的
文
件
h
a
d
o
o
p
j
a
r
/
o
p
t
/
m
o
d
u
l
e
/
h
a
d
o
o
p
−
2.7.2
/
s
h
a
r
e
/
h
a
d
o
o
p
/
m
a
p
r
e
d
u
c
e
/
h
a
d
o
o
p
−
m
a
p
r
e
d
u
c
e
−
c
l
i
e
n
t
−
j
o
b
c
l
i
e
n
t
−
2.7.2
−
t
e
s
t
s
.
j
a
r
T
e
s
t
D
F
S
I
O
−
r
e
a
d
−
n
r
F
i
l
e
s
10
−
f
i
l
e
S
i
z
e
128
M
B
3
)
删
除
测
试
生
成
数
据
[
a
t
g
u
i
g
u
@
h
a
d
o
o
p
102
m
a
p
r
e
d
u
c
e
]
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -write -nrFiles 10 -fileSize 128MB 2)测试HDFS读性能 测试内容:读取HDFS集群10个128M的文件 hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -read -nrFiles 10 -fileSize 128MB 3)删除测试生成数据 [atguigu@hadoop102 mapreduce]
hadoopjar/opt/module/hadoop−2.7.2/share/hadoop/mapreduce/hadoop−mapreduce−client−jobclient−2.7.2−tests.jarTestDFSIO−write−nrFiles10−fileSize128MB2)测试HDFS读性能测试内容:读取HDFS集群10个128M的文件hadoopjar/opt/module/hadoop−2.7.2/share/hadoop/mapreduce/hadoop−mapreduce−client−jobclient−2.7.2−tests.jarTestDFSIO−read−nrFiles10−fileSize128MB3)删除测试生成数据[atguigu@hadoop102mapreduce] hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.2-tests.jar TestDFSIO -clean
4)使用Sort程序评测MapReduce
(1)使用RandomWriter来产生随机数,每个节点运行10个Map任务,每个Map产生大约1G大小的二进制随机数
[atguigu@hadoop102 mapreduce]
h
a
d
o
o
p
j
a
r
/
o
p
t
/
m
o
d
u
l
e
/
h
a
d
o
o
p
−
2.7.2
/
s
h
a
r
e
/
h
a
d
o
o
p
/
m
a
p
r
e
d
u
c
e
/
h
a
d
o
o
p
−
m
a
p
r
e
d
u
c
e
−
e
x
a
m
p
l
e
s
−
2.7.2.
j
a
r
r
a
n
d
o
m
w
r
i
t
e
r
r
a
n
d
o
m
−
d
a
t
a
(
2
)
执
行
S
o
r
t
程
序
[
a
t
g
u
i
g
u
@
h
a
d
o
o
p
102
m
a
p
r
e
d
u
c
e
]
hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar randomwriter random-data (2)执行Sort程序 [atguigu@hadoop102 mapreduce]
hadoopjar/opt/module/hadoop−2.7.2/share/hadoop/mapreduce/hadoop−mapreduce−examples−2.7.2.jarrandomwriterrandom−data(2)执行Sort程序[atguigu@hadoop102mapreduce]hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar sort random-data sorted-data
(3)验证数据是否真正排好序了
[atguigu@hadoop102 mapreduce]$hadoop jar /opt/module/hadoop-2.7.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar testmapredsort -sortInput random-data -sortOutput sorted-data
4.1.4项目经验之HDFS参数调优
1)HDFS参数调优hdfs-site.xml
(1)dfs.namenode.handler.count=20 * log2(Cluster Size),比如集群规模为10台时,此参数设置为60
The number of Namenode RPC server threads that listen to requests from clients. If dfs.namenode.servicerpc-address is not configured then Namenode RPC server threads listen to requests from all nodes.
NameNode有一个工作线程池,用来处理不同DataNode的并发心跳以及客户端并发的元数据操作。对于大集群或者有大量客户端的集群来说,通常需要增大参数dfs.namenode.handler.count的默认值10。设置该值的一般原则是将其设置为集群大小的自然对数乘以20,即20logN,N为集群大小。
(2)编辑日志存储路径dfs.namenode.edits.dir设置与镜像文件存储路径dfs.namenode.name.dir尽量分开,达到最低写入延迟