eclipse远程连接hadoop_hadoop集群搭建详细方法
第一步:搭建配置新的虛擬機(jī)
格式化之前先把tmp目錄下所有與Hadoop有關(guān)的信息全部刪除
rm -rf /tmp/hadoop-centos*
開啟之后jps只有Java的進(jìn)程:sudo vi /etc/hosts 里面加 bogon
1.sudo賦權(quán)
Root用戶 vi /etc/sudoers
/root n(查找下一個(gè)結(jié)果)
centos ALL=(ALL) NOPASSWD:ALL
2.修改ens33網(wǎng)卡(橋接模式靜態(tài)IP)
創(chuàng)建軟鏈接
ln –s /etc/sysconfig/network-scripts/ifcfg-ens33 ens33
修改配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=51248a5b-aece-4777-ab51-7b5e61602180
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.12.206
NETMASK=255.255.255.0
GATEWAY=192.168.12.1
DNA1=219.141.136.10
DNS2=202.106.196.115
DNS3=8.8.8.8
DNS4=114.114.114.114
改完后重啟network服務(wù)
sudo systemctl restart network
虛擬機(jī)上右鍵-->設(shè)置-->網(wǎng)絡(luò)適配器-->橋接模式
檢測(cè)是否連接網(wǎng)絡(luò) ping www.baidu.com
3.修改主機(jī)名
sudo vi /etc/hostname
原來內(nèi)容全部刪除 寫入s126
重啟虛擬機(jī)
4.安裝JDK和Hadoop
1.上傳文件包
2.解壓 tar –zxvf ****
3.創(chuàng)建軟鏈接 ln –s *** hadoop
tar -zxvf jdk-8u121-linux-x64.tar.gz
ln -s jdk1.8.0_121 java
rm -rf jdk-8u121-linux-x64.tar.gz
tar -zxvf hadoop-2.8.0.tar.gz
ln -s hadoop-2.8.0 hadoop
rm -rf hadoop-2.8.0.tar.gz
4.配置環(huán)境變量
sudo vi /etc/profile
#java
JAVA_HOME=/home/centos/java
export PATH=$PATH:$JAVA_HOME/bin
#hadoop
HADOOP_HOME=/home/centos/hadoop
Export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
vi ~/hadoop/etc/hadoop/hadoop-env.sh
#java
export JAVA_HOME=/home/centos/java
5.刷新配置文件
source /etc/profile
5.關(guān)閉防火墻
sudo systemctl stop firewalld關(guān)閉防火墻
sudo systemctl start firewalld開啟防火墻
sudo systemctl disable firewalld禁用防火墻(開機(jī)不啟動(dòng))
sudo systemctl enable firewalld使用防火墻(開機(jī)啟動(dòng))
sudo systemctl status firewalld查看防火墻狀態(tài)
第二步:Hadoop集群搭建
1.獨(dú)立模式
1、 將hadoop的jar包上傳服務(wù)器
2、 解壓tar包
tar –zxvf ****
3、 創(chuàng)建軟連接
ln –s *** hadoop
4、 配置環(huán)境變量
[vi /etc/profile]
最下面加上
#hadoop
HADOOP_HOME=/home/centos/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
最后保存文件加載環(huán)境變量配置文件
source /etc/profile
5、 修改hadoop環(huán)境變量配置文件配置jdk路徑
[$HADOOP_HOME/etc/hadoop/hadoop-env.sh]
6、 測(cè)試
hadoop version
默認(rèn)hadoop就是獨(dú)立模式。
特點(diǎn):運(yùn)行任務(wù)是一個(gè)java進(jìn)程,就相當(dāng)于運(yùn)行一個(gè)java程序
2.偽分布式模式配置
修改hdfs配置文件
vi ~/hadoop/etc/hadoop/core-site.xml
cd ~/hadoop/etc/hadoop
[core-site.xml]
fs.defaultFS
hdfs://192.168.12.126:9000
vi ~/hadoop/etc/hadoop/hdfs-site.xml
[hdfs-site.xml]
dfs.replication
1
設(shè)置ssh免密登錄
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
檢測(cè)方式:ssh localhost/主機(jī)真實(shí)ip
格式化文件系統(tǒng)
hadoop namenode -format
啟動(dòng)文件系統(tǒng)
jps 檢測(cè)Java開啟的進(jìn)程
start-dfs.sh 啟動(dòng)文件系統(tǒng)(啟動(dòng)了三個(gè)java進(jìn)程)
jps 再次檢測(cè)Java開啟的進(jìn)程(應(yīng)該是4個(gè))
配置yarn資源管理器
cd ~/hadoop/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
mapreduce.framework.name
yarn
vi yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
start-dfs.sh && start-yarn.sh && jps
3.完全分布式
配置/etc/hosts文件(本地靜態(tài)DNS)
首行加上 : bogon
增加:
192.168.12.201 s201
192.168.12.202 s202
192.168.12.203 s203
1.設(shè)置ssh免密登錄:
(現(xiàn)在別的主機(jī)ssh 主機(jī)IP 然后把宿主機(jī)復(fù)制過去的權(quán)限600)
效果:從主機(jī)上能通過ssh免密登錄
目的:在主機(jī)上通過ssh執(zhí)行命令
設(shè)置的方式:
首先給主機(jī)設(shè)置ssh免密登錄,將主機(jī)的公鑰(id_rsa.pub)通過scp命令發(fā)送到其他 主機(jī),在其他主機(jī)上將獲取到的公鑰追加到~/.ssh/authorized_keys。
主機(jī):
ssh-keygen –t rsa –P '' –f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub centos@192.168.12.202:~/.ssh/id_rsa.pub.s201
scp ~/.ssh/id_rsa.pub centos@192.168.12.203:~/.ssh/id_rsa.pub.s201
s202:
s203:
cat ~/.ssh/id_rsa.pub.s201 >> ~/.ssh/authorized_keys
2.shell腳本的操作:
主機(jī)寫分發(fā)腳本cpTo,查看腳本xcall。賦予執(zhí)行權(quán)限。移動(dòng)到/usr/local/bin目錄下,以便我們能在任何地方使用腳本
[cpTo]
#腳本的目的是:修改完了主機(jī)的文件以后,可以通過它分發(fā)到其他主機(jī),實(shí)現(xiàn)同步
#腳本的用法:cpTo 文件(絕對(duì)路徑/相對(duì)路徑)
#!/bin/bash
#獲取參數(shù)的絕對(duì)路徑
dirname=`cd $(dirname $1); pwd`
basename=`basename $1`
echo ${dirname}/${basename}
for i in s202 s203
do
echo "=================$i ${dirname}/${basename}=================="
#如果其他機(jī)器沒有父目錄創(chuàng)建父目錄
ssh $i mkdir -p ${dirname}
#遠(yuǎn)程拷貝文件
scp $1 ${i}:${dirname}/${basename}
done
[xcall.sh]
#作用是通過ssh遠(yuǎn)程運(yùn)行命令,比如查看jps,在比如刪除/tmp
#用法:xcall 命令
#!/bin/bash
for host in s201 s202 s203
do
echo "====================echo $host $@==========================="
#ssh遠(yuǎn)程執(zhí)行命令
#$@獲取所有參數(shù)
#source /etc/profile 因?yàn)閟sh遠(yuǎn)程執(zhí)行命令不去加載/etc/profile,所以很多命令沒法用
ssh $host "source /etc/profile && $@"
Done
3.軟件安裝的操作
安裝jdk、hadoop、配置環(huán)境變量JAVA_HOME、HADOOP_HOME,可以通過xcall腳本來 同步安裝
在主機(jī)上修改hosts文件,給主機(jī)配置所有機(jī)器的dns服務(wù),使用cpTo腳本分發(fā)到其他 機(jī)器,讓其他機(jī)器也有dns服務(wù)
注意:/etc/hosts是root用戶的文件,所以需要切換到root執(zhí)行
dns服務(wù): 可以將域名解析為ip地址。比如ping s201,解析成ping 192.168.12.201
4.配置文件操作
在主機(jī)上修改hadoop的配置文件:
[Hadoop-en.sh] [core-site.xml] [hdfs-site.xml] [mapred-site.xml] [yarn-site.xml] [slaves]
通過cpTo腳本進(jìn)行分發(fā)(可以分發(fā)上一級(jí)目錄來全部分發(fā))
1、[hadoop-env.sh]配置javahome
2、[core-site.xml]配置連接url
[core-site.xml]
fs.defaultFS
hdfs://s201:9000
3、[hdfs-site.xml]配置的是副本數(shù)
dfs.replication
3
4、[mapred-site.xml]配置運(yùn)行map任務(wù)采用的集群資源管理框架
mapreduce.framework.name
yarn
5、[yarn-site.xml]配置RM的節(jié)點(diǎn)和數(shù)據(jù)傳輸方式
yarn.resourcemanager.hostname
s126
yarn.nodemanager.aux-services
mapreduce_shuffle
6、[slaves]配置datanode節(jié)點(diǎn)和NM節(jié)點(diǎn)
s201
s202
s203
5.主機(jī)格式化文件系統(tǒng)
只需要在主機(jī)格式化文件系統(tǒng)(xcall刪除數(shù)據(jù)目錄/tmp/hadoop*,日志文件/logs/*)
啟動(dòng)hdfs文件系統(tǒng)和yarn框架
xcall查看啟動(dòng)是否成功/看web
第三步:配置項(xiàng)目
1、 將要統(tǒng)計(jì)的文件(wordcount.txt)上傳到hdfs
hdfs dfs –put 本地文件 hdfs目錄
hdfs dfs -put wordCount2.txt /user
2、 運(yùn)行任務(wù)
hadoop jar jar包 com.zdjy.bigdata.wordCount.hadoop.WordCountApp hdfs輸 入文件
hdfs輸出目錄
hadoop jar wordCount.jar com.zdjy.WordCountApp /user/wordCount2.txt /saa
3、 查看結(jié)果
hdfs dfs –cat hdfs輸出目錄下的文本文件 (hdfs dfs -cat /saa/*)
4.關(guān)閉文件系統(tǒng)
hdfs dfs -mkdir /user
hdfs dfs -ls -R /
hdfs -dfs -put wordCount2.txt /user
hdfs dfs -put wordCount2.txt /user
hdfs dfs -ls -R /
hadoop jar wordCount-0.0.1-SNAPSHOT.jar
com.zdjy.bigdata.wordCount.hadoop.WordCountApp
/user/wordCount2.txt /out
hdfs dfs -cat /out/*
5.在瀏覽器上看web(sudo systemctl stop firewalld關(guān)閉防火墻)
http://192.168.12.206:50070
文件系統(tǒng):50070
yarn:8088
ssh免密登錄與手動(dòng)單獨(dú)啟動(dòng)每一個(gè)進(jìn)程
設(shè)置ssh免密登錄的原因:我們start-dfs.sh/start-yarn.sh他們都是通過ssh來遠(yuǎn)程控制每一臺(tái)主機(jī)的進(jìn)程的啟動(dòng)
[start-dfs.sh]
if [ -n "$HADOOP_SECURE_DN_USER" ]; then
echo
"Attempting to start secure cluster, skipping datanodes. "
"Run start-secure-dns.sh as root to complete startup."
else
"$HADOOP_PREFIX/sbin/hadoop-daemons.sh"
--config "$HADOOP_CONF_DIR"
--script "$bin/hdfs" start datanode $dataStartOpt
fi
[Hadoop-daemons.sh]
exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_PREFIX" ; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"
[slaves.sh]
for slave in $SLAVE_NAMES ; do
ssh $HADOOP_SSH_OPTS $slave $"${@// / }"
2>&1 | sed "s/^/$slave: /" &
if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then
sleep $HADOOP_SLAVE_SLEEP
fi
done
我們手動(dòng)啟動(dòng)每一個(gè)進(jìn)程
主機(jī)啟動(dòng)namenode
hadoop-daemon.sh start namenode
所有機(jī)器手動(dòng)啟動(dòng)datnode
hadoop-daemon.sh start datanode
在主機(jī)上手動(dòng)啟動(dòng)datanode
ssh s202 “source /etc/profile && hadoop-daemon.sh start datanode”
在主機(jī)上腳本啟動(dòng)所有datanode
hadoop-daemons.sh start datanode
在主機(jī)啟動(dòng)secondarynamenode
主機(jī)啟動(dòng)resourcemanager
yarn-daemon.sh start resourcemanager
所有機(jī)器啟動(dòng)nodemanager
yarn-daemon.sh start nodemanager
在主機(jī)啟動(dòng)所有的nodemanager
yarn-daemons.sh start nodemanager
start-dfs.sh=NN,DNs,2NN
start-yarn.sh=RM,NMs
start-all.sh= start-dfs.sh && start-yarn.sh
>�
總結(jié)
以上是生活随笔為你收集整理的eclipse远程连接hadoop_hadoop集群搭建详细方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java8 stream 分组_Java
- 下一篇: 基于java 企业进销存管理系统设计(含