linux 配置
1:ip配置
執行ifconfig命令可以查看ip地址
虛擬機一般是動態分配ip,實際生產環境需要使用靜態ip,在/etc/sysconfig/network-scripts目錄下的ifcfg-eth0文件中修改ip信息,一般這個由專門的網絡管理人員會去修改。另外有可能會有多個網卡eth0,eth1等。
2:關閉防火牆
a:我使用SecureCRT鏈接我的虛擬機,SecureCRT使用SSH鏈接系統端口是22。如果開啓防火牆的話它會禁止使用22端口
c:後期使用java操作一些軟件時也需要關閉防火牆
b:關閉防火牆
使用root用戶登錄
service iptables status 查看防火牆狀態
service iptables start/stop 啓動關閉防火牆
chkconfig iptables off 重新啓動虛擬機時不再默認開啓防火牆,
chkconfig --list|grep iptables 如果全部爲off的話重啓時就不會開啓防火牆,只要有on系統就會開啓防火牆
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
3:修改主機名
我最好修改主機名並建立他與本機ip的對應關係,這樣後期如果ip地址發生變化我們的業務中只需要修改主機名與ip的對應關係即可。
hostname 查看主機名
修改/etc/sysconfig/network文件更改主機名,HOSTNAME=主機名
hostname 主機名 強制生效
4:建立ip主機名映射關係
修改/etc/hosts文件,建立ip與主機名的對應關係,例如:192.168.0.1主機名,執行ping 主機名,看映射是否生效
5:配置java環境變量
A:刪除/usr/local下所有的無用目錄rm -rf *,拷貝jdk-7u79-linux-x64.tar.gz到/usr/local
B:解壓:tar -zxvf jdk-7u79-linux-x64.tar.gz
C:在/etc/profile文件中配置java環境變量
export JAVA_HOME=/usr/local/jdk1.7.0_79
export PATH=.:$JAVA_HOME/bin:$PATH 注意.表示當前目錄
D:source /etc/profile,使剛剛修改環境變量生效
E:最後執行java –version,如下輸出證明成功
[root@shb01 local]# java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build24.79-b02, mixed mode)
6:SecureCRT連接問題
如果登錄報錯
The server has disconnected with anerror. Server message reads:
A protocol error occurred. Change ofusername or service not allowed: (shb01,ssh-connection) -> (root,ssh-connection)
需要修改一下配置,選項-> 會話選項 -> 連接 -> SSH2 -> 用戶名(可能沒有配置root,這樣也可以禁用服務器的ROOT登錄了)
7:windows平臺映射配置
修改C:\Windows\System32\drivers\etc\hosts文件,加入虛擬機ip地址與主機名的映射關係,通過web訪問hadoop時會用到。例如:192.168.79.128 主機名
8:環境變量
在/etc/profile/中配置hadoop的目錄便於我們後期使用
Export JAVA_HOME=/usr/local/java_7.9.0
exportHADOOP_HOME=/usr/local/hadoop-2.6.0
exportPATH=.:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
或
export PATH=.:$JAVA_HOME/bin:/usr/local/hadoop-2.6.0/bin:/usr/local/hadoop-2.6.0/sbin:$PATH
執行source/etc/profile
執行java –version查看jdk是否配置成功
9:ssh
開啓sshd服務
service sshdstatus
service sshd start
在啓動hdfs時會提示我們輸入密碼,這樣我們需要配置ssh免登錄
執行如下命令
ssh-keygen -t rsa 產生密鑰,提示時全部回車
ssh-copy-id -i shb01 提示時輸入密碼
ssh shb01 如果正常看能不能登錄
[root@shb01 hadoop-2.6.0]# ssh shb01
Last login: Wed Aug 10 01:42:12 2016 from 192.168.79.1
[root@shb01 ~]# exit
logout
Connection to shb01 closed.
[root@shb01 hadoop-2.6.0]#
設置完畢後再啓動hdfs後就不需要輸入登錄密碼了
Hdfs僞分佈安裝
1:hadoop目錄結構
a:解壓縮安裝包tar -zxvf hadoop-2.6.0.tar.gz
b:目錄結構
hadoop程序存放目錄:/usr/local/Hadoop-2.6.0
etc/hadoop目錄存放的是hadoop的配置文件
bin存放框架組件的管理腳本hdfs,yarn
sbin存放框架本身的命令如start,stop
lib/native存放操作系統相關的鏈接文件
share/hadoop存放框架運行需要的jar
以下目錄需提前建,mkdir–p /usr/local/hadoop_repo/name
nameNode存儲數據目錄:/usr/local/hadoop_repo/name
dataNode存儲數據目錄:/usr/local/hadoop_repo/data
secondaryNameNode存儲目錄:/usr/local/hadoop_repo/namesecondary
日誌文件目錄:/usr/local/hadoop_repo/logs
臨時文件目錄:/usr/local/hadoop_repo/tmp
2:基本配置文件
安裝Hadoop主要注意修改以下幾個配置文件,/usr/local/hadoop-2.6.0/etc/hadoop目錄下。
A:core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://shb100:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop_repo/tmp</value>
</property>
<!--
<property>
<name>fs.trash.interval</name>
<value>1440</value>
</property>
-->
</configuration>
B:hdfs-site.xml ,這裏配置namenode,datanode,secondarynamenode,均在一個節點shb100上
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:///usr/local/hadoop_repo/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:///usr/local/hadoop_repo/data</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>file:///usr/local/hadoop_repo/namesecondary</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>shb100:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
</property>
</configuration>
C:mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>shb100:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>shb100:19888</value>
</property>
<property>
<name>yarn.app.mapreduce.am.staging-dir</name>
<value>/history</value>
</property>
<property>
<name>mapreduce.jobhistory.done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done</value>
</property>
<property>
<name>mapreduce.jobhistory.intermediate-done-dir</name>
<value>${yarn.app.mapreduce.am.staging-dir}/history/done_intermediate</value>
</property>
</configuration>
D:yarn-site.xml,yarn.resourcemanager.hostname的value改爲我們的主機名,均在shb100上
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>shb100</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>shb100:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>shb100:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>shb100:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>shb100:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>shb100:8088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
</configuration>
E:hadoop-env.sh
在文件後面增加,注意不要重複
export JAVA_HOME=/usr/local/jdk1.7.0_79
export HADOOP_LOG_DIR=/usr/local/hadoop_repo/logs
export HADOOP_ROOT_LOGGER=DEBUG,DRFA
F:yarn-env.sh
在文件後面增加
export JAVA_HOME=/usr/local/jdk1.7.0_79
export YARN_LOG_DIR=/usr/local/hadoop_repo/logs
export YARN_ROOT_LOGGER=DEBUG,DRFA
G:slaves,在文件中配置我們的主機名。shb100
H:log4j.properties
hadoop.log.dir=/usr/local/hadoop_repo/logs
3:hdfs格式化並啓動hdfs
在bin目錄執行hadoopnamenode –format或hdfs namenode -format命令格式化,但是此命令只能執行一次不能多次格式化。如果成功可以在日誌中看到成功的提示。
執行
執行start-dfs.sh啓動hdfs,關閉命令stop-dfs.sh
啓動成功後執行jps查看namenode,datanode,secondarynamenode,resourcemanager,nodemanager是否已經啓動
[root@shb100sbin]# jps
27875 Jps
27365SecondaryNameNode
27123 NameNode
27600NodeManager
27512ResourceManager
27209 DataNode
在logs目錄下可以看到namenode,datanode,secondarynamenode,resourcemanager,nodemanager的啓動日誌
4:web訪問
在瀏覽器地址欄中輸入http://shb01:50070查看是否能夠如下顯示,也可以通過ip訪問。
上面的例子我的主機名是shb100,shb01是之前的截圖但配置方式一樣。