阿里雲虛擬機器搭建Hadoop-2.6.0-cdh5.7.1安裝詳解(偽分散式環境)
阿新 • • 發佈:2019-01-11
首先先搭配安全組
開啟映象後輸入以下內容:
重要: yum -y install lrzsz
HOSTNAME=(自己的主機名字) hostname $HOSTNAME echo "$(grep -E '127|::1' /etc/hosts)">/etc/hosts echo "$(ifconfig eth0|grep inet|awk -F'[ :]' '{print $13}') $(hostname)">>/etc/hosts sed -i "s/^HOSTNAME.*$/HOSTNAME=$HOSTNAME/g" /etc/sysconfig/network
編譯工作需要以下環境支援:
jdk1.7(
1.8也是可以的 有一個包衝突了 改下hadoop-annotations下的jdk版本指向1.8就行了
)
apache-maven-3
protobuf-2.5.0
findbugs-1.3.9
gcc gcc-c++ make cmake
openssl zlib ncurses snappy bzip2
lzo lzop autoconf automake
PS:將所有檔案上傳到 /tmp 目錄下
配置jdk1.7:
mkdir /usr/java cd /usr/java/ tar -xf /tmp/server-jre-7u80-linux-x64.tar.gz chown root: /usr/java/jdk1.7.0_80/ -R echo 'export JAVA_HOME=/usr/java/jdk1.7.0_80'>>/etc/profile
配置maven:
cd /usr/local/
yum -y install unzip
unzip /tmp/apache-maven-3.3.9-bin.zip
chown root: /usr/local/apache-maven-3.3.9 -R
echo 'export MAVEN_HOME=/usr/local/apache-maven-3.3.9'>>/etc/profile
echo 'export MAVEN_OPTS="-Xms256m -Xmx512m"'>>/etc/profile
編譯安裝protobuf:
yum -y install gcc gcc-c++ make cmake cd /tmp/ tar -xf protobuf-2.5.0.tar.gz cd protobuf-2.5.0 ./configure --prefix=/usr/local/protobuf make && make install echo 'export PROTOC_HOME=/usr/local/protobuf'>>/etc/profile
配置findbugs:
cd /usr/local/
unzip /tmp/findbugs-1.3.9.zip
chown root: findbugs-1.3.9 -R
echo 'export FINDBUGS_HOME=/usr/local/findbugs-1.3.9'>>/etc/profile
最終PATH變數和其他依賴包的安裝
echo "export PATH=\
\$FINDBUGS_HOME/bin:\
\$PROTOC_HOME/bin:\
\$MAVEN_HOME/bin:\
\$JAVA_HOME/bin:\
\$PATH">>/etc/profile
source /etc/profile
java -version
mvn -version
protoc --version
findbugs -version
# 測試java和maven以及protoc和findbugs是否配置成功
yum install -y openssl openssl-devel \
svn ncurses-devel zlib-devel libtool \
snappy snappy-devel bzip2 bzip2-devel \
lzo lzo-devel lzop autoconf automake \
openssh-clients
編譯hadoop2.6-cdh5.7.1的安裝包
cd /tmp
tar -xf hadoop-2.6.0-cdh5.7.1-src.tar.gz
cd hadoop-2.6.0-cdh5.7.1
mvn clean package -Pdist,native -DskipTests -Dtar
# 該步需要通過網路下載和編譯,耗時較長
# 引數解釋:
# clean package 清除原來的包
# -Pdist,native 將生成的包放入本地的dist目錄
# -DskipTests 忽略測試
# -Dtar 生成tar包
# 編譯生成 hadoop-2.6.0-cdh5.7.1.tar.gz
# 目錄:/tmp/hadoop-2.6.0-cdh5.7.1/hadoop-dist/target
# 可以將編譯生成的tar包儲存下來,就不用再次編譯了。
(注意:進入 /tmp/hadoop-2.6.0-cdh5.7.1/hadoop-dist/target
輸入mv 將檔案移出)
編譯出來的安裝包的部署不在需要findbugs和maven以及protobuf,只需要jdk即可。
可以重新克隆一臺實驗機,然後配置jdk,也可以清掉編譯機器的環境進行部署:
cd /usr/local/
rm -rf findbugs-1.3.9 apache-maven-3.3.9 protobuf
sed -i '/^export MAVEN_HOME=/d' /etc/profile
sed -i '/^export MAVEN_OPTS=/d' /etc/profile
sed -i '/^export FINDBUGS_HOME=/d' /etc/profile
sed -i '/^export PROTOC_HOME=/d' /etc/profile
sed -i '/^export PATH=/d' /etc/profile
echo 'export PATH=$JAVA_HOME/bin:$PATH'>>/etc/profile
source /etc/profile
配置HDFS
新增hadoop使用者,配置sudo許可權:
useradd hadoop
echo hadoop|passwd --stdin hadoop
sed -i 's/^root.*/&\nhadoop ALL=(ALL) ALL/g' /etc/sudoers
安裝編譯生成的hadoop包:
cd /usr/local tar -xf /tmp/hadoop-2.6.0-cdh5.7.1.tar.gz chown hadoop: hadoop-2.6.0-cdh5.7.1 -R ln -s hadoop-2.6.0-cdh5.7.1/ hadoop cd hadoop echo 'export HADOOP_HOME=/usr/local/hadoop'>>/etc/profile echo 'export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH'>>/etc/profile
source /etc/profile
切換到hadoop使用者,配置ssh互信
su - hadoop
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
ssh -o StrictHostKeyChecking=no localhost date
ssh -o StrictHostKeyChecking=no 127.0.0.1 date
ssh -o StrictHostKeyChecking=no $(hostname) date
配置HDFS:
cd /usr/local/hadoop vi etc/hadoop/core-site.xml # 在<configuration>這裡新增配置</configuration> # 新增完配置之後如下: <configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop001:9000</value> </property> </configuration> vi etc/hadoop/hdfs-site.xml # 在<configuration>這裡新增配置</configuration> # 新增完配置之後如下: <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop001:50090</value> </property> <property> <name>dfs.namenode.secondary.https-address</name> <value>hadoop001:50091</value> </property> </configuration> cd /usr/local/hadoop/etc/hadoop echo $(hostname)>slaves
# 修改hadoop的slave的解析地址
格式化namenode,啟動HDFS:
cd /usr/local/hadoop/etc/hadoop/
sed -i "s#export JAVA_HOME=.*#export JAVA_HOME=$JAVA_HOME#g" hadoop-env.sh
hdfs namenode -format
start-dfs.sh
程序狀態檢視:
jps
# 檢視NameNode、SecondaryNameNode和DataNode是否啟動
# 網頁訪問:
# http://自己IP:50070
偽分散式配置MR和Yarn
MR配置部署:
cd /usr/local/hadoop/etc/hadoop
cp -av mapred-site.xml{.template,}
vi mapred-site.xml
# 在<configuration>這裡新增配置</configuration>
# 新增完配置之後如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
YARN配置部署:
vi yarn-site.xml
# 在<configuration>這裡新增配置</configuration>
# 新增完配置之後如下:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
啟動:
start-yarn.sh
設定開機自動啟動HDFS和YARN:
echo "/bin/su - hadoop -c '/usr/local/hadoop/sbin/start-all.sh'">>/etc/rc.local
來自@若澤大資料