您好,登錄后才能下訂單哦!
本篇文章為大家展示了如何解決hadoop安裝和使用過程中遇到的問題,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
VMware本身高版本的能夠支持低版本VMware配置的虛擬機,但是反過來就不支持了。如果想在低版本的VMware打開用高版本VMware配置的虛擬機,可以如下操作:
1. 在欲打開虛擬機文件夾中找到后綴名為“.vmx”的文件,用記事本打開;
2. 找到“virtualHW.version = "11"”,將數字改為你現用VMware版本號或更低版本號;
3. 保存,操作完成,可以打開了。
默認情況下,虛擬機的虛擬軟驅是使用主機的物理軟驅,而我們的電腦一般不安裝軟驅,所以會提示“主機上沒有相應的設備”。
解決:不用軟驅,在虛擬機的設置里,將軟盤取消掉,就不會出現此提示了。
#1因為在分布式文件系統啟動的時候,開始的時候會有安全模式,當分布式文件系統處于安全模式的情況下,文件系統中的內容不允許修改也不允許刪除,直到安全模式結束。安全模式主要是為了系統啟動的時候檢查各個DataNode上數據塊的有效性,同時根據策略必要的復制或者刪除部分數據塊。運行期通過命令也可以進入安全模式。在實踐過程中,系統啟動的時候去修改和刪除文件也會有安全模式不允許修改的出錯提示,只需要等待一會兒即可。
也可以手動關閉:bin/hadoop dfsadmin -safemode leave
#1【錯誤Name node is in safe mode的解決方法】
其原因是namenode,datanode時間同步問題。(date命令分別看每個節點的時間)
解釋同步:在Linux系統中,為了避免主機時間因為在長時間運行下所導致的時間偏差,進行時間同步(synchronize)的工作是非常必要的。Linux系統下,一般使用ntp服務來同步不同機器的時間。NTP 是網絡時間協議(Network Time Protocol)的簡稱。
檢查虛擬機是否可以使用網絡,如果可以則進行時間按同步:
法一:
root#crontab -e
添加:0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
法二:
root# /usr/sbin/ntpdate cn.pool.ntp.org
一下是關于ntp的一些指令:
查看ntp服務的狀態:
# service ntpd status
檢查是否有ntp相關包(使用rpm或yum安裝):
# rpm -qa | grep ntp
#使用rpm方式安裝 rpm -ivh ntp-4.2.2p1-8.el5.i386.rmp #使用yum方式安裝 yum -y install ntp.i* #使用rpm方式刪除 rpm -e ntp-4.2.2pl-8.el5.i386.rpm #使用yum方式刪除 yum -y remove ntp.i*
ntp服務配置:
配置文件:/etc/ntp.conf,將internet上的時間服務器作為內部標準時間來源
restrict default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict -6::1 restrict 192.168.0.0 mask 255.255.255.0 nomodify notrap restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap #指定Internet上的時間服務器 restrict 207.46.232.182 mask 255.255.255.255 nomodify notrap noquery server 207.46.232.182 server 127.127.1.0 fudge 127.127.1.0 stratum 10 keys /etc/ntp/keys #指定NTP服務器日志文件 logfile /var/log/ntp
修改/etc/ntp/stpe-tickers文件(當ntpd服務啟動時,會自動與該文件中的記錄的上層ntp服務進行時間校對)
207.46.232.182 127.127.1.0
修改/etc/sysconfig/ntpd文件:
#允許BIOS與系統時間同步,也可以通過hwclock -w 命令 SYNC_HWCLOCK=yes
重新啟動服務:
/sbin/service network restart
查看:
#顯示本機上一次與上層ntp服務器同步時間的情況 ntpstat 如下顯示: synchronised to local net at stratum 6 time correct to within 11 ms polling server every 64 s #查看本機與上層ntp服務器通信情況 ntpq -p 如下顯示 remote refid st t when poll reach delay offset jitter ============================================================================== *LOCAL(0) .LOCL. 5 l 23 64 377 0.000 0.000 0.000
ntp服務的啟動和暫停(NTP屬于system):
#啟動 service ntpd start #停止 Service ntpd stop #重新加載 service ntpd reload #查看當前啟動狀態 service ntpd status
ntp服務自動加載:
#在運行級別2、3、4、5上設置為自動運行 chkconfig ntpd on #在運行級別2、3、4、5上設置為不自動運行 chkconfig ntpd off #在運行級別3、5上設置為自動運行 chkconfig ntpd --level 35 on #在運行級別3、5上設置為不自動運行 chkconfig ntpd --level 35 off
查看ntp服務器時間:
ntpdate ntpserver
解決:多個datanode與namenode進行時間同步,在每臺服務器執行
aggregatewordcount只能對二進制SequenceFile進行解析,而不能解析普通文本,需要hadoop 的api把file.txt轉換成SequenceFile。
另外的解決辦法:把文件的編碼改為utf-8重新上傳覆蓋后就可以了(但是我的情況無法使用該方法解決)
我是在宿主機的eclipse打包jar(未編譯)包后移到hadoop安裝目錄下,再執行的時候提示該錯誤,很明顯,我沒有編譯,當然還不能用,所以,不管你是在宿主機上或是虛擬機上,都要進行編譯才可用。
7.錯誤: 程序包org.apache.hadoop.conf不存在
如果你是在虛擬機指令編譯的話,要注意:
hadoop2.*的版本,所以需要使用的庫都分散了(hadoop1.*的是集中在hadoop-1.*-core.jar),分別是hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar;hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.3.jar
法一:指令中明確標出classpath:
$javac -classpath hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar /hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.3.jar/hadoop-2.7.3/share/hadoop/common/lib/commons-cli-1.2.jar -d 存放的文件名 程序.java
法二:直接編輯classpath
超級用戶身份打開/etc/profile編輯:
export HADOOP_HOME="hadoop的安裝絕對目錄hadoop-2.7.3"
export classpath="hadoop-2.7.3/share/hadoop/common/hadoop-common-2.7.3.jar;hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-client-core-2.7.3.jar;hadoop-2.7.3/share/hadoop/common/lib/commons-cli-1.2.jar"
保存退出
文件生效:source /etc/profile
上述內容就是如何解決hadoop安裝和使用過程中遇到的問題,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。