本次环境一共三台服务器,JAVA使用的版本是jdk1.6.0_45,zookeeper-3.4.5,hadoop-2.0.0,hive-0.10.0,hbase-0.94.6
对于hadoop来说,在hdfs看来节点分为namenode、datanode。namenode只有一个,datanode可以是很多;在mapreduce 看来节点分为jobtracker、tasktracker,jobtracker只有一个,tasktracker有多个。我这里是将namenode和jobtracker 部署在同一节点上,datanode和tasktracker部署在其它节点上,
1.安装jdk,上传到/root目录下,执行
chmod a+x jdk-6u14-linux-x64.bin
./jdk-6u14-linux-x64.bin
将安装目录移动到/app目录下
mkdir /app
mv jdk1.6.0_45 /app
建立链接:
mkdir -p /app/java/; (-p确保目录名称存在,如果目录不存在的就新创建一个)
ln -sf /app/jdk1.6.0_45 /app/java/latest/
(-f:链结时先将与dist 同档名的档案删除-s:进行软链结(symbolic link))
配置JAVA的环境变量
vi /etc/profile
添加如下内容:
export JAVA_HOME=/app/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
让添加的环境变量生效执行如下命令:
source /etc/profile; java –version
2.配置网络
以root账户登录每台服务器,并执行如下操作:
vi /etc/hosts
添加如下内容:
192.168.59.178 vmtmstorm01
192.168.59.173 monitor04
192.168.59.170 monitor01
注:在所有服务器的/etc/hosts文件中添加如上内容;
同时,修改windows下该文件,使得个人的笔记本也能识别主机名c:\windows\system32\drivers\etc\hosts 中添加如上内容。
3.配置SSH互信
SSH互信:在目标机器上,预先设置好经过认证的key文件,当需要访问目标机器时,目标机器通过key文件,对访问者进行自动认证,从而实现互信。
在任意一台服务器上,以bdp账号登陆(密码123)
执行如下命令,生成bdp账号的密钥对(这里是主机执行)
/usr/bin/ssh-keygen -t rsa
cd ~/.ssh/
cp id_rsa.pub authorized_keys
chmod 600 authorized_keys
将~/.ssh目录拷贝覆盖到集群其他节点的bdp用户目录下
scp -r .ssh/ 192.168.59.173:~/
scp -r .ssh/ 192.168.59.170:~/
注意,要确保/etc/ssh/sshd_config 的RSAAuthentication和PubkeyAuthentication为yes,(打开认证方式)改好后重启ssh服务/sbin/service sshd restart
执行 ssh `hostname` 测试是否配置成功
4.操作系统参数优化(每台机器,且以root操作)
4.1防火墙配置:关闭selinux / iptables (每台机器,root权限)
?关闭iptables
–停止服务:service iptables stop
–关闭服务自动启动:chkconfig --del iptables
?关闭selinux
–修改/etc/selinux/config里
SELINUX=disabled
4.2 关闭swapiness,减少swap使用倾向 (每台机器,root权限)
?当系统有swap时会很慢,所以让系统最大限度的使用物理内存(默认vm.swappiness = 60)
?修改/etc/sysctl.conf,增加一行 vm.swappiness = 0
echo "vm.swappiness = 0" >> /etc/sysctl.conf
?动态生效 sysctl -w vm.swappiness=0 ( -w临时改变某个指定参数的值)
?查看是否生效 cat /proc/sys/vm/swappiness
(/proc 可以在该目录下获取系统信息,这些信息是在内存中由系统自己产生的)注:sysctl.conf是一个用于在系统运作中查看及调整系统参数的工具
4.3 最大打开文件数和最大进程数limits.conf (每台机器,root权限)
?Linux默认是1024,对于分布式文件系统太小,Hadoop有可能会报错误
?执行 ulimit -a,查看open files项和max user processes项
?执行下面脚本,修改这两项值
?echo "* - nofile 1000000" >> /etc/security/limits.conf
?echo "YOUR_USER_NAME - nproc 1000000">> /etc/security/limits.conf
?sysctl –p
?重启服务器,执行 ulimit -a 查看是否修改成功
?在/etc/security/limits.conf中重复出现了多个YOUR_USER_NAME - nproc 1000000
4.4 屏蔽文件访问时间,优化/etc/fstab参数 (每台机器,root权限)(注:未配置)
? HDFS存储着海量文件,如果屏蔽底层Linux的文件访问时间,会提高HDFS的IO
?修改/etc/fstab,添加如下noatime,nodiration,例如
LABEL=/data1 /data1 ext4 defaults,noatime,nodiratime 1 2
LABEL=/data2 /data2 ext4 defaults,noatime,nodiratime 1 2
LABEL=/data3 /data3 ext4 defaults,noatime,nodiratime 1 2
?重新mount或重启机器使之生效
?注:由于我们使用的是虚拟机,可以不配置该参数
4.5 配置ntp时间同步 (每台机器,root权限)
?在Hadoop集群中,要求服务器之间的时间同步
?选一台服务器作为NTP server, 修改 /etc/ntp.conf 如下,
restrict default nomodify
server 192.168.59.178
fudge 192.168.59.178 stratum 8
并重启 service ntpd restart
?在集群其他节点上,首先关闭NTP
service ntpd stop
?执行/usr/sbin/ntpdate NTPSERVER_IP 进行同步,执行 date 查看是否正确
?再cron里加入同步命令:执行 crontab –e (-e:执行文字编辑器来设定时程表,内定的文字编辑器是 VI,),添加如下内容,使其每小时同步一次
测试情况:/etc/ntp.conf文件下
192.168.59.178:
restrict default nomodify
server 192.168.59.178
fudge 192.168.59.178 stratum 8
192.168.59.173:
server 192.168.59.178
fudge 192.168.59.178 stratum 10
192.168.59.173:无修改
结果:三台机器时间已同步
补充:
crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
说明:
crontab 是用来让使用者在固定时间或固定间隔执行程式之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设定自己的时程表。
参数:
-e:执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数
来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r:删除目前的时程表
-l:列出目前的时程表
时程表的格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余类推
当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类推
5.Zookeeper安装
5.1 ZK配置:单节点配置
在${ZOOKEEPER_HOME}/conf/zoo.cfg ( /app/zookeeper-3.4.5-cdh4.3.0/conf/zoo.cfg)中做如下定义
tickTime=5000
dataDir=/app/zookeeper-3.4.5-cdh4.3.0/data (/tmp/zookeeper /tmp用来存放不同程序执行时产生的临时文件)clientPort=2181
配置参数
a)tickTime:每个tick的时间长度(毫秒),是zk中最小时间单元。
b)dataDir:内存快照(snapshot)和transaction log的存储目录
c)clientPort :用于服务client连接的端口号
5.2 ZK配置:多节点配置(为3个节点的集群)
在${ZOOKEEPER_HOME}/conf/zoo.cfg ( /app/zookeeper-3.4.5-cdh4.3.0/conf/zoo.cfg)中做如下定义tickTime=5000
dataDir=/app/zookeeper-3.4.5-cdh4.3.0/data
clientPort=2181
initLimit=10
syncLimit=5
server.1=192.168.59.178:4888:5888
server.2=192.168.59.173:4888:5888
server.3=192.168.59.170:4888:5888
?配置参数
–initLimit: 刚选举出leader后,followers 与leader 连接和同步(connect/sync)的时间周期: initLimit*tickTime。
–syncLimit:正常工作状态下,允许followers与leader同步(sync)的时间,当follower与leader相差太大的话,该follower将被排除出集群。
–server.x=[hostname]:nnnnn[:nnnnn]第一个端口用于follower与leader连接,第二个端口用于leader election。
同时在dataDir目录下创建一个名为myid的文件,里面写入1或者2或者3,该值与zoo.cfg中的“server.#=…”的#
一致
需要在每个zookeeper上均执行 bin/zkServer.sh start,该集群才可以正常工作
?启动zookeeper服务: bin/zkServer.sh start
?停止zookeeper服务:bin/zkServer.sh stop
由于HBase和Hadoop依赖于ZK,所以在停止ZK时需要首先关闭HBase和Hadoop。
?检查Zookeeper运行状态:
bin/zkCli.sh -server 172.168.0.1:2181
或者直接运行 bin/zkCli.sh
在shell中运行help来查看可用命令
[zk: localhost:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd args
connect host:port
get path [watch]
ls path [watch]
set path data [version]
rmr path
delquota [-n|-b] path
quit
printwatches on|off
create [-s] [-e] path data acl
stat path [watch]
close
ls2 path [watch]
history
listquota path
setAcl path acl
getAcl path
sync path
redo cmdno
addauth scheme auth
delete path [version]
setquota -n|-b val path
6 Hadoop安装
6.1 Hadoop安装路径
/app/hadoop-2.0.0-cdh4.3.0
6.2 配置Hadoop的环境变量
vi /etc/profile
添加如下内容:(192.168.59.178情况)
export HADOOP_HOME=/app/hadoop-2.0.0-cdh4.3.0
export PATH=.:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH 让添加的环境变量生效执行如下命令:
source /etc/profile;
6.3 设置Hadoop需要的环境变量
添加Hadoop需要的环境变量
在$HADOOP_HOME/etc/hadoop-mapreduce1目录下的hadoop-env.sh中设置Hadoop需要的环境变量,其中JAVA_HOME是必须设定的变量export JAVA_HOME=/app/java/latest
修改slaves文件
在$HADOOP_HOME/etc/hadoop-mapreduce1目录下的slaves
添加vmtmstorm01 monitor04 monitor01(包含:所有tasktracker节点的IP/Hostname列表)masters文件
在$HADOOP_HOME/etc/hadoop-mapreduce1目录下的masters内容:localhost
修改core-site.xml文件
修改hdfs-site.xml文件
修改mapred-site.xml文件
The following symbol, if present, will be interpolated: @taskid@ is replaced
by current TaskID. Any other occurrences of '@' will go unchanged.
For example, to enable verbose gc logging to a file named for the taskid in
/tmp and to set the heap maximum to be a gigabyte, pass a 'value' of:
-Xmx1024m -verbose:gc -Xloggc:/tmp/@taskid@.gc
The configuration variable mapred.child.ulimit can be used to control the
maximum virtual memory of the child processes.
将该配置拷贝至所有tasktracker节点
将/app/ hadoop-2.0.0-cdh4.3.0目录拷贝覆盖到集群其他节点, 保证目录结构一致
scp -r /app/hadoop-2.0.0-cdh4.3.0 192.168.59.173:/
scp -r /app/hadoop-2.0.0-cdh4.3.0 192.168.59.170:/
6.4 启动之前,我们先要格式化namenode /app/ hadoop-2.0.0-cdh4.3.0下
仅在首次启动HDFS前执行
在NameNode执行
bin/hadoop namenode -format
6.5 MapReduce服务启停:启停命令/app/ hadoop-2.0.0-cdh4.3.0下
?启动MR集群
–bin-mapreduce1/start-mapred.sh 会自动ssh到slaves配置的机器上启动DataNode
?停止MR集群
–bin-mapreduce1/stop-mapred.sh 会自动ssh到slaves配置的机器上停止DataNode
?也可以启停单个服务
–Jobtracker
?启动: bin-mapreduce1/hadoop-daemon.sh start jobtracker
?停止: bin-mapreduce1/hadoop-daemon.sh stop jobtracker
–启动tasktracker
?bin-mapreduce1/hadoop-daemon.sh start tasktracker
bin-mapreduce1/hadoop-daemon.sh stop tasktracacker
6.6 MapReduce服务启停:启停状态检查
通过Web查看: http://HOSTNAME_YOUR_JOBTRACKER:50030/
http://192.168.59.178:50030/jobtracker.jsp查看启动状态
6.7设软链接
ln –sf /app/ hadoop-2.0.0-cdh4.3.0 /home/bdp/ hadoop-2.0.0-cdh4.3.0
7 Hbase安装
7.1解压软件并安装
tar -zxvf hbase-0.94.6-cdh4.3.0.tar.gz
安装在 /app/ hbase-0.94.6-cdh4.3.0
7.2 cd到hbase-0.94.6-cdh4.3.0配置目录下
cd hbase-0.94.6-cdh4.3.0/conf/
配置regionservers,加入集群的主机名
vmtmstorm01
monitor04
7.3配置hbase环境变量
vi hbase-env.sh
export JAVA_HOME=/app/java/latest (此处配置当前的JAVA_HOME路径)
export HBASE_MANAGES_ZK=false
7.4配置hbase-site.xml
vi hbase-site.xml
?配置hbase.rootdir
?配置zookeeper集群
//此处配置系统的zookeeper集群
7.4 设软链接
ln –sf /app/ hbase-0.94.6-cdh4.3.0 /home/bdp/ hbase-0.94.6-cdh4.3.0
8 Hive安装
8.1安装前的准备工作
1).安装JDK1.6
2).安装Hadoop-1.0.4
3).安装MySQL5.x (项目路径: /var/lib/mysql )
8.2 Hive安装路径
/app/hive-0.10.0-cdh4.3.0
8.3 配置Hive的环境变量
vi /etc/profile
添加如下内容:(192.168.59.178情况)
export HIVE_HOME=/app/hive-0.10.0-cdh4.3.0
export PATH=.:$HIVE_HOME/bin:$HADOOP_HOME/bin:$JAVA_HOME/bin:$PATH 让添加的环境变量生效执行如下命令:
source /etc/profile;
8.4 设置Hive需要的环境变量 (/app/hive-0.10.0-cdh4.3.0/conf)
解压tar zxf hive-0.10.0-cdh4.3.0.tar.gz
修改hive-env.sh文件
指定HADOOP_HOME及HIVE_CONF_DIR的路径如下:
HADOOP_HOME=/app/hadoop-2.0.0-cdh4.3.0
export HIVE_CONF_DIR=/app/hive-0.10.0-cdh4.3.0/conf
修改hive-site.xml文件
查看MySQL驱动mysql-connector-java-5.1.7-bin.jar是否存在于hive-0.10.0-cdh4.3.0/lib目录下,若没有拷贝到其下
Ganglia依赖以下包:302页
zlib-1.2.2-4
libpng-1.2.1-6
freetype2-2.1.7-2
libart_lgpl-2.3.16-1
rrdtool-1.2.11
perl
上传的数据存放在哪个目录下
/tmp/bdp/hive_job_log_114f6655-01c9-46b9-9238-40d185b1542f_1840308181.txt
cd ${HIVE_HOME}/bin
./hive -hiveconf hive.root.logger=DEBUG,console 进入hive异常控制台,调试
hive> show tables;
java.sql.SQLException: Your password has expired. To log in you must change it using a client that supports expired passwords.
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. Attempted reconnect 3 times. Giving up
javax.jdo.JDOFatalDataStoreException: Could not create connection to database server. Attempted reconnect 3 times. Giving up.
FAILED: ParseException line 2:0 missing EOF at 'show' near 'tables'
FAILED: Error in metadata: https://www.doczj.com/doc/0813233582.html,ng.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
修改root 用户的密码; ?
1
2
3
4 5
6
[html] mysql> update https://www.doczj.com/doc/0813233582.html,er set password=PASSWORD('newpassword') where User='root'; mysql> flush privileges; mysql> quit 重新启动MySQL
/etc/init.d/mysql restart
root 用户登录系统
/usr/local/mysql/bin/mysqladmin -u root -p password 新密码 enter password 旧密码 第二种方法:
root 用户登录mysql 数据库
mysql> update https://www.doczj.com/doc/0813233582.html,er set password=password (”新密码”)where User=”root ”; mysql> flush privileges; mysql> quit ;
mysql 忘记root 密码如何处理?
如果 MySQL 正在运行,首先结束mysql 进程: killall mysqld
启动 MySQL (非正常方式起动):/usr/local/mysql/bin/mysqld_safe –skip-grant-tables &
这样就可以不需要密码进入 MySQL :/usr/local/mysql/bin/mysql -u root -p (要求输入密码时直接回车即可) mysql> update user mysql.set password=password(”新密码”) where user=”root ”; mysql> flush privileges; mysql> quit;
重新结束进程:killall mysqld
用正常方式启动 MySQL :/usr/local/mysql/bin/mysqld_safe -user=mysql &
service mysql start 启动MYSQL
Starting MySQL...The server quit without updating PID file (/var/lib/mysql/monitor01.pid).[FAILED]
df –h查看磁盘使用情况
/var/lib/mysql/ monitor01.err
VMwareTools-9.0.0-782409.tar.gz
ps -ef | grep mysql 查看运行进程
5. 启动使用
(1) 启动
进入bin目录下,执行命令:hive
(2) 查看当前库及表
show databases; //默认为:default
show tables;
(3) 创建表示例
这部分为我自己的测试, 测试数据见附件。
CREATE TABLE cite (citing INT, cited INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE;
CREATE TABLE cite_count (cited INT, count INT);
INSERT OVERWRITE TABLE cite_count
SELECT cited,COUNT(citing)
FROM cite
GROUP BY cited;
SELECT * FROM cite_count WHERE count > 10 LIMIT 10;
CREATE TABLE age (name STRING, birthday INT)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
CREATE TABLE age_out (birthday INT, birthday_count INT) ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n'
STORED AS TEXTFILE;
(4) 查看表结构
desribe cite;
(5) 加载数据
hive
hadoop:建立一个单节点集群伪分布式操作 安装路径为:/opt/hadoop-2.7.2.tar.gz 解压hadoop: tar -zxvf hadoop-2.7.2.tar.gz 配置文件 1. etc/hadoop/hadoop-env.sh export JAVA_HOME=/opt/jdk1.8 2. etc/hadoop/core-site.xml
基于hadoop的大规模文本处理技术实验专业班级:软件1102 学生姓名:张国宇 学号: Setup Hadoop on Ubuntu 11.04 64-bit 提示:前面的putty软件安装省略;直接进入JDK的安装。 1. Install Sun JDK<安装JDK> 由于Sun JDK在ubuntu的软件中心中无法找到,我们必须使用外部的PPA。打开终端并且运行以下命令: sudo add-apt-repository ppa:ferramroberto/java sudo apt-get update sudo apt-get install sun-java6-bin sudo apt-get install sun-java6-jdk Add JAVA_HOME variable<配置环境变量>: 先输入粘贴下面文字: sudo vi /etc/environment 再将下面的文字输入进去:按i键添加,esc键退出,X保存退出;如下图: export JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.26" Test the success of installation in Terminal<在终端测试安装是否成功>: sudo . /etc/environment
java –version 2. Check SSH Setting<检查ssh的设置> ssh localhost 如果出现“connection refused”,你最好重新安装 ssh(如下命令可以安装): sudo apt-get install openssh-server openssh-client 如果你没有通行证ssh到主机,执行下面的命令: ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 3. Setup Hadoop<安装hadoop> 安装 apache2 sudo apt-get install apache2 下载hadoop: 1.0.4 解压hadoop所下载的文件包: tar xvfz hadoop-1.0.4.tar.gz 下载最近的一个稳定版本,解压。编辑/ hadoop-env.sh定义java_home “use/library/java-6-sun-1.6.0.26”作为hadoop的根目录: Sudo vi conf/hadoop-env.sh 将以下内容加到文件最后: # The java implementation to use. Required. export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.26
本文为笔者安装配置过程中详细记录的笔记 1.下载hadoop hadoop-2.7.1.tar.gz hadoop-2.7.1-src.tar.gz 64位linux需要重新编译本地库 2.准备环境 Centos6.4 64位,3台 hadoop0 192.168.1.151namenode hadoop1 192.168.1.152 datanode1 Hadoop2 192.168.1.153 datanode2 1)安装虚拟机: vmware WorkStation 10,创建三台虚拟机,创建时,直接建立用户ha,密码111111.同时为root密码。网卡使用桥接方式。 安装盘 、 2). 配置IP.创建完成后,设置IP,可以直接进入桌面,在如下菜单下配置IP,配置好后,PING 确认好用。 3)更改三台机器主机名 切换到root用户,更改主机名。 [ha@hadoop0 ~]$ su - root Password: [root@hadoop0 ~]# hostname hadoop0 [root@hadoop0 ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop0 以上两步后重启服务器。三台机器都需要修改。 4)创建hadoop用户 由于在创建虚拟机时,已自动创建,可以省略。否则用命令创建。
5)修改hosts文件 [root@hadoop0 ~]# vi /etc/hosts 127.0.0.1 localhostlocalhost.localdomain localhost4 localhost4.localdomain4 ::1localhostlocalhost.localdomain localhost6 localhost6.localdomain6 192.168.1.151 hadoop0 192.168.1.152 hadoop1 192.168.1.153 hadoop2 此步骤需要三台机器都修改。 3.建立三台机器间,无密码SSH登录。 1)三台机器生成密钥,使用hadoop用户操作 [root@hadoop0 ~]# su– ha [ha@hadoop0 ~]$ ssh -keygen -t rsa 所有选项直接回车,完成。 以上步骤三台机器上都做。 2)在namenode机器上,导入公钥到本机认证文件 [ha@hadoop0 ~]$ cat ~/.ssh/id_rsa.pub>>~/.ssh/authorized_keys 3)将hadoop1和hadoop2打开/home/ha/.ssh/ id_rsa.pub文件中的内容都拷贝到hadoop0的/home/ha /.ssh/authorized_keys文件中。如下: 4)将namenode上的/home/ha /.ssh/authorized_keys文件拷贝到hadoop1和hadoop2的/home/ha/.ssh文件夹下。同时在三台机器上将authorized_keys授予600权限。 [ha@hadoop1 .ssh]$ chmod 600 authorized_keys 5)验证任意两台机器是否可以无密码登录,如下状态说明成功,第一次访问时需要输入密码。此后即不再需要。 [ha@hadoop0 ~]$ ssh hadoop1 Last login: Tue Aug 11 00:58:10 2015 from hadoop2 4.安装JDK1.7 1)下载JDK(32或64位),解压 [ha@hadoop0 tools]$ tar -zxvf jdk-7u67-linux-x64.tar.gz 2)设置环境变量(修改/etx/profile文件), export JAVA_HOME=/usr/jdk1.7.0_67 export CLASSPATH=:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin 3)使环境变量生效,然后验证JDK是否安装成功。
Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS 本教程讲述如何配置Hadoop 集群,默认读者已经掌握了Hadoop 的单机伪分布式配置,否则请先查看Hadoop安装教程_单机/伪分布式配置或CentOS安装Hadoop_单机/伪分布式配置。 本教程由厦门大学数据库实验室出品,转载请注明。本教程适合于原生Hadoop 2,包括Hadoop 2.6.0, Hadoop 2.7.1 等版本,主要参考了官方安装教程,步骤详细,辅以适当说明,保证按照步骤来,都能顺利安装并运行Hadoop。另外有Hadoop安装配置简略版方便有基础的读者快速完成安装。 为了方便新手入门,我们准备了两篇不同系统的Hadoop 伪分布式配置教程。但其他Hadoop 教程我们将不再区分,可同时适用于Ubuntu 和CentOS/RedHat 系统。例如本教程以Ubuntu 系统为主要演示环境,但对Ubuntu/CentOS 的不同配置之处、CentOS 6.x 与CentOS 7 的操作区别等都会尽量给出注明。 环境 本教程使用Ubuntu 14.04 64位作为系统环境,基于原生Hadoop 2,在Hadoop 2.6.0 (stable)版本下验证通过,可适合任何Hadoop 2.x.y 版本,例如Hadoop 2.7.1,Hadoop 2.4.1 等。 本教程简单的使用两个节点作为集群环境: 一个作为Master 节点,局域网IP 为192.168.1.121;另一个作为Slave 节点,局域网IP 为192.168.1.122。 准备工作 Hadoop 集群的安装配置大致为如下流程: 1.选定一台机器作为Master 2.在Master 节点上配置hadoop 用户、安装SSH server、安装Java 环境 3.在Master 节点上安装Hadoop,并完成配置 4.在其他Slave 节点上配置hadoop 用户、安装SSH server、安装Java 环境 5.将Master 节点上的/usr/local/hadoop 目录复制到其他Slave 节点上 6.在Master 节点上开启Hadoop 配置hadoop 用户、安装SSH server、安装Java 环境、安装Hadoop 等过程已经在Hadoop安装教程_单机/伪分布式配置或CentOS安装Hadoop_单机/伪分布式配置中有详细介绍,请前往查看,不再重复叙述。 继续下一步配置前,请先完成上述流程的前 4 个步骤。 网络配置 假设集群所用的节点都位于同一个局域网。 如果使用的是虚拟机安装的系统,那么需要更改网络连接方式为桥接(Bridge)模式,才能实现多个节点互连,例如在VirturalBox 中的设置如下图。此外,如果节点的系统是在虚拟机中直接复制的,要确保各个节点的Mac 地址不同(可以点右边的按钮随机生成MAC 地址,否则IP 会冲突):
1. virtualbox安装 1. 1. 安装步骤 1. 2. virtualbox安装出错情况 1. 2.1. 安装时直接报发生严重错误 1. 2.2. 安装好后,打开Vitualbox报创建COM对象失败,错误情况1 1. 2.3. 安装好后,打开Vitualbox报创建COM对象失败,错误情况2 1. 2.4. 安装将要成功,进度条回滚,报“setup wizard ended prematurely”错误 2. 新建虚拟机 2. 1. 创建虚拟机出错情况 2. 1.1. 配制好虚拟光盘后不能点击OK按钮 3. 安装Ubuntu系统 3. 1. 安装Ubuntu出错情况 3. 1.1. 提示VT-x/AMD-V硬件加速在系统中不可用 4. 安装增强功能 4. 1. 安装增强功能出错情况 4. 1.1. 报未能加载虚拟光盘错误 5. 复制文件到虚拟机 5. 1. 复制出错情况 5. 1.1. 不能把文件从本地拖到虚拟机 6. 配置无秘登录ssh 7. Java环境安装 7. 1. 安装Java出错情况 7. 1.1. 提示不能连接 8. hadoop安装 8. 1. 安装hadoop的时候出错情况 8. 1.1. DataNode进程没启动 9. 开机自启动hadoop 10. 关闭服务器(需要时才关) 1. virtualbox安装 1. 1. 安装步骤 1.选择hadoop安装软件中的VirtualBox-6.0.8-130520-Win
2.双击后进入安装界面,然后直接点击下一步 3.如果不想把VirtualBox安装在C盘,那么点击浏览
Hadoop云计算实验报告
Hadoop云计算实验报告 1实验目的 在虚拟机Ubuntu上安装Hadoop单机模式和集群; 编写一个用Hadoop处理数据的程序,在单机和集群上运行程序。 2实验环境 虚拟机:VMware 9 操作系统:ubuntu-12.04-server-x64(服务器版),ubuntu-14.10-desktop-amd64(桌面版)Hadoop版本:hadoop 1.2.1 Jdk版本:jdk-7u80-linux-x64 Eclipse版本:eclipse-jee-luna-SR2-linux-gtk-x86_64 Hadoop集群:一台namenode主机master,一台datanode主机salve, master主机IP为10.5.110.223,slave主机IP为10.5.110.207。 3实验设计说明 3.1主要设计思路 在ubuntu操作系统下,安装必要软件和环境搭建,使用eclipse编写程序代码。实现大数据的统计。本次实验是统计软件代理系统操作人员处理的信息量,即每个操作人员出现的次数。程序设计完成后,在集成环境下运行该程序并查看结果。 3.2算法设计 该算法首先将输入文件都包含进来,然后交由map程序处理,map程序将输入读入后切出其中的用户名,并标记它的数目为1,形成
安装 2011年4月4日 10:13 Hadoop-0.20.2安装使用 1、Cygwin 安装 ssh 2、按照以下的文档配置ssh 在Windows上安装Ha doop教程.pdf 3、几个配置文件的配置 3.1、conf/core-site.xml
hadoop3.0.0安装和配置1.安装环境 硬件:虚拟机 操作系统:Centos 7 64位 IP:192.168.0.101 主机名:dbp JDK:jdk-8u144-linux-x64.tar.gz Hadoop:hadoop-3.0.0-beta1.tar.gz 2.关闭防火墙并配置主机名 [root@dbp]#systemctl stop firewalld #临时关闭防火墙 [root@dbp]#systemctl disable firewalld #关闭防火墙开机自启动 [root@dbp]#hostnamectl set-hostname dbp 同时修改/etc/hosts和/etc/sysconfig/network配置信息 3.配置SSH无密码登陆 [root@dbp]# ssh-keygen -t rsa #直接回车 [root@dbp]# ll ~/.ssh [root@dbp .ssh]# cp id_rsa.pub authorized_keys [root@dbp .ssh]# ssh localhost #验证不需要输入密码即可登录
4.安装JDK 1、准备jdk到指定目录 2、解压 [root@dbp software]# tar–xzvf jdk-8u144-linux-x64.tar.gz [root@dbp software]# mv jdk1.8.0_144/usr/local/jdk #重命名4、设置环境变量 [root@dbp software]# vim ~/.bash_profile 5、使环境变量生效并验证 5.安装Hadoop3.0.0 1、准备hadoop到指定目录 2、解压
Hadoop-2.6.0配置 前面的部分跟配置Hadoop-1.2.1的一样就可以,什么都不用变,完全参考文档1即可。下面的部分就按照下面的做就可以了。 hadoop-2.6.0的版本用张老师的。 下面的配置Hadoop hadoop-2.6.0的部分 1.修改hadoop- 2.6.0/etc/hadoop/hadoop-env.sh,添加JDK支持: export JAVA_HOME=/usr/java/jdk1.6.0_45 如果不知道你的JDK目录,使用命令echo $JAVA_HOME查看。 2.修改hadoop-2.6.0/etc/hadoop/core-site.xml 注意:必须加在
在windows下通过安装cygwin模拟linux环境,然后再安装hadoop,是一种简单方便的方式。 首先是搭建cygwin环境: 一、安装cygwin 二、安装sshd服务 三、启动sshd服务 四、配置ssh无密码登录 一、此处无话可说,按照网上的文档,选择必要的组件即可。 二、 1 以管理员身份运行cygwin 2 输入:ssh-host-config 有关键的两步:*** Query: Do you want to use a different name? (yes/no)选择yes *** Query: Create new privileged user account 'cyg_server'? (yes/no) 选择yes 创建的用户名最好为新的用户名,密码最好与windows用户的密码一致 三、在开始菜单运ervices.msc或其他手段进入服务列表,找到cygwin sshd服务,查看属性是否为上一步的用户名登陆的,否则更改之。此时可能不能启动,需要在计算机右击“管理”,用户和组的管理中将上面的用户加入管理员的组,即授予管理员权限。 四、此时使用ssh服务,即输入:ssh localhost会要求输入密码,若显示为“last login:......”则说明已经正确安装ssh服务并且可以启动。 接下来是配置ssh的无密码登陆: 1输入:ssh-keygen (一直回车,一般是三次回车) 2 输入:cd ~/.ssh 3 输入:cp id_rsa.pub authorized_keys 此时输入exit退出cygwin,再次以管理员身份进入cygwin,输入ssh localhost,若没有要求输入密码便显示“last login.....”则说明成功了。 接下来是安装Hadoop: 一、安装JDK 二、下载hadoop及配置hadoop环境 三、格式化namenode 四、启动hadoop
1、VMware安装 我们使用Vmware 14的版本,傻瓜式安装即可。(只要) 双击 如过 2.安装xshell 双击 3.安装镜像: 解压centos6.5-empty解压 双击打开CentOS6.5.vmx 如果打不开,在cmd窗口中输入:netsh winsock reset 然后重启电脑。 进入登录界面,点击other 用户名:root 密码:root 然后右键open in terminal 输入ifconfig 回车 查看ip地址
打开xshell
点击链接 如果有提示,则接受 输入用户名:root 输入密码:root 4.xshell连接虚拟机 打开虚拟机,通过ifconfig查看ip
5.安装jkd 1.解压Linux版本的JDK压缩包 mkdir:创建目录的命令 rm -rf 目录/文件删除目录命令 cd 目录进入指定目录 rz 可以上传本地文件到当前的linux目录中(也可以直接将安装包拖到xshell窗口) ls 可以查看当前目录中的所有文件 tar 解压压缩包(Tab键可以自动补齐文件名)
pwd 可以查看当前路径 文档编辑命令: vim 文件编辑命令 i:进入编辑状态 Esc(左上角):退出编辑状态 :wq 保存并退出 :q! 不保存退出 mkdir /home/software #按习惯用户自己安装的软件存放到/home/software目录下 cd /home/software #进入刚刚创建的目录 rz 上传jdk tar包 #利用xshell的rz命令上传文件(如果rz命令不能用,先执行yum install lrzsz -y ,需要联网) tar -xvf jdk-7u51-linux-x64.tar.gz #解压压缩包 2.配置环境变量 1)vim /etc/profile 2)在尾行添加 #set java environment JAVA_HOME=/home/software/jdk1.8.0_65 JAVA_BIN=/home/software/jdk1.8.0_65/bin PATH=$JAVA_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export JAVA_HOME JAVA_BIN PATH CLASSPATH Esc 退出编辑状态 :wq #保存退出 注意JAVA_HOME要和自己系统中的jdk目录保持一致,如果是使用的rpm包安
Hadoop2.6配置详解 在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。 这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.6解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调 hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM(由cloudra提出,原理类似zookeeper)。这里我使用QJM完成。主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode 1安装前准备 1.1示例机器 192.168.0.10 hadoop1 192.168.0.20 hadoop2 192.168.0.30 hadoop3 192.168.0.40 hadoop4 每台机器都有一个hadoop用户,密码是hadoop 所有机器上安装jdk1.7。 在hadoop2,hadoop3,hadoop4上安装Zookeeper3.4集群。 1.2配置ip与hostname 用root用户修改每台机器的hosts
Hadoop安装简要过程及配置文件 1、机器准备 ①、Linux版操作系统centos 6.x ②、修改主机名,方便配置过程中记忆。修改文件为: /etc/sysconfig/network 修改其中的HOSTNAME即可 ③、配置局域网内,主机名与对应ip,并且其中集群中所有的机器的文件相同,修改文件为 /etc/hosts 格式为: 10.1.20.241 namenode 10.1.20.242 datanode1 10.1.20.243 datanode2 2、环境准备 ①、配置ssh免密码登陆,将集群中master节点生成ssh密码文件。具体方法: 1)、ssh-keygen -t rsa 一直回车即可,将会生成一份 ~/.ssh/ 文件夹,其中id_rsa为私钥文件 id_rsa.pub公钥文件。 2)、将公钥文件追加到authorized_keys中然后再上传到其他slave节点上 追加文件: cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 上传文件: scp ~/.ssh/authorized_keys root@dananode:~/.ssh/ 3)、测试是否可以免密码登陆:ssh 主机名或局域网ip ②、配置JDK ③、创建hadoop用户 groupadd hadoop useradd hadoop -g hadoop 4)、同步时间 ntpdate https://www.doczj.com/doc/0813233582.html, 5)、关闭防火墙 service iptables stop 3、安装cdh5 进入目录/data/tools/ (个人习惯的软件存储目录,你可以自己随便选择); wget "https://www.doczj.com/doc/0813233582.html,/cdh5/one-click-install/redhat/ 6/x86_64/cloudera-cdh-5-0.x86_64.rpm" yum --nogpgcheck localinstall cloudera-cdh-5-0.x86_64.rpm 添加cloudera仓库验证: rpm --importhttps://www.doczj.com/doc/0813233582.html,/cdh5/redhat/6/x86_64/cdh/RPM-GPG-KEY-cloudera
开始研究一下开源项目hadoop,因为根据本人和业界的一些分析,海量数据的分布式并行处理是趋势,咱不能太落后,虽然开始有点晚,呵呵。首先就是安装和一个入门的小实例的讲解,这个恐怕是我们搞软件开发的,最常见也最有效率地入门一个新鲜玩意的方式了,废话不多说开始吧。 本人是在ubuntu下进行实验的,java和ssh安装就不在这里讲了,这两个是必须要安装的,好了我们进入主题安装hadoop: 1.下载hadoop-0.20.1.tar.gz: https://www.doczj.com/doc/0813233582.html,/dyn/closer.cgi/hadoop/common/ 解压:$ tar –zvxf hadoop-0.20.1.tar.gz 把Hadoop 的安装路径添加到环/etc/profile 中: export HADOOP_HOME=/home/hexianghui/hadoop-0.20.1 export PATH=$HADOOP_HOME/bin:$PATH 2.配置hadoop hadoop 的主要配置都在hadoop-0.20.1/conf 下。 (1)在conf/hadoop-env.sh 中配置Java 环境(namenode 与datanode 的配置相同): $ gedit hadoop-env.sh $ export JAVA_HOME=/home/hexianghui/jdk1.6.0_14 3.3)配置conf/core-site.xml, conf/hdfs-site.xml 及conf/mapred-site.xml(简单配置,datanode 的配置相同) core-site.xml:
实验报告封面 课程名称: Hadoop大数据处理课程代码: JY1124 任课老师:宁穗实验指导老师: 宁穗 实验报告名称:实验3 Hadoop安装与配置2 学生: 学号: 教学班: 递交日期: 签收人: 我申明,本报告的实验已按要求完成,报告完全是由我个人完成,并没有抄袭行为。我已经保留了这份实验报告的副本。 申明人(签名): 实验报告评语与评分: 评阅老师签名:
一、实验名称:Hadoop安装与配置 二、实验日期:2015年9 月25 日 三、实验目的: Hadoop安装与配置。 四、实验用的仪器和材料: 安装环境:以下两个组合之一 1.硬件环境:存ddr3 4G及以上的x86架构主机一部 系统环境:windows 、linux或者mac os x 软件环境:运行vmware或者virtualbox (2) 存ddr 1g及以上的主机两部及以上 五、实验的步骤和方法: 本次实验重点在ubuntu中安装jdk以及hadoop。 一、关闭防火墙 sudo ufw disable iptables -F 二、jdk的安装 1、普通用户下添加grid用户
2、准备jdk压缩包,把jdk压缩包放到以上目录(此目录可自行设置) 3、将jdk压缩包解压改名 改名为jdk:mv jdk1.7.0_45 jdk 移动到/usr目录下:mv jdk /usr(此目录也可自行设置,但需与配置文件一致)4、设置jdk环境变量 此采用全局设置方法,更改/etc/profile文件 sudo gedit /etc/profile 添加(根据情况自行设置) export JA VA_HOME=/usr/jdk export JRE_HOME=/usr/ jdk/jre export CLASSPATH=.:$JA V A_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PA TH=$JA V A_HOME/bin: $JRE_HOME/ bin: $PATH 然后保存。 5、检验是否安装成功 java -version 二、ssh免密码 1、退出root用户,su grid 生成密钥 ssh-keygen –t rsa
实验报告 课程名称:Hadoop储存与运算指导教师:潘立武 姓名:孙纪龙 学号:2018021911 大数据1班组 教务处制
实验/训() 实验/训题目:Hadoop数据库Hbase操作 学时:学分: 实验/训时间:2020 年4 月1 日实验/训地点:实验目的: 通过实验,掌握Hadoop数据库Hbase操作 实验内容: 第1关:实践题已完成 Hbase数据库的安装 第2关:实践题已完成 创建表 第3关:实践题已完成 添加数据、删除数据、删除表 实验步骤: 第一关Hbase数据库的安装 mkdir /app //创建文件 cd /opt //回到opt目录 ulimit -f 1000000 tar -zxvf hbase-2.1.1-bin.tar.gz -C /app //解压 echo $JAVA_HOME //查看jdk路径 vim /app/hbase-2.1.1/conf/hbase-env.sh
//翻到第二十八行,找到# export JAVA_HOME=/usr/java/jdk1.8.0/把前面的 # 删了、把/usr/java/jdk1.8.0/换成export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_111,wq保存cd //回到根目录 vim /app/hbase-2.1.1/conf//hbase-site.xml //进入编辑模式,输入下面代码
1.下载并安装安装ssh sudo apt-get install openssh-server openssh-client 3.搭建vsftpd #sudo apt-get update #sudo apt-get install vsftpd 配置参考的开始、关闭和重启 $sudo /etc/vsftpd start #开始 $sudo /etc/vsftpd stop #关闭 $sudo /etc/vsftpd restart #重启 4.安装 sudo chown -R hadoop:hadoop /opt cp /soft/ /opt sudo vi /etc/profile alias untar='tar -zxvf' sudo source /etc/profile source /etc/profile untar jdk* 环境变量配置 # vi /etc/profile ●在profile文件最后加上 # set java environment export JAVA_HOME=/opt/ export CLASSPATH=.:$JAVA_HOME/lib/:$JAVA_HOME/lib/ export PATH=$JAVA_HOME/bin:$PATH 配置完成后,保存退出。 ●不重启,更新命令 #source /etc/profile ●测试是否安装成功 # Java –version 其他问题: 出现unable to resolve host 解决方法 参考 开机时停在Starting sendmail 不动了的解决方案 参考安装软件时出现E: Unable to locate package vsftpd 参考vi/vim 使用方法讲解 参考分类: Hadoop
云计算实验报告Hadoop 云计算实验报告Hadoop 实验目的1在虚拟机上安装单机模式和集群;Ubuntu Hadoop编写一个用处理数据的程序,在单机和集群上运行程序。Hadoop 实验环境2虚拟机:9VMware(桌面(服务器版),操作系统: -desktop--server-x64amd64ubuntu-14.10ubuntu-12.04 版)版本: 1.2.1hadoop Hadoop版本: x647u80-linuxJdk -jdk-版本:x86_64-gtk-jee-luna-SR2-linuxEclipse eclipse-,主机集群:一台主机,一台mastersalve datanodeHadoop namenode 。,主机为主机为master IP IP 10.5.110.22310.5.110.207slave 实验设计说明3 主要设计思路 3.1 eclipse编写程序代码。实现在ubuntu操作系统下,安装必要软件和环境搭建,使用大数据的统计。本次实验是统计软件代理系统操作人员处理的信息量,即每个操作人员出现的次数。程序设计完成后,在集成环境下运行该程序并查看结果。算法设计 3.2 程序将输入读入后该算法首先将输入文件都包含进来,然后交由map程序处理,map处理,切出其中的用户名,并标记它的数目为1,形成