Hadoop分散式檔案系統搭建以及基本操作
阿新 • • 發佈:2018-11-10
1. 環境搭建
jdk-1.8
jdk下載地址
export JAVA_HOME = /usr/lib/java/jdk1.7.0_21
export PATH =$JAVA_HOME/bin:$PATH
hadoop-2.7.3
hadoop各個版本下載地址
解壓縮:tar -zxvf jdk1.7.0_21.tar
設定環境變數 sudo vim /etc/profile
export HADOOP_HOME = /usr/local/hadoop
export PATH = $JAVA_HOme/bin:$HADOOP_HOME/bin:$PATH
4臺伺服器
2.配置ssh無祕登入
因為hadoop服務啟動時需要多次輸入系統使用者密碼,才能將服務執行起來,而且不配置無祕登入,namenode伺服器訪問datanode時也需要密碼。
1、修改hostname
vi /etc/hostname
s112
2、修改hosts
vi /etc/hosts
127.0.0.1 localhost
192.168.42.112 s112
192.168.42.113 s113
192.168.42.114 s114
192.168.42.115 s115
3、生成祕鑰對
$>ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
/home/centos/.ssh/authorized_keys
$>scp id_rsa.pub centos@s112:/home/centos/.ssh/authorized_keys
$>scp id_rsa.pub centos@s113:/home/centos/.ssh/authorized_keys
$>scp id_rsa.pub centos@s114:/home/centos/.ssh/authorized_keys
$>scp id_rsa.pub centos@s115 :/home/centos/.ssh/authorized_keys
3.修改配置檔案
一下配置檔案均在hdaoop/etc/hadoop/下
[core-site.xml]
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://112/8082</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop/hdfs</value>
</property>
</configuration>
[hdfs-site.xml]
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
</configuration>
[mapred-site.xml]
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
[yarn-site.xml]
<configuration>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>s112</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
[slaves]
s113
s114
s115
檔案修改成功後,需要將檔案分發出去
$>cd /soft/hadoop/etc/
$>scp hadoop centos@s113:/soft/hadoop/etc/
$>scp hadoop centos@s114:/soft/hadoop/etc/
$>scp hadoop centos@s115:/soft/hadoop/etc/
4.準備啟動程序
刪除hadoop日誌
$>cd /soft/hadoop/logs
$>rm -rf *
$>ssh s113 rm -rf /soft/hadoop/logs/*
$>ssh s114 rm -rf /soft/hadoop/logs/*
$>ssh s115 rm -rf /soft/hadoop/logs/*
刪除臨時目錄檔案
$>cd /tmp
$>rm -rf hadoop-centos
$>ssh s113 rm -rf /tmp/hadoop-centos
$>ssh s114 rm -rf /tmp/hadoop-centos
$>ssh s115 rm -rf /tmp/hadoop-centos
格式化檔案系統
$>hadoop namenode -format
啟動hadoop程序
$>start-all.sh
啟動成功後可以在s112://50070上檢視
為了方便管理與操作,可以編寫一個簡單指令碼
在/usr/local/bin/下建立xtest.sh
$>vi xtest.sh
#!/bin/bash
params=[email protected]
i=112
for(( i = 112 ; i <= 115 ; i= $i +1)); do
echo ============= s$i ==============
ssh s$i $params
done
xtest.sh用法舉例
$>xtest.sh jps //檢視所有伺服器程序啟動情況
jps命令是jdk自帶的,得將jps符號連結到/usr/local/bin目錄下
$>xtest.sh rm -rf ****** //刪除檔案或目錄 *代表路徑
xtest.sh作用統一操作(liunx命令),避免遺漏等情況。
5.hdfs檔案系統基本操作
$>hdfs dfs -help
$>hdfs dfs -mkdir -p /user/hadoop //該路徑是hdfs路徑不是liunx路徑
$>hdfs dfs -ls /user/ //檢視目錄
$>hdfs dfs -ls -R /user/ //遞迴檢視目錄
$>hdfs dfs -put xx.txt /user/hadoop //上傳檔案
$>hdfs dfs -rm -f -r /user/hadoop //刪除目錄或檔案
$>hdfs dfs -cat /user/hadoop/xx.txt //檢視檔案