almost 3 years ago

這次練習用Hadoop2.6來安裝
安裝後看起來也可以正常跑在x64上,因為沒有出現錯誤提示
OS:CentOS 7
JDK:8u25
Hadoop:2.6

OS環境設定

#檢視Selinux狀態
sestatus
#關閉Selinux神奇的一句解決
sed -i 's/enforcing/disabled/g' /etc/selinux/config /etc/selinux/config
#重開機
reboot

#ps.通常是這麼關Selinux的
vi /etc/sysconfig/selinux
#把SELINUX=enforcing 改成 SELINUX=disabled

關掉防火牆

CentOS7
# Check the Status of Firewalld

systemctl status firewalld
# Stop Firewalld

systemctl stop firewalld
# Disable Firewalld

systemctl disable firewalld

vi /etc/selinux/config
# change

SELINUX=disabled

reboot

為了之後的HBase

vi /etc/security/limits.conf
#檔尾增加以下兩句
hadoop - nofile 32768
hadoop soft/hard nproc 32000

vi /etc/pam.d/login
#檔尾增加這句
session required pam_limits.so

修改SSH認證

vi /etc/ssh/sshd_config
#把以下兩個註解拿掉
RSAAuthentication yes
PubkeyAuthentication yes

配置Host

vi /etc/hosts
#老師說要從檔頭增加,但是我之前試是沒差
192.168.200.131 hadoop1

#另一種方法,要是覺得從檔尾增加沒差的話可以用cat >> EOF比較快
cat >> /etc/hosts << EOF
192.168.200.131 hadoop1
EOF

增加用戶組

#增加組 -g 是指定組的編號,避免在一些文件系統有問題ex:nfs
groupadd -g 1000 hadoop
useradd -u 2000 -g hadoop hadoop
passwd hadoop
#建立應用程式資料夾
mkdir -p /app/hadoop

軟體安裝

安裝Java

手動配置jdk

#安裝必要工具
yum -y install wget openssh-clients

#下載JDK8u25
wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u25-b17/jdk-8u25-linux-x64.tar.gz"

#手動配置方法
mkdir /usr/java

tar -zxvf jdk-8u25-linux-x64.tar.gz -C /usr/java

使用rpm安裝jdk

#或是用rpm安裝
rpm -ivh jdk-8u25-linux-x64.rpm
#檢視安裝目錄
whereis java

安裝scala

cd /app
wget http://downloads.typesafe.com/scala/2.11.4/scala-2.11.4.tgz
tar zxf scala-2.11.4.tgz
rm -f scala-2.11.4.tgz
mv scala-2.11.4 scala2114
chown -R root:root scala2114/

安裝hadoop

cd /app/hadoop
wget http://apache.stu.edu.tw/hadoop/common/hadoop-2.6.0/hadoop-2.6.0.tar.gz
tar zxf hadoop-2.6.0.tar.gz
rm -f hadoop-2.6.0.tar.gz
mv hadoop-2.6.0 hadoop260

hadoop環境文件

DataNode名稱

cd hadoop260/etc/hadoop/
#使用EOF直接覆蓋
cat > slaves << EOF
hadoop1
EOF

HDFS的訪問接口

cat > core-site.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://hadoop1:8000</value>
   </property>
</configuration>
EOF

HDFS的文件保存目錄

cat > hdfs-site.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
   <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:///app/hadoop/hadoop260/mydata/name</value>
   </property>
   <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:///app/hadoop/hadoop260/mydata/data</value>
   </property>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>
</configuration>
EOF

設置mapreduce框架採用yarn

cat > mapred-site.xml << EOF
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <property>
      <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
</configuration>
EOF

端口的配置

老師只有說這是一些端口的配置
(因為有一些環境變數所以要用vi)

