1. 程式人生 > >Hadoop2.7.3+Centos7

Hadoop2.7.3+Centos7

gen bashrc with off conf datanode ldo 環境 courier

配置之前的準備

環境  centos 7.2+

了解hadoop以及後面一系列需要的服務之間的大致關系,以及相互的支持連接所需物件。

1.賬戶

useradd -m hadoop -s /bin/bash

# -m 完整的用戶空間(在/home裏自建一個用戶文件夾並配置相關文件夾)

# -s 確定shell類型

#關於賬戶要確定一下賬戶的名稱,最一個集群裏的賬戶名一樣,後面不用太操心

2.sudo 添加

[root@master local]# visudo

相比較直接修改 /etc/sudoers 更安全更方便

## Allow root to run any commands anywhere
root    ALL
=(ALL) ALL hadoop ALL=(ALL) ALL

我加的就是hadoop賬戶 ,

關於權限的操作主要有chown 和chmod

eg:

  chown -R hadoop:hadoop /usr/local/hadoop

  chmod 755 /usr/local/hadoop

3,.ip/映射

  添加在/etc/hosts

  master 為主,namenode

  slave1,slave2為datanode

[root@master local]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::
1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.10.120 master 192.168.10.114 slave1 192.168.10.109 slave2

# 左ip 右主機名(不知道這樣說準不準確)

4.主機名修改

(1)  hostnamectl set-hostname XXXX

#  修改後退出當前終端再開一個就會發下已經更改了

(2)  直接修改 /etc/hostname

5.如果要建hadoop集群,虛擬機需要使用橋接,也可使用雙網卡,

6.ssh

每個節點

yum -y install openssh

ssh-keygen -t rsa
#後直接回車到底
cd ~/.ssh


#除了master節點 
scp id_rsa.pub hadoop@master:/home/hadoop/id_rsa01.pub 
scp id_rsa.pub hadoop@master:/home/hadoop/id_rsa02.pub

#master:
cd ~/.ssh
cat id_rsa.pub >>authorized_keys
cat id_rsa01.pub >>/home/hadoop/.ssh/authorized_keys
cat id_rsa02.pub >>/home/hadoop/.ssh/authorized_keys
#其他節點 cd
~/.ssh scp authorized_keys root@slave1:/home/hadoop/.ssh scp authorized_keys root@slave2:/home/hadoop/.ssh
使用時可能會要輸密碼,主要是在~/.ssh/known-host中沒有要連接的機子,所以要驗證一下

7.修改權限

[hadoop@master local]$ chmod 600 ~/.ssh/authorized_keys 

8.解壓

tar -zxvf xxxxx.tar.gz
unzip xxxxx.zip
#此時我修改了有關的包的版本號
#如 mv hadoop-2.7.3 hadoop
    mv jdk1.8.0 java
tar -zxvf jdk-8u111-linux-x64.tar.gz -C /usr/local

tar -zxvf hadoop.tar.gz -C /usr/local

#解壓到/usr/local

9.環境變量

#/etc/profile   全局變量,普通用戶,root都能用

#/home/hadoop/.bashrc  單一變量,只有 文件所在位置 的用戶 自身 能用 ,root也不行,就是說,sudo時,會找不到環境變量。這時,只能修改所用文件的權限,或者在/etc/profile中添加環境變量

export JAVA_HOME=/usr/local/java
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$JAVA_HOME/bin

#更改後更新source /etc/profile
hadoop2.7.3:https://pan.baidu.com/s/1kXaLrbp 密碼:q0ok
jdk1.8.0:  https://pan.baidu.com/s/1htxBMJy 密碼:lg9m

10.配置

cd hadoop/etc/hadoop/

hadoop-env.sh

#  修改export JAVA_HOME= ${JAVA_HOMR}
    export JAVA_HOME=/usr/local/java

slaves

slave1
slave2
#datanode節點名,也能直接用ip

core-site.xml

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>file:/usr/local/hadoop/tmp</value>
    </property>
</configuration>
        

hdfs-site.xml

<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>

mapred-site.xml

mv    mapred-site.xml.template   mapred-site.xml

<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>

#這也可以不配,不影響啟動
#<property> #<name>mapreduce.jobhistory.address</name> #<value>master:10020</value> #</property> #<property> #<name>mapreduce.jobhistory.webapp.address</name> #<value>master:19888</value> #</property>

yarn-site.xml

<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

11.hdfs namenode -format

#在master中運行以上命令 主要是檢查標簽的錯誤

12.防火墻

在啟動集群之前需要關閉centos 的防火墻:
service iptables stop
chkconfig iptables off
關閉ubuntu防火墻  ufw disable 
查看防火墻狀態 ufw status 

scp -r /usr/local/hadoop hadoop@slave1:/usr/local/

scp -r /usr/local/hadoop hadoop@slave2:/usr/local/

這次傳一定不行,可以先傳到 /home/hadoop/Desktop 再轉到/usr/local

還要記得修改所有者 用chown -R

13.查看集群開啟狀態

hdfs dfsadmin -report

[hadoop@master Desktop]$ hdfs dfsadmin -report
Safe mode is ON
Configured Capacity: 38002491392 (35.39 GB)
Present Capacity: 25061294080 (23.34 GB)
DFS Remaining: 25061277696 (23.34 GB)
DFS Used: 16384 (16 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 11
Missing blocks (with replication factor 1): 6

-------------------------------------------------
Live datanodes (2):

Name: 192.168.10.114:50010 (slave1)
Hostname: slave1
Decommission Status : Normal
Configured Capacity: 19001245696 (17.70 GB)
DFS Used: 8192 (8 KB)
Non DFS Used: 6133903360 (5.71 GB)

14.wordcount

hdfs dfs mkdir /input
echo “hello,world.hello,hadoop”>>test1.txt
echo “hello,world.hello,hadoop”>>test2.txt
hdfs dfs  -put /usr/local/test*.txt /onput 
hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.6.5.jar wordcount /input /output

hadoop 官方文檔:

http://hadoop.apache.org/docs/r1.0.4/cn/

關於以上言論如果有各種問題,歡迎大家提出修改意見。

---恢復內容結束---

Hadoop2.7.3+Centos7