Ubuntu hadoop 僞分佈模式搭建
2017年3月9日
11:10
》安裝VMware
》安裝ubuntu,虛擬機用戶名和密碼全部改爲hadoop,其他的一路默認,設置的處理器如下:
防止虛擬機花屏和很卡,就關掉3D加速
》安裝vmtools
如果按鈕是灰色的,就將CD/DVD(其中一個即可)指向VMware下的linux.iso,然後點擊確定退出,再點擊虛擬機下面的可移動設備連接這個CD/DVD
安裝好了之後,安裝vim
命令:sudo apt-getinstall vim
報錯:
出現這個問題可能是有另外一個程序正在運行,導致資源被鎖不可用。而導致資源被鎖的原因可能是上次運行安裝或更新時沒有正常完成。
輸入以下兩條命令:
sudo rm/var/cache/apt/archives/lock
sudo rm/var/lib/dpkg/lock
再進行vim的安裝就OK了
》Java的安裝
Hive依賴於Hadoop,而Hadoop依賴於Java。所以需要配置JDK
首先下載好JDK,再複製到虛擬機中,放在/home/download文件夾下,然後解壓到主文件夾下(/usr/local)
首先在/hone/download文件夾下運行命令:
sudo tar zxvfjdk-8u121-linux-x64.tar.gz -C /usr/local
切換到/usr/local查看文件。已經有解壓的文件了:
接下來配置環境變量了,打開/etc/profile文件。命令如下:
sudo gedit /etc/profile
在最後添加:
exportJAVA_HOME=/usr/local/jdk1.8.0_121
exportJRE_HOME=/usr/local/jdk1.8.0_121/jre
exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
exportPATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
如圖:然後點擊右上角的save即可,然後點擊左上角關閉。
然後重啓虛擬機,輸入:
命令:java -version
檢查是否配置成功
安裝成功。
》安裝SSH
安裝
sudo apt-get installopenssh-server
啓動
sudo /etc/init.d/sshstart
設置免密碼登錄
$ ssh-keygen -t dsa -P '' -f~/.ssh/id_dsa
$ cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
$ exportHADOOP\_PREFIX=/usr/local/hadoop
由於這樣安裝後,還是無法面密碼登錄,需要輸入localhost的密碼,所以 嘗試過很多種方法,最終得以解決。詳見《SSH安裝的N次失敗》。
》安裝hadoop
下載hadoop(hadoop-2.7.3.tar.gz),複製到虛擬機/home/download目錄下:然後解壓到/usr/local中,並改名hadoop
然後運行以下命令修改hadoop權限,確保所有的操作都是在用戶hadoop下完成的:
命令:sudo chown -R hadoop:hadoop /usr/local/hadoop
配置.bashrc文件:
在文末添加,這樣可以直接使用hadoop命令:
#HADOOPVARIABLES START
export JAVA_HOME=/usr/jdk1.8.0_121
exportHADOOP_INSTALL=/usr/local/hadoop
exportPATH=$PATH:$HADOOP_INSTALL/bin
exportPATH=$PATH:$HADOOP_INSTALL/sbin
exportHADOOP_MAPRED_HOME=$HADOOP_INSTALL
exportHADOOP_COMMON_HOME=$HADOOP_INSTALL
exportHADOOP_HDFS_HOME=$HADOOP_INSTALL
exportYARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOPVARIABLES END
使用命令source ~/.bashrc,使文件生效。
測試:
打開hadoop目錄下的etc/hadoop目錄,配置一下幾個文件:
配置hadoop-env.sh,添加:
export JAVA_HOME=/usr/local/jdk1.8.0_121
exportHADOOP=/usr/local/hadoop
exportPATH=$PATH:/usr/local/hadoop/bin
配置yarn-env.sh,添加:
core-site.xml 配置(僞分佈模式):
由於此處新建了hadoop_tmp文件夾,則要在對應的目錄下新建一個這個文件夾。
建立文件
配置hdfs-site.xml,配置:
<configuration>
<!-- 指定HDFS副本的數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>127.0.0.1:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>127.0.0.1:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>127.0.0.1:8031</value>
</property>
</configuration>
配置結束。
格式化namenode
命令:hdfs namenode-format
啓動集羣:start-dfs.sh
再啓動集羣后,測試jps的時候,java進程只有jps一個,顯然,集羣啓動失敗。
首先查看日誌發現,是無法創建/usr/local/hadoop/hadoop_tmp/dfs..文件,其實在用命令“hdfs namenode -format”格式化 也有報錯,並且明確說明了 namenode啓動失敗。然後就全部指向文件問題。首先檢查是否存在hadoop_tmp這個文件,顯然前面已經新建了。其次檢查core-site.xml的配置有沒有把文件地址寫錯,也沒有錯的話,就是權限問題了。
更改hadoop_tmp的權限,把hadoop用戶添加進去。
sudo chmod a+rwx /usr/local/hadoop/hadoop_tmp
這樣再次格式化nodename就沒問題了。問題解決。
解壓:
- zxvf
-z 是配合解壓.GZ的
-x 解開一個包文件
-v 顯示詳細信息
-f 必須,表示使用歸檔文件
來自 <http://blog.csdn.net/shiqidide/article/details/7582572>
-
- chown username: /home/username/.ssh
- chown username: /home/username/.ssh/*
- chmod 700 /home/username/.ssh
- chmod 600 /home/username/.ssh/*