在参考了网上各位大牛的文档后,终于在64位系统上完成了hadoop的安装。遇到了各种问题,google了两天安装好了(以前安装过hadoop的32位版本,所以这次用的时间短一点,话说32位的我搞了差不多一个星期)那叫一个痛苦啊!
第一步:安装java7
删除openjdk
sudo apt-get purge openjdk*
安装jdk
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
安装后 java位于 、usr/lib/jvm 下
第二步:安装 ssh
安装openssh-server,openssh-client默认自带
sudo apt-get install openssh-server
添加用户组
sudo addgroup hadoop
添加用户 并添加到hadoop组
sudo adduser --ingroup hadoop hadp
将用户hadp添加到sudo组,以便使用sudo命令
sudo adduser hadp sudo
切换到 hadp
su hadp
生成ssh无密码连接
ssh-keygen -t rsa -P ""
生成如下信息:
your identification has been saved in /home/hduser/.ssh/id_rsa
your public key has been saved in /home/hduser/.ssh/id_rsa.pub
切换到.ssh目录,并将上一步生成的public key追加到authorized_keys
cd ~/.ssh
cat id_rsa.pub >> authorized_keys
通过ssh连接本机,验证ssh是否可以无密码登陆
ssh localhost
退出ssh与本机的连接
exit
下载hadoop,因为hadoop编译好的是运行于32位操作系统,所以要重新编译
hadoop-2.2.0-src.tar.gz
切换到Downloads文件夹,下载的文件默认在这里
cd Downloads
解压hadoop文件
tar -xvf hadoop-2.2.0-src.tar.gz
安装编译hadoop所需要的包
sudo apt-get install g++ autoconf automake libtool cmake zlib1g-dev pkg-config libssl-dev
安装protobuf
下载地址 https://code.google.com/p/protobuf/downloads/list
解压 protobuf-2.5.0.tar.gz
解压后出现protobuf-2.5.0文件夹,进入此文件夹,并安装
cd protobuf-2.5.0
./configure
make
make check
make install
将export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib 添加到.bashrc文件中,步骤如下:
1.切换到根目录
cd ~
2.编辑.bashrc
sudo vim .bashrc
添加export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib到文件最后
检查 protobuf的版本信息是否为2.5.0
protoc --version
输出信息为 libprotoc 2.5.0 则说明安装成功
安装maven
sudo apt-get install maven
下面就是要 编译hadoop了
切换到hadoop文件夹
cd Downloads/hadoop-2.2.0.src
修改hadoop-project文件夹下的pom.xml
cd hadoop-project
sudo vim pomxml
找到
<dependency>
<groupId>org.mortbay.jetty</groupId>
在<dependency>标签上方添加
<dependency>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-util</artifactId>
<scope>test</scope>
</dependency>
编译
mvn package -Pdist,native -DskipTests -Dtar
如果编译成功的话 会在 hadoop-dist文件夹下的target文件夹下 出现 hadoop-2.2.0.tar.gz文件
下面开始正式安装hadoop
将hadoop-2.2.0.tar.gz文件拷贝到Downloads文件夹下解压
tar -xvf hadoop-2.2.0.tar.gz
将文件拷贝到 /usr/local下
sudo mv hadoop-2.20 /usr/local
切换到local下
cd /usr/local
查看hadoop文件夹是否移动到local下
ls
下面修改配置文件
切换到根目录,修改启动环境
cd ~
sudo vim .bashrc
在文件末尾添加如下内容
export JAVA_HOME=/usr/lib/jvm/java-7-oracle/
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_CONF_DIR=$HADOOP_INSTALL/etc/hadoop
切换到hadoop配置文件夹
cd /usr/local/hadoop/etc/hadoop
修改hadoop环境变量
sudo vim hadoop-env.sh
找到 export JAVA_HOME
修改为export JAVA_HOME=/usr/lib/jvm/java-7-oracle
找到export HADOOP_CONF_DIR
修改为export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
修改core-site.xml
在<configuration>标签内添加如下内容
<property>
<name>fs.
default
.name</name>
<value>hdfs:
//localhost:9000</value>
</property>
修改yarn-sit.xml
sudo vim yarn-sit.xml
在<configuration>标签内添加如下内容
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce_shuffle.
class
</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
重名名mapred-site.xml.template为 mapred-site.xml
sudo mv mapred-site.xml.template mapred-site.xml
修改 mapred-site.xml
sudo vim mapred-site.xml
在<configuration>标签内添加如下内容
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>dfs.replication</name>
<value>
1
</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hduser/mydata/hdfs/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hduser/mydata/hdfs/datanode</value>
</property>
切换到根目录
cd ~
创建hdfs-site.xml文件中用到的两个文件夹
$ mkdir -p mydata/hdfs/namenode
$ mkdir -p mydata/hdfs/datanode
格式化namenode
hdfs namenode -format
启动hadoop,hadoop 的启动命令重写了,变成了下面的两个命令的组合,如果还输入start-all.sh 会给出提示
先输入start-dfs.sh