步驟一:
目標:*安裝虛擬機,在自己虛擬機上完成hadoop的偽分布式安裝。(安裝完成后要檢查)*
1)前期環(huán)境準備:(虛擬機、jdk、ssh)
2)SSH相關(guān)配置
安裝SSH Server服務(wù)器:apt-get install openssh-server
更改默認的SSH密鑰
cd /etc/ssh
mkdir ssh_key_backup
mv ssh_host_* ssh_key_backup
創(chuàng)建新密鑰:dpkg-reconfigure openssh-server
允許 SSH Root 訪問,修改SSH 配置文件 /etc/ssh/sshd_config :vim /etc/ssh/sshd_config
重啟SSH:service ssh restart
查看是否安裝成功:ssh -V
SSH登錄本機:ssh localhost
若是登陸失敗提示權(quán)限不足:
sudo passwd root 注意此處的root為當前登錄本機所在的用戶名,不一定是root
sudo service ssh restart
ssh localhost
SSH無密登錄:
退出剛才的ssh localhost:exit
cd ~/.ssh/
ssh-keygen -t rsa 這里一直回車就行
cat ~/.ssh/id_rsa.pub >> ./authorized_keys
最后,SSH授權(quán)完成,再次ssh localhost 則不再需要密碼了,也不再影響偽分布hadoop啟動。
3)安裝Hadoop
首先在官網(wǎng)上下載壓縮包(版本3.2.2)。然后將壓縮包拖進自己喜歡的目錄(個人是/home/jay17)。
1、之后創(chuàng)建一個空的文件夾,用來解壓hadoop
mkdir /home/Hadoop
2、解壓,-C 指定解壓路徑到創(chuàng)建的文件夾路徑。
tar zxvf hadoop-3.2.2.tar.gz -C /home/jay17/Hadoop/
3、授權(quán),使文件夾具有讀寫文件的權(quán)利,否則直接影響其他相關(guān)操作,必須要執(zhí)行?。?/p>
chown -R root /home/jay17/Hadoop/hadoop-3.2.2/
4、檢測Hadoop是否解壓安裝正確:
cd /home/jay17/Hadoop/hadoop-3.2.2/
./bin/hadoop version
遇到報錯說java環(huán)境變量不存在。
5、解決方法如下:
切換目錄: cd etc/hadoop
執(zhí)行:vim hadoop-env.sh
修改java_home路徑和hadoop_conf_dir路徑為具體的安裝路徑,例如:
export JAVA_HOME=/usr/local/jdk1.8.0_212
export HADOOP_CONF_DIR=/home/jay17/Hadoop/hadoop-3.2.2/etc/hadoop
重新加載使修改生效:source hadoop-env.sh
6、回去檢測Hadoop,已經(jīng)解壓安裝!
cd /home/jay17/Hadoop/hadoop-3.2.2/
./bin/hadoop version
4)配置Hadoop環(huán)境變量
與java環(huán)境變量的配置類似,用編輯器打開.bashrc文件(vim /root/.bashrc),保存修改后,執(zhí)行source /root/.bashrc命令使其生效:
export HADOOP_HOME=/home/jay17/Hadoop/hadoop-3.2.2
export CLASSPATH= C L A S S P A T H : CLASSPATH: CLASSPATH:HADOOP_HOME/lib
export PATH= P A T H : PATH: PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin
保存并生效后,便可在任何路徑下使用hadoop命令了,使用hadoop version命令驗證。出現(xiàn)此前執(zhí)行./bin/hadoop version命令時所出現(xiàn)的信息,則證明環(huán)境變量修改無誤。
一定要確定寫對后再執(zhí)行生效,避免不必要的麻煩,如果操作不當,導(dǎo)致命令幾乎失效的話,請執(zhí)行該命令恢復(fù):
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
5)偽分布模式配置
Hadoop的偽分布運行是指,同一個節(jié)點既是名稱節(jié)點(Name Node),也是數(shù)據(jù)節(jié)點(Data Node),讀取分布式文件系統(tǒng)HDFS的文件。安裝不同模式Hadoop,就是修改其配置文件符合模式要求。
Hadoop有倆配置文件,一個是core-site.xml文件,另一個是hdfs-site.xml,其相對路徑是在 hadoop-3.2.2/etc/hadoop/ 下。
首先,修改core-site.xml配置文件
vim /home/jay17/Hadoop/hadoop-3.2.2/etc/hadoop/core-site.xml
修改添加的內(nèi)容:
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/jay17/Hadoop/hadoop-3.2.2/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
參數(shù)fs.defaultFS為默認文件系統(tǒng)名稱,其值為Hadoop的Name Node地址和端口號,如hdfs://localhost:9000,即表示Name Node是本機,端口9000是HDFS的RPC端口,是HDFS的默認端口。
參數(shù)hadoop.tmp.dir用于確定Hadoop文件系統(tǒng)的原信息與數(shù)據(jù)保存在哪個目錄下,是Hadoop文件系統(tǒng)依賴的基礎(chǔ)配置,很多路徑都依賴,如果hdfs-site.xml文件中不配置Name Node和Data Node的存放位置,默認放在此路徑中。
參數(shù)dfs.permissions的值如果是true則檢查權(quán)限,否則不檢查權(quán)限(每個人都可以存取文件),該參數(shù)NameNode上設(shè)定。
其次,修改hdfs-site.xml配置文件
vim /home/jay17/Hadoop/hadoop-3.2.2/etc/hadoop/hdfs-site.xml
修改添加的內(nèi)容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/jay17/Hadoop/hadoop-3.2.2/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/jay17/Hadoop/hadoop-3.2.2/tmp/dfs/data</value>
</property>
</configuration>
參數(shù)dfs.replication指明設(shè)置hdfs副本數(shù),因為是偽分布模式,所以設(shè)置為“1”,默認備份3個副本。
參數(shù)dfs.namenode.name.dir 對應(yīng)的value是存放名稱節(jié)點的路徑,參數(shù)dfs.datanode.data.dir 對應(yīng)的value是存放數(shù)據(jù)節(jié)點的路徑。這倆路徑也可自行設(shè)置,但最好與臨時文件路徑一致,在初期實驗時,遇到問題可以一并處理。
Hadoop的運行方式是由配置文件決定的,因為運行Hadoop時會讀取配置文件,如果需要切換模式,只需要重新增加,刪除或者修改core-site.xml和hdfs-site.xml文件中的配置項。
6)Name Node的格式化和hadoop啟動關(guān)閉
配置完成,執(zhí)行Name Node的格式化:(由于,hadoop生效了環(huán)境變量,所以在任何路徑下均可執(zhí)行。)
hdfs namenode -format
出現(xiàn)"successfully formatted"和"Exiting with status 0"的字樣,則證明格式化成功!
start-dfs.sh只啟動Name Node和Data Node,啟動命令如下:
cd /home/jay17/Hadoop/hadoop-3.2.2
./sbin/start-dfs.sh
遇到以下報錯請參考以下文章:
hadoop啟動報錯:Attempting to operate on hdfs namenode as root_hzp666的博客-CSDN博客
Hadoop單點安裝FAQ-CSDN博客
WARNING: HADOOP_SECURE_DN_USER has been replaced by HDFS_DATANODE_SECURE_USER.-CSDN博客
查看進程命令:jps
起來四個進程如303108 DataNode 303012 NameNode 303453 Jps 303274 SecondaryNameNode就是正常的。
停止命令如下:
./sbin/stop-dfs.sh
所有命令連貫展示:
如果NameNode一直起不來,看看是不是端口沖突了,hadoop配置文件里面我們改的是9000端口,我的portainer(docker管理平臺)也是9000端口,導(dǎo)致我因為NameNode起不來卡了好幾天。。。。
步驟二:
1)在hdp家目錄下新建lab2目錄,在lab2目錄中新建word.txt,并在其中錄入若干單詞。
mkdir /home/lab2
echo jsj >> /home/lab2/word.txt
echo jsj >> /home/lab2/word.txt
echo jay17 >> /home/lab2/word.txt
echo jsj >> /home/lab2/word.txt
echo jay17 >> /home/lab2/word.txt
echo jsj >> /home/lab2/word.txt
echo jsj >> /home/lab2/word.txt
echo jay17 >> /home/lab2/word.txt
echo jsj >> /home/lab2/word.txt
echo jsj >> /home/lab2/word.txt
2)在HDFS的根目錄下新建hdp用戶目錄/user/hdp目錄,并在用戶目錄下新建input目錄,將本地文件系統(tǒng)中的lab2目錄中的word.txt文件上傳到HDFS的input目錄中。
hadoop fs -mkdir /user
hadoop fs -mkdir /user/hdp
hadoop fs -mkdir /user/hdp/input
hadoop fs -copyFromLocal /home/lab2/word.txt /user/hdp/input/
3)調(diào)用wordcount示例程序統(tǒng)計word.txt中的單詞出現(xiàn)次數(shù),將結(jié)果寫入用戶目錄的output中,查看統(tǒng)計結(jié)果。
hadoop jar /home/jay17/Hadoop/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar wordcount /user/hdp/input /user/output
Hadoop: 是$HADOOP_HOME/bin下的shell腳本名。
jar:hadoop腳本需要的command參數(shù)。
/home/jay17/Hadoop/hadoop-3.2.2/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.2.jar :要執(zhí)行的jar包在本地文件系統(tǒng)中的完整路徑,參遞給RunJar類。
wordcount :main方法所在的類,參遞給RunJar類。
/user/hdp/input:傳遞給WordCount類,作為DFS文件系統(tǒng)的路徑,指示輸入數(shù)據(jù)來源。
/user/output:傳遞給WordCount類,作為DFS文件系統(tǒng)的路徑,指示輸出數(shù)據(jù)路徑。
hadoop fs -ls /user/output
hadoop fs -cat /user/output/part-r-00000文章來源:http://www.zghlxwxcb.cn/news/detail-757952.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-757952.html
到了這里,關(guān)于Kali Linux 安裝搭建 hadoop 平臺 調(diào)用 wordcount 示例程序 詳細教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!