vi yarn-site.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <property>
      <name>yarn.resourcemanager.hostname</name>
      <value>hadoop1</value>
   </property>
   <property>
      <name>yarn.resourcemanager.address</name>
      <value>${yarn.resourcemanager.hostname}:8032</value>
   </property>
   <property>
      <name>yarn.resourcemanager.scheduler.address</name>
      <value>${yarn.resourcemanager.hostname}:8030</value>
   </property>
   <property>
      <name>yarn.resourcemanager.webapp.address</name>
      <value>${yarn.resourcemanager.hostname}:8088</value>
   </property>
   <property>
      <name>yarn.resourcemanager.webapp.https.address</name>
      <value>${yarn.resourcemanager.hostname}:8090</value>
   </property>
   <property>
      <name>yarn.resourcemanager.resource-tracker.address</name>
      <value>${yarn.resourcemanager.hostname}:8031</value>
   </property>
   <property>
      <name>yarn.resourcemanager.admin.address</name>
      <value>${yarn.resourcemanager.hostname}:8033</value>
   </property>
   <property>
      <name>yarn.nodemanager.aux-services</name>
      <value>mapreduce_shuffle</value>
   </property>
</configuration>

編輯Hadoop的運行環境

vi hadoop-env.sh
#主要是修改export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/java/jdk1.8.0_25

變更擁有者

chown -R hadoop:hadoop /app/hadoop/

OS環境變數配置

vi /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_25
export JRE_HOME=/usr/java/jdk1.8.0_25/jre
export SCALA_HOME=/app/scala2114
export HADOOP_COMMON_HOME=/app/hadoop/hadoop260
export HADOOP_CONF_DIR=/app/hadoop/hadoop260/etc/hadoop
export YARN_CONF_DIR=/app/hadoop/hadoop260/etc/hadoop
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_COMMON_HOME}/bin:${HADOOP_COMMON_HOME}/sbin:$PATH

更新環境變數

source /etc/profile
#測試java
java -version
#測試scala
scala -version
#關機
shutdown -h now

這樣就完成一台樣版機也是偽分散式安裝的基礎安裝

SSH無密碼登入

su - hadoop
#生成公鑰
ssh-keygen -t rsa

#檢視公鑰是否生成,應該要有這兩個檔id_rsa、id_rsa.pub
cd ~/.ssh
ll

#把公鑰提交給對方好進行無密碼登入(如果是叢集則把hadoop1換成其他主機繼續進行)
ssh hadoop1 cat /home/hadoop/.ssh/id_rsa.pub >> authorized_keys

#在目錄下會加authorized_keys資料夾,但是要變更權限600只有擁有者有讀跟寫的權限
chmod 600 authorized_keys

#在叢集的話利用scp將做好的authorized_keys直接複製到其他主機
scp authorized_keys hadoop@hadoop2:/home/hadoop/.ssh/
#還有這檔案就可以不用再做無密碼登入
scp known_hosts hadoop@hadoop2:/home/hadoop/.ssh/

#測試無密碼登入
ssh hadoop1 date

以hadoop用戶執行初始化

cd /app/hadoop/hadoop260
#格式化
bin/hdfs namenode -format

#看到成功訊息後檢視可以看到name資料夾已被建立
ll mydata

#啟動HDFS
sbin/start-dfs.sh
#老師建議HDFS跟YARN分開啟動,若是HDFS內有大量資料會啟動安全檢查(耗時),等安全檢查完成後再啟動YARN比較安全

#測試
bin/hdfs dfs -ls /

bin/hdfs dfs -mkdir -p /dataguru/test

bin/hdfs dfs -put LICENSE.txt /dataguru/test/

啟動Yarn

sbin/start-yarn.sh

停止所有服務

sbin/stop-all.sh

檢視Yarn是否啟動正常

jps

NameNode應該要有
ResourceManager
NodeManager
NameNode
DataNode
SecondaryNameNode

DataNode上應該要有
DataNode
NodeManager

使用網頁檢視
檢視HDFS
http://hadoop1:50070
檢視Yarn
http://hadoop1:8080

參考
Hadoop MapReduce Next Generation - Cluster Setup

← slick 自動生成跟使用方法 Spark teaching (2) -Spark1.2 installation →
 
comments powered by Disqus