Hadoop 環境的搭建
一、安裝VMWare 虛拟機
虛拟機版本VMware12,考慮到啟動速度,裝在固态硬碟中。
二、安裝Linux
安裝版本:ubuntu-16.04.1-server-amd64
此版本沒有圖形化界面,體積較小,隻有指令行視窗
三、配置Linux
1、為了友善操作以及避免權限的相關問題,不用個人使用者,使用root使用者登入來進行操作 ——>root使用者的解鎖:修改root密碼,友善登入
sudo passwd root
2、關閉防火牆,解除安裝iptables
關閉防火牆:ufw disable
解除安裝iptables:apt-get remove iptables
3、安裝vim編輯器
apt-getinstall vim
四、安裝SSH工具
為了友善不在Linux指令視窗中輸入指令,轉而在Windows工具中遠端控制Linux——>配置SSH工具遠端連接配接
1、在Linux中安裝SSH服務
apt-get install openssh-server
2、啟動SSH服務
/etc/init.d/ssh start
3、檢測SSH程序是否已經開啟
ps -e| grep sshd
4、配置root使用者的預設登入【這樣每次打開SSH工具就不用登陸了,自動登陸到root上】
vim /etc/ssh/sshd_config
修改配置檔案
#允許root使用者登入,設定為yes
·PermitRootLogin: yes
儲存,退出 :x
5、打開SSH用戶端(這裡使用SecureCRT)配置
·Linux下查詢本機IP:ifconfig 檢視inet addr
·SecureCRT中:Hostname輸入查詢到的IP,Username輸入root
這裡使用SecureCRT連接配接本地VMware是可能會遇到
“Connection timed out”,并且在Vmware的VM裡面可以ping通主控端,但是主控端無法ping通VM。 解決方法:本地的網絡設定裡面的vmware的NAT網卡(Vmnet8)設定了手工填寫位址和DNS,修改為自動擷取即可。
![]()
ubuntu16+Hadoop2.7.3環境搭建(僞分布式)一、安裝VMWare 虛拟機二、安裝Linux三、配置Linux四、安裝SSH工具五、配置FTP服務六、在Linux中安裝JDK七、配置SSH 免登入八、安裝hadoop(僞分布模式)——版本2.7.3
五、配置FTP服務
為了友善Windows傳輸檔案到Linux中,是以要配置FTP服務,使用用戶端8UFTP
1、在Linux中安裝FTP服務元件
apt-get install vsftpd
2、修改FTP使用者的密碼
passwd ftp
3、設定FTP目錄的控制權限為完全控制
chmod777 /srv/ftp (檔案都上傳到這個目錄裡)
4、修改配置檔案
vim /etc/vsftpd.conf
修改:
anonymous_enable= NO //不允許匿名登入,必須使用正确的使用者名和密碼登入
local_enable=YES //允許本地使用者登入
write_enable=YES //使用者具有寫權限
chroot_local_user= YES //将所有使用者限制在主目錄
chroot_list_enable= YES //啟動限制使用者名單
chroot_list_file=/etc/vsftpd.chroot_list //定義名單設定的目錄
增加:
pam_service_name=vsftpd //增加到定義名單設定目錄之後
儲存退出
![]()
ubuntu16+Hadoop2.7.3環境搭建(僞分布式)一、安裝VMWare 虛拟機二、安裝Linux三、配置Linux四、安裝SSH工具五、配置FTP服務六、在Linux中安裝JDK七、配置SSH 免登入八、安裝hadoop(僞分布模式)——版本2.7.3 5、在名單設定目錄中增加使用者名
先增加檔案/etc/vsftpd.chroot_list,然後在檔案裡面寫上使用者名ftp
vim/etc/vsftpd.chroot_list
輸入ftp
儲存退出
6、修改pam配置檔案
vim /etc/pam.d/vsftpd
注釋掉(添加#号):
# auth required pam_shells.so
儲存退出
7、啟動ftp服務
servicevsftpd start
(重新啟動服務 service vsftpd restart)
8、連接配接用戶端8UFTP
新站點:
主機名:IP位址
使用者名:ftp
密碼:123110(Linux中配置的ftp賬号密碼)
六、在Linux中安裝JDK
1、下載下傳Linux版本的JDK安裝包jdk-8u101-linux-x64.tar
2、把JDK開發包利用8UFTP工具上傳到Linux中(目錄/srv/ftp中)
3、将上傳後的檔案進行解壓縮處理
tar xzvf JDK安裝封包件名 -C /usr/local
4、給的解壓後的檔案重命名
mv JDK原名 jdk
5、配置JDK
·打開環境檔案
vim /etc/profile
·在最下面,輸入
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin:
export CLASS_PATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
儲存退出
6、讓配置生效
source /etc/profile
7、測試 JDK
java 或 javac
七、配置SSH 免登入
1、設定虛拟網絡
·進入Linux系統,在VM中選擇編輯-虛拟網絡配置,選擇NAT模式
2、設定主機名稱
vim /etc/hostname
把localhost 修改為 hadoopm
vim /etc/hosts
第一行增加
本機ip位址 hadoopm
3、重新開機Linux reboot
4、設定SSH免登陸
·删除根路徑下.ssh
rm -rf ~/.ssh
·在hadoopm主機上生成sshkey
ssh-keygen -t rsa(一直回車,不輸入) //加密方式 rsa,可以選擇其他方式
·将公鑰資訊儲存在授權檔案中
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
5、測試免登陸(即登入ssh)
ssh [email protected] 變為遠端連接配接
(exit退對外連結接)
八、安裝hadoop(僞分布模式)——版本2.7.3
1、下載下傳hadoop安裝包
2、解壓重命名hadoop安裝包
tar xzvf hadoop安裝封包件名 -C /usr/local
mv hadooop安裝包名 hadoop
3、修改環境變量
vim /etc/profile
export HADOOP_HOME =/usr/local/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
讓配置生效
source /etc/profile
4、修改hadoop配置檔案
配置:“core-site.xml”:Hadoop的核心資訊,包括臨時目錄、通路位址等;
配置:“yarn-site.xml”:可以簡單了解為配置相關job的處理;
配置:“hdfs-site.xml”:可以确定檔案的備份個數、資料檔案夾的路徑;
·vim /usr/local/hadoop/etc/hadoop/hadoop-env.sh
更改JavaJDK路徑
export JAVA_HOME=/usr/local/jdk/
(1)core-site.xml
·vim /usr/local/hadoop/etc/hadoop/core-site.xml
添加:
######################################################################################
## 配置hadoop臨時檔案,如果不配置,那麼就會在hadoop的檔案夾裡面生産tmp檔案("/usr/local/hadoop/tmp"),
## 那麼hadoop重新開機此檔案會被清空,也就是說此時hadoop的環境就失效了。 建立hadoop_tmp檔案
## cd ~
## mkdir hadoop_tmp
#######################################################################################
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/root/hadoop_tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoopm:9000</value>
</property>
</configuration>
(2)hdfs-site.xml
vim /usr/local/hadoop/conf/hdfs-site.xml
######################################################################################
## “dfs.replication”:檔案的副本數,一般情況下一個檔案備份3份
## “dfs.namenode.name.dir”:定義名稱節點路徑
## “dfs.namenode.data.dir”:定義資料檔案節點路徑
## “dfs.datanode.data.dir”:名稱節點的http通路路徑
## “dfs.namenode.secondary.http-address”:第二名稱節點
## “dfs.permissions”: 權限認證問題,關閉
#######################################################################################
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.namenode.http-address</name>
<value>hadoopm:50070</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoopm:50090</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
(3)yarn-site.xml
·vim /usr/local/hadoop/conf/ yarn-site.xml
添加:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>·
(4)mapred-site.xml
vim/usr/local/hadoop/conf/mapred-site.xml
添加:
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hadoopm:9001</value>
</property>
</configuration>
5、由于hadoop屬于分布式的開發環境,考慮到日後要進行叢集的搭建,建議在“/usr/local/hadoop/etc/hadoop”目錄下建立一個masters,裡面寫上主機名稱(hadoopm,之前在hosts目錄裡面定義的主機名稱),如果是單機環境,不寫也沒有關系。
cd /usr/local/hadoop/etc/hadoop
vim masters
輸入:hadoopm
6、修改從節點檔案,增加hadoopm(此時主副節點為統一節點)
cd /usr/local/hadoop/etc/hadoop
vim slaves
輸入:hadoopm
7、上述hdfs-site.xml檔案将所有的namenode、datanode儲存路徑設定在/usr/local/hadoop/dfs目錄中,雖然可以自動建立,但是建議手動建立者兩個檔案夾
cd /usr/local/hadoop/
mkdir dfs dfs/name dfs/data
如果hadoop出現問題需要重新配置時,請保證将這兩個檔案夾徹底清除掉,如果沒有删除,則配置無效。
8、格式化檔案系統namenode
hdfs namenode - format
如果可以正确執行,則出現如下資訊:INFO util.ExitUtil: Exiting with status 0;
如果出錯,此處出現: INFOutil.ExitUtil: Exiting with status 1,很有可能是之前的幾個配置檔案複制、粘貼時出現了錯誤。
9、啟動hadoop
start-all.sh 每次啟動hadoop都要輸入
10、檢測是否啟動成功
jps 檢視所有java程序(是否出現了5個重要程序,Jps程序忽略)
6116SecondaryNameNode
5940DataNode
6500Jps
5802NameNode
6270ResourceManager
6382NodeManager
或者登入 http://ip位址:50070 http://ip位址:50030
(如果想用hadoopm從windows登入,則需要在windows下增加映射檔案,
C:\Windows\System32\drivers\etc hosts 追加 ip位址 hadoopm)
11、停止服務
stop-all.sh 使用jps檢視程序
如果重新開機發現程序啟動不完整的解決方案:http://www.linuxidc.com/Linux/2015-01/111891.htm
···配置完畢